enhance BuildEnv generic easyblock to copy RPATH wrapper scripts from build environment to installation directory (if available)#3661
Merged
boegel merged 7 commits intoeasybuilders:developfrom Apr 23, 2025
Conversation
ocaisa
commented
Mar 14, 2025
Member
Author
|
Just to show this in action: ocaisa@LAPTOP-O6HF2IKC:~$ module load buildenv
ocaisa@LAPTOP-O6HF2IKC:~$ mpicc hello_world.c
ocaisa@LAPTOP-O6HF2IKC:~$ cat hello_world.c
/*The Parallel Hello World Program*/
#include <stdio.h>
#include <mpi.h>
int main(int argc, char **argv)
{
int node;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD, &node);
printf("Hello World from Node %d\n",node);
MPI_Finalize();
}
ocaisa@LAPTOP-O6HF2IKC:~$ mpirun -n 2 a.out
Hello World from Node 1
Hello World from Node 0
ocaisa@LAPTOP-O6HF2IKC:~$ ldd a.out
linux-vdso.so.1 (0x00007ffd0e779000)
libmpi.so.40 => /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/OpenMPI/4.1.6-GCC-13.2.0/lib/libmpi.so.40 (0x00007febae519000)
libc.so.6 => /cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/lib/../lib64/libc.so.6 (0x00007febae348000)
libopen-rte.so.40 => /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/OpenMPI/4.1.6-GCC-13.2.0/lib/libopen-rte.so.40 (0x00007febae28d000)
libopen-pal.so.40 => /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/OpenMPI/4.1.6-GCC-13.2.0/lib/libopen-pal.so.40 (0x00007febae1e0000)
libhwloc.so.15 => /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/hwloc/2.9.2-GCCcore-13.2.0/lib64/libhwloc.so.15 (0x00007febae181000)
libpciaccess.so.0 => /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libpciaccess/0.17-GCCcore-13.2.0/lib64/libpciaccess.so.0 (0x00007febae173000)
libxml2.so.2 => /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libxml2/2.11.5-GCCcore-13.2.0/lib64/libxml2.so.2 (0x00007febae016000)
libz.so.1 => /cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/usr/lib/../lib64/libz.so.1 (0x00007febadffc000)
liblzma.so.5 => /cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/usr/lib/../lib64/liblzma.so.5 (0x00007febadfcc000)
libevent_core-2.1.so.7 => /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libevent/2.1.12-GCCcore-13.2.0/lib64/libevent_core-2.1.so.7 (0x00007febadf97000)
libevent_pthreads-2.1.so.7 => /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libevent/2.1.12-GCCcore-13.2.0/lib64/libevent_pthreads-2.1.so.7 (0x00007febadf90000)
libm.so.6 => /cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/lib/../lib64/libm.so.6 (0x00007febadeb0000)
/cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/lib64/ld-linux-x86-64.so.2 (0x00007febae644000)
ocaisa@LAPTOP-O6HF2IKC:~$ readelf -d a.out | grep '(RPATH)'
0x000000000000000f (RPATH) Library rpath: [/cvmfs/software.eessi.io/host_injections/2023.06/software/linux/x86_64/intel/skylake_avx512/rpath_overrides/OpenMPI/system/lib:/cvmfs/software.eessi.io/host_injections/2023.06/software/linux/x86_64/intel/skylake_avx512/rpath_overrides/OpenMPI/system/lib64:/home/ocaisa/eessi/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/buildenv/default-foss-2023b/lib:/home/ocaisa/eessi/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/buildenv/default-foss-2023b/lib64:$ORIGIN:$ORIGIN/../lib:$ORIGIN/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/OpenMPI/4.1.6-GCC-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/hwloc/2.9.2-GCCcore-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libevent/2.1.12-GCCcore-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/ScaLAPACK/2.2.0-gompi-2023b-fb/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/FFTW.MPI/3.3.10-gompi-2023b/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/FFTW/3.3.10-GCC-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/FlexiBLAS/3.3.1-GCC-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/OpenBLAS/0.3.24-GCC-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/UCC/1.2.0-GCCcore-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/PMIx/4.2.6-GCCcore-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libfabric/1.19.0-GCCcore-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/UCX/1.15.0-GCCcore-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/OpenSSL/1.1/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libpciaccess/0.17-GCCcore-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libxml2/2.11.5-GCCcore-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/numactl/2.0.16-GCCcore-13.2.0/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/GCCcore/13.2.0/lib/gcc/x86_64-pc-linux-gnu/13.2.0:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/GCCcore/13.2.0/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../../../lib64:/cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/usr/lib/../lib64:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/GCCcore/13.2.0/lib/gcc/x86_64-pc-linux-gnu/13.2.0/../../..:/cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/lib:/cvmfs/software.eessi.io/versions/2023.06/compat/linux/x86_64/usr/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/ScaLAPACK/2.2.0-gompi-2023b-fb/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/FFTW.MPI/3.3.10-gompi-2023b/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/FFTW/3.3.10-GCC-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/FlexiBLAS/3.3.1-GCC-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/OpenBLAS/0.3.24-GCC-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/UCC/1.2.0-GCCcore-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/PMIx/4.2.6-GCCcore-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libfabric/1.19.0-GCCcore-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/UCX/1.15.0-GCCcore-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/OpenSSL/1.1/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libpciaccess/0.17-GCCcore-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/libxml2/2.11.5-GCCcore-13.2.0/lib:/cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/intel/skylake_avx512/software/numactl/2.0.16-GCCcore-13.2.0/lib] |
Member
Micket
reviewed
Apr 15, 2025
boegel
reviewed
Apr 23, 2025
…to install dir in install step of buildenv easyblock
set `self.rpath_wrappers_dir` to build dir + copy RPATH wrapper script to install dir in install step of buildenv easyblock
Member
|
Test report by @boegel Overview of tested easyconfigs (in order)
Build succeeded for 2 out of 2 (2 easyconfigs in total) edit: with RPATH enabled |
Member
|
Test report by @boegel Overview of tested easyconfigs (in order)
Build succeeded for 2 out of 2 (2 easyconfigs in total) edit: with RPATH disabled |
BuildEnv generic easyblock to copy RPATH wrapper scripts from build environment to installation directory (if available)
boegel
approved these changes
Apr 23, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requires:
rpath_wrappers_dir+ also passrpath_include_dirswhen preparing build environment for extensions easybuild-framework#4596