-
Notifications
You must be signed in to change notification settings - Fork 282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restructure RPATH and elf interpreter setting for Java, and add the LIBRARY_PATH to the additional RPATH #3571
base: develop
Are you sure you want to change the base?
Conversation
…IBRARY_PATH to the additional RPATH
To get a baseline, these are the current headers and build logs for a library (
and from the build logs
The same thing for a binary:
And the build log:
|
After building with:
I get the same (as expected):
and for
Great, means we have retained the old behavior throughout the restructuring of the code. Next, we try with an Easyconfig at the GCCcore level which has X11 as dependency. This should make sure that the
Clearly, that is not right: a properly RPATH-ed library should be able to find all its dependencies. |
Just as a test:
Installing this:
With that, the X11 libraries, including
Note that |
Installing with
We now get:
That looks completely fine, now everything is found. |
Next step, I'll make some GCCcore based java easyconfigs, that can utilize this Easyblock PR properly |
…kipping it unconditionally
…tching of the RPATH for java now
I'm... confused. To test the RPATH sanity check, I removed the X11 dependency in my Easyconfig file. I see
Why doesn't this result in a failed sanity check? Edit: I may know, I probably should have returned the values from the RPATH sanity check step, as those are the failure message. I.e. the function |
Ok, so even with the correct deps, it is failing, because my patchelf sets |
Ok, this is for tomorrow to solve: some library is still not found in the RPATH:
|
Ooff, Java is messy:
The reason there is no RPATH is because this is an executable that is located in I see two options here: either I find all files under Right now, there are only two files that this concerns, so I think hardcoding is the way to go here. The good news is that if an additional executable ends up in |
Hm, we actually do the checking for dynamically linked executables for the RPATH sanity check. So maybe it's not too expensive. I'll just do that instead, it'll be more robust and we can spare the extra few seconds. |
Hm, I think we can improve here:
|
Hm, I think we can improve here:
|
…y returns something :)
…g extra RPATHS. Also, fix syntax for call to logging
…Also, set bin_lib_subdirs so that also the files in lib/server are patched
This is the first step in fixing the issue observed here with Aladin-desktop that certain libraries aren't properly RPATH-ed, and as a result, the relevant X11 library cannot be found. The reason is that
easybuild-easyconfigs
.