-
Notifications
You must be signed in to change notification settings - Fork 310
enhance BuildEnv generic easyblock to copy RPATH wrapper scripts from build environment to installation directory (if available)
#3661
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
Conversation
|
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] |
…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
|
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 |
|
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)
Requires:
rpath_wrappers_dir+ also passrpath_include_dirswhen preparing build environment for extensions easybuild-framework#4596