@@ -19,8 +19,16 @@ case $(uname) in
1919esac
2020
2121if test " $( uname) " = Linux; then
22+ # shellcheck disable=SC1091
23+ PLATFORM_ID=" $( source /etc/os-release && echo " ${PLATFORM_ID:- } " ) "
2224 if test " ${CIBUILDWHEEL} " = 1; then
2325 yum remove -y libatomic
26+ if test " $PLATFORM_ID " = " platform:el8" ; then
27+ yum install -y rdma-core-devel
28+ if test " $( uname -m) " = x86_64; then
29+ yum install -y libpsm2-devel
30+ fi
31+ fi
2432 fi
2533fi
2634if test " $( uname) " = Darwin; then
@@ -84,6 +92,15 @@ if test -d "$MODSOURCE"/libfabric-*; then
8492 echo running configure for OFI
8593 oficonfigure=" $OFISOURCE " /configure
8694 ofioptions=(--prefix=" $PREFIX " --disable-static)
95+ if test -f /usr/lib* /librdmacm.so; then
96+ ofioptions+=(--enable-verbs=dl)
97+ fi
98+ if test -f /usr/lib* /libpsm2.so; then
99+ ofioptions+=(--enable-psm2=dl)
100+ fi
101+ if test -f /usr/lib* /libefa.so; then
102+ ofioptions+=(--enable-efa=dl)
103+ fi
87104 " $oficonfigure " " ${ofioptions[@]} " \
88105 CFLAGS=" ${build_cflags[*]} " \
89106 LDFLAGS=" ${build_ldflags[*]} "
@@ -95,6 +112,9 @@ if test -d "$MODSOURCE"/libfabric-*; then
95112 done
96113 for pkg in " ${DESTDIR}${PREFIX} " /lib/pkgconfig/libfabric* .pc; do
97114 sed -i " /prefix\s*=/s|\($PREFIX \)|$DESTDIR \1|g" " $pkg "
115+ for dep in rdmacm ibverbs psm2 efa; do
116+ sed -i " /Libs\.private:\s*/s|-l$dep \s*||g" " $pkg "
117+ done
98118 done
99119fi
100120
@@ -181,6 +201,8 @@ if test "$mpiname" = "openmpi"; then
181201 --prefix=" $PREFIX "
182202 --without-ucx
183203 --without-ofi
204+ --without-psm2
205+ --without-verbs
184206 --without-cuda
185207 --without-rocm
186208 --with-hwloc=internal
@@ -284,6 +306,7 @@ rm -f lib/libuc[mpst]*.a
284306rm -f lib/libuc[mpst]* .la
285307rm -f lib/ucx/libuc[mt]_* .a
286308rm -f lib/ucx/libuc[mt]_* .la
309+ rm -f lib/ucx/libucx_perftest_* .*
287310rm -fr lib/cmake/ucx
288311rm -f lib/pkgconfig/ucx* .pc
289312rm -fr share/ucx
@@ -297,15 +320,18 @@ for lib in libuc[mpst]*.so.?; do
297320 fi
298321 patchelf --set-rpath " \$ ORIGIN" " $lib "
299322done
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
323+ if test -d ucx; then
324+ patchelf --add-rpath " \$ ORIGIN/ucx" libuc[mpst].so.?
325+ fi
326+ for lib in ucx/libuc[mpst]_* .so.? ; do
327+ if test -f " $lib " ; then
328+ patchelf --set-rpath " \$ ORIGIN" " $lib "
329+ patchelf --add-rpath " \$ ORIGIN/.." " $lib "
330+ fi
303331 if test -f " $lib " .* ; then
304332 mv " $( dirname " $lib " ) /$( readlink " $lib " ) " " $lib "
305333 ln -srf " $lib " " ${lib% .* } "
306334 fi
307- patchelf --set-rpath " \$ ORIGIN" " $lib "
308- patchelf --add-rpath " \$ ORIGIN/.." " $lib "
309335done
310336
311337} # fixup-ucx()
@@ -317,6 +343,8 @@ rm -fr include/rdma
317343rm -f bin/fi_*
318344rm -f lib/libfabric.a
319345rm -f lib/libfabric.la
346+ rm -f lib/libfabric/lib* -fi.a
347+ rm -f lib/libfabric/lib* -fi.la
320348rm -f lib/pkgconfig/libfabric.pc
321349rm -f share/man/man? /fabric.?
322350rm -f share/man/man? /fi_* .?
@@ -330,6 +358,15 @@ for lib in libfabric.so.?; do
330358 fi
331359 patchelf --set-rpath " \$ ORIGIN" " $lib "
332360done
361+ if test -d libfabric; then
362+ patchelf --add-rpath " \$ ORIGIN/libfabric" libfabric.so.?
363+ fi
364+ for lib in libfabric/lib* -fi.so; do
365+ if test -f " $lib " ; then
366+ patchelf --set-rpath " \$ ORIGIN" " $lib "
367+ patchelf --set-rpath " \$ ORIGIN/.." " $lib "
368+ fi
369+ done
333370
334371} # fixup-ofi()
335372
@@ -350,6 +387,7 @@ rm -f lib/lib*mpi.la
350387rm -f lib/lib* mpich* .*
351388rm -f lib/lib* mpicxx.*
352389rm -f lib/lib* mpifort.*
390+ rm -fr lib/cmake
353391rm -fr lib/pkgconfig
354392rm -fr share
355393
@@ -398,10 +436,16 @@ if test "$(uname)" = Linux; then
398436 if test -f libfabric.so; then
399437 mkdir -p " $mpiname "
400438 mv libfabric.* " $mpiname "
439+ if test -d libfabric; then
440+ mv libfabric " $mpiname "
441+ fi
401442 fi
402443 if test -f libucp.so; then
403444 mkdir -p " $mpiname "
404- mv libuc[mpst]* .* ucx " $mpiname "
445+ mv libuc[mpst]* .* " $mpiname "
446+ if test -d ucx; then
447+ mv ucx " $mpiname "
448+ fi
405449 fi
406450 cd " ${DESTDIR}${PREFIX} /lib"
407451 for lib in lib* .so; do
@@ -536,14 +580,6 @@ for exe in 'mpirun' 'ompi*' 'pmix*' 'prte*' 'opal*' 'orte*'; do
536580 done < <( find . -name " $exe " -type f)
537581done
538582
539- cd " ${DESTDIR}${PREFIX} /lib"
540- unset libraries
541- for lib in ' lib*.so.*' ' lib*.*.dylib' ; do
542- while IFS= read -r filename
543- do libraries+=(" $( basename " $filename " ) " )
544- done < <( find . -name " $lib " -type f)
545- done
546-
547583if test " $( uname) " = Linux; then
548584 cd " ${DESTDIR}${PREFIX} /bin"
549585 for exe in " ${executables[@]} " ; do
@@ -561,10 +597,16 @@ if test "$(uname)" = Linux; then
561597 if test -f libfabric.so; then
562598 mkdir -p " $mpiname "
563599 mv libfabric.* " $mpiname "
600+ if test -d libfabric; then
601+ mv libfabric " $mpiname "
602+ fi
564603 fi
565604 if test -f libucp.so; then
566605 mkdir -p " $mpiname "
567- mv libuc[mpst]* .* ucx " $mpiname "
606+ mv libuc[mpst]* .* " $mpiname "
607+ if test -d ucx; then
608+ mv ucx " $mpiname "
609+ fi
568610 fi
569611 for lib in lib* .so; do
570612 patchelf --set-rpath " \$ ORIGIN" " $lib "
0 commit comments