@@ -19,8 +19,12 @@ case $(uname) in
1919esac
2020
2121if test " $( uname) " = Linux; then
22+ PLATFORM_ID=" $( source /etc/os-release && echo " ${PLATFORM_ID:- } " ) "
2223 if test " ${CIBUILDWHEEL} " = 1; then
2324 yum remove -y libatomic
25+ if test " $PLATFORM_ID " = " platform:el8" ; then
26+ yum install -y libpsm2-devel rdma-core-devel
27+ fi
2428 fi
2529fi
2630if test " $( uname) " = Darwin; then
@@ -84,6 +88,15 @@ if test -d "$MODSOURCE"/libfabric-*; then
8488 echo running configure for OFI
8589 oficonfigure=" $OFISOURCE " /configure
8690 ofioptions=(--prefix=" $PREFIX " --disable-static)
91+ if test -f /usr/lib* /libpsm2.so; then
92+ ofioptions+=(--enable-psm2=dl)
93+ fi
94+ if test -f /usr/lib* /librdmacm.so; then
95+ ofioptions+=(--enable-verbs=dl)
96+ fi
97+ if test -f /usr/lib* /libefa.so; then
98+ ofioptions+=(--enable-efa=dl)
99+ fi
87100 " $oficonfigure " " ${ofioptions[@]} " \
88101 CFLAGS=" ${build_cflags[*]} " \
89102 LDFLAGS=" ${build_ldflags[*]} "
@@ -181,6 +194,7 @@ if test "$mpiname" = "openmpi"; then
181194 --prefix=" $PREFIX "
182195 --without-ucx
183196 --without-ofi
197+ --without-psm2
184198 --without-cuda
185199 --without-rocm
186200 --with-hwloc=internal
@@ -284,6 +298,7 @@ rm -f lib/libuc[mpst]*.a
284298rm -f lib/libuc[mpst]* .la
285299rm -f lib/ucx/libuc[mt]_* .a
286300rm -f lib/ucx/libuc[mt]_* .la
301+ rm -f lib/ucx/libucx_perftest_* .*
287302rm -fr lib/cmake/ucx
288303rm -f lib/pkgconfig/ucx* .pc
289304rm -fr share/ucx
@@ -297,15 +312,18 @@ for lib in libuc[mpst]*.so.?; do
297312 fi
298313 patchelf --set-rpath " \$ ORIGIN" " $lib "
299314done
300- patchelf --add-rpath " \$ ORIGIN/ucx" libucm.so.?
301- patchelf --add-rpath " \$ ORIGIN/ucx" libuct.so.?
302- for lib in ucx/libuc[mt]_* .so.? ; do
315+ if test -d ucx; then
316+ patchelf --add-rpath " \$ ORIGIN/ucx" libuc[mpst].so.?
317+ fi
318+ for lib in ucx/libuc[mpst]_* .so.? ; do
319+ if test -f " $lib " ; then
320+ patchelf --set-rpath " \$ ORIGIN" " $lib "
321+ patchelf --add-rpath " \$ ORIGIN/.." " $lib "
322+ fi
303323 if test -f " $lib " .* ; then
304324 mv " $( dirname " $lib " ) /$( readlink " $lib " ) " " $lib "
305325 ln -srf " $lib " " ${lib% .* } "
306326 fi
307- patchelf --set-rpath " \$ ORIGIN" " $lib "
308- patchelf --add-rpath " \$ ORIGIN/.." " $lib "
309327done
310328
311329} # fixup-ucx()
@@ -317,6 +335,8 @@ rm -fr include/rdma
317335rm -f bin/fi_*
318336rm -f lib/libfabric.a
319337rm -f lib/libfabric.la
338+ rm -f lib/libfabric/lib* -fi.a
339+ rm -f lib/libfabric/lib* -fi.la
320340rm -f lib/pkgconfig/libfabric.pc
321341rm -f share/man/man? /fabric.?
322342rm -f share/man/man? /fi_* .?
@@ -330,6 +350,15 @@ for lib in libfabric.so.?; do
330350 fi
331351 patchelf --set-rpath " \$ ORIGIN" " $lib "
332352done
353+ if test -d libfabric; then
354+ patchelf --add-rpath " \$ ORIGIN/libfabric" libfabric.so.?
355+ fi
356+ for lib in libfabric/lib* -fi.so; do
357+ if test -f " $lib " ; then
358+ patchelf --set-rpath " \$ ORIGIN" " $lib "
359+ patchelf --set-rpath " \$ ORIGIN/.." " $lib "
360+ fi
361+ done
333362
334363} # fixup-ofi()
335364
@@ -350,6 +379,7 @@ rm -f lib/lib*mpi.la
350379rm -f lib/lib* mpich* .*
351380rm -f lib/lib* mpicxx.*
352381rm -f lib/lib* mpifort.*
382+ rm -fr lib/cmake
353383rm -fr lib/pkgconfig
354384rm -fr share
355385
@@ -398,10 +428,16 @@ if test "$(uname)" = Linux; then
398428 if test -f libfabric.so; then
399429 mkdir -p " $mpiname "
400430 mv libfabric.* " $mpiname "
431+ if test -d libfabric; then
432+ mv libfabric " $mpiname "
433+ fi
401434 fi
402435 if test -f libucp.so; then
403436 mkdir -p " $mpiname "
404- mv libuc[mpst]* .* ucx " $mpiname "
437+ mv libuc[mpst]* .* " $mpiname "
438+ if test -d ucx; then
439+ mv ucx " $mpiname "
440+ fi
405441 fi
406442 cd " ${DESTDIR}${PREFIX} /lib"
407443 for lib in lib* .so; do
@@ -415,6 +451,11 @@ if test "$(uname)" = Linux; then
415451 if test -d " $mpiname " ; then
416452 patchelf --add-rpath " \$ ORIGIN/$mpiname " libmpi.so.*
417453 fi
454+ for dep in psm2 rdmacm ibverbs efa; do
455+ for v in $( seq 0 2) ; do
456+ patchelf --remove-needed " lib$dep .so.$v " libmpi.so.*
457+ done
458+ done
418459 cd " ${DESTDIR}${PREFIX} /lib"
419460 find . -name ' *.so' -type l -delete
420461 ln -s libmpi.so.* libmpi.so
@@ -561,10 +602,16 @@ if test "$(uname)" = Linux; then
561602 if test -f libfabric.so; then
562603 mkdir -p " $mpiname "
563604 mv libfabric.* " $mpiname "
605+ if test -d libfabric; then
606+ mv libfabric " $mpiname "
607+ fi
564608 fi
565609 if test -f libucp.so; then
566610 mkdir -p " $mpiname "
567- mv libuc[mpst]* .* ucx " $mpiname "
611+ mv libuc[mpst]* .* " $mpiname "
612+ if test -d ucx; then
613+ mv ucx " $mpiname "
614+ fi
568615 fi
569616 for lib in lib* .so; do
570617 patchelf --set-rpath " \$ ORIGIN" " $lib "
0 commit comments