-
Notifications
You must be signed in to change notification settings - Fork 24
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
Adding documentation on how to build and run on top of EESSI without EB #175
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hvelab This is a good start. I think it is probably worth explaining the weird addition of the GCCcore
path to LD_LIBRARY_PATH
## Manually building software op top of EESSI | ||
Building software on top of EESSI would require your linker to use the same system-dependencies as the software in EESSI does. In other words: it requires you to link against libraries from the compatibility layer, instead of from your host OS. | ||
## Manually building software op top of EESSI (without EasyBuild) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's probably worth adding a big fat warning at the beginning that this is really currently only for those who have a good understanding of what LD_LIBRARY_PATH is, what a runtime linker is and how library dependencies are resolved on Linux:
!!! warning | |
We are working on a module file that should make building on top of EESSI (without using EasyBuild) | |
more straightforward, particularly when using `Autotools` or `CMake`. Right now, it is a little convoluted | |
and requires you to have a decent grasp of | |
* What a runtime linker (`ld-linux*.so`) is and does | |
* How to influence the behaviour of the runtime linker with `LD_LIBRARY_PATH` | |
* The difference between `LIBRARY_PATH` and `LD_LIBRARY_PATH` | |
As such, this documentation is intended for "experts" in the runtime linker and it's behaviour, | |
and most cases are untested. Any feedback on this topic is highly appreciated. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hvelab I learned about LD_RUN_PATH
today, that is used at link time and removes the need for LD_LIBRARY_PATH at runtime. It means you can set
LD_RUN_PATH=$LIBRARY_PATH:$EBROOTGCCcore/lib64
at compile time only, and the application should run just fine afterwards. You can probably even have export a shell function that does that for you (bash only)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ocaisa Which way do you think it's the best to add this piece of information? Should we replace the runtime part line where
export LD_LIBRARY_PATH=$LIBRARY_PATH:$EBROOTGCCcore/lib64
is mentioned or should we add it in a separate section as an untested feature?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's already tested in the sense that we've tried it and it works. I imagine there are probably corner cases where it will not work. I would be inclined to replace the use of LD_LIBRARY_PATH
as this is a much more straightforward solution.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just pushed a commit with these changes: ed0c5dd
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
To follow up the short-term solution in issue https://gitlab.com/eessi/support/-/issues/48