-
Notifications
You must be signed in to change notification settings - Fork 217
Open
Labels
Milestone
Description
In the EESSI hackathon we started to work on an issue when building Software with RPATH-enabled compiler modules.
As a user, I don't really want to untangle the RPATHs for the modules library, when I am building my own code. So we thought the already existing RPATH wrappers could be automatically loaded when loading an RPATH enabled compiler module. (configurable as an easyconfig-option!)
In this issue I want to track a couple of changes that are required on the framework side, to allow modules to ship RPATH wrapper scripts when they are loaded.
There are a couple of open points to address:
- modify
module_generator.py(@boegel):- Add conditional statement for environment variables. Then we can ignore rpath wrappers while loading a module if something like
DISABLE_RPATH_WRAPPERSis set - Ensure that wrappers are not put into
$PATHif module is used within EasyBuild
- Add conditional statement for environment variables. Then we can ignore rpath wrappers while loading a module if something like
- modify
prepare_rpath_wrappers()intoolchain.py(@stderr-enst):- Add function parameter to
prepare_rpath_wrappersto install wrappers in a caller-given directory - Return directory path where wrappers were installed
- Add option to put all wrapper scripts in a single directory (with no subdirs like
gcc_wrapper/gcc) - Don't write
rpath_wrapper_logtotempfile.gettempdir()ifdebugis set. This location does not necessarily exist if a module is loaded with the wrapper scripts in place
- Add function parameter to
- modify
rpath_wrapper_template.sh.in:- Add option to read env variables
RPATH_INCLUDE_DIRSandRPATH_FILTER_DIRSvariables, to include/exclude directories in wrapper script (as comma-separated list) at runtime - Figure out a useful way to treat logging in rpath_wrapper_template.sh.in. Otherwise this will try to log to possibly non-existing /tmp/-dirs or similar
- Add option to read env variables
- Add
create_rpath_wrappers(), probably intoolchain.py(?):- Refactor
create_rpath_wrappersfrom easybuild-easyblocks/pull/2638 into a more generic location within framework. This is probably used for other compilers in the future as well
- Refactor
Related PRs: