@@ -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,7 @@ if test "$mpiname" = "openmpi"; then
181201 --prefix=" $PREFIX "
182202 --without-ucx
183203 --without-ofi
204+ --without-psm2
184205 --without-cuda
185206 --without-rocm
186207 --with-hwloc=internal
@@ -284,6 +305,7 @@ rm -f lib/libuc[mpst]*.a
284305rm -f lib/libuc[mpst]* .la
285306rm -f lib/ucx/libuc[mt]_* .a
286307rm -f lib/ucx/libuc[mt]_* .la
308+ rm -f lib/ucx/libucx_perftest_* .*
287309rm -fr lib/cmake/ucx
288310rm -f lib/pkgconfig/ucx* .pc
289311rm -fr share/ucx
@@ -297,15 +319,18 @@ for lib in libuc[mpst]*.so.?; do
297319 fi
298320 patchelf --set-rpath " \$ ORIGIN" " $lib "
299321done
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
322+ if test -d ucx; then
323+ patchelf --add-rpath " \$ ORIGIN/ucx" libuc[mpst].so.?
324+ fi
325+ for lib in ucx/libuc[mpst]_* .so.? ; do
326+ if test -f " $lib " ; then
327+ patchelf --set-rpath " \$ ORIGIN" " $lib "
328+ patchelf --add-rpath " \$ ORIGIN/.." " $lib "
329+ fi
303330 if test -f " $lib " .* ; then
304331 mv " $( dirname " $lib " ) /$( readlink " $lib " ) " " $lib "
305332 ln -srf " $lib " " ${lib% .* } "
306333 fi
307- patchelf --set-rpath " \$ ORIGIN" " $lib "
308- patchelf --add-rpath " \$ ORIGIN/.." " $lib "
309334done
310335
311336} # fixup-ucx()
@@ -317,6 +342,8 @@ rm -fr include/rdma
317342rm -f bin/fi_*
318343rm -f lib/libfabric.a
319344rm -f lib/libfabric.la
345+ rm -f lib/libfabric/lib* -fi.a
346+ rm -f lib/libfabric/lib* -fi.la
320347rm -f lib/pkgconfig/libfabric.pc
321348rm -f share/man/man? /fabric.?
322349rm -f share/man/man? /fi_* .?
@@ -330,6 +357,15 @@ for lib in libfabric.so.?; do
330357 fi
331358 patchelf --set-rpath " \$ ORIGIN" " $lib "
332359done
360+ if test -d libfabric; then
361+ patchelf --add-rpath " \$ ORIGIN/libfabric" libfabric.so.?
362+ fi
363+ for lib in libfabric/lib* -fi.so; do
364+ if test -f " $lib " ; then
365+ patchelf --set-rpath " \$ ORIGIN" " $lib "
366+ patchelf --set-rpath " \$ ORIGIN/.." " $lib "
367+ fi
368+ done
333369
334370} # fixup-ofi()
335371
@@ -350,6 +386,7 @@ rm -f lib/lib*mpi.la
350386rm -f lib/lib* mpich* .*
351387rm -f lib/lib* mpicxx.*
352388rm -f lib/lib* mpifort.*
389+ rm -fr lib/cmake
353390rm -fr lib/pkgconfig
354391rm -fr share
355392
@@ -398,10 +435,16 @@ if test "$(uname)" = Linux; then
398435 if test -f libfabric.so; then
399436 mkdir -p " $mpiname "
400437 mv libfabric.* " $mpiname "
438+ if test -d libfabric; then
439+ mv libfabric " $mpiname "
440+ fi
401441 fi
402442 if test -f libucp.so; then
403443 mkdir -p " $mpiname "
404- mv libuc[mpst]* .* ucx " $mpiname "
444+ mv libuc[mpst]* .* " $mpiname "
445+ if test -d ucx; then
446+ mv ucx " $mpiname "
447+ fi
405448 fi
406449 cd " ${DESTDIR}${PREFIX} /lib"
407450 for lib in lib* .so; do
@@ -536,14 +579,6 @@ for exe in 'mpirun' 'ompi*' 'pmix*' 'prte*' 'opal*' 'orte*'; do
536579 done < <( find . -name " $exe " -type f)
537580done
538581
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-
547582if test " $( uname) " = Linux; then
548583 cd " ${DESTDIR}${PREFIX} /bin"
549584 for exe in " ${executables[@]} " ; do
@@ -561,10 +596,16 @@ if test "$(uname)" = Linux; then
561596 if test -f libfabric.so; then
562597 mkdir -p " $mpiname "
563598 mv libfabric.* " $mpiname "
599+ if test -d libfabric; then
600+ mv libfabric " $mpiname "
601+ fi
564602 fi
565603 if test -f libucp.so; then
566604 mkdir -p " $mpiname "
567- mv libuc[mpst]* .* ucx " $mpiname "
605+ mv libuc[mpst]* .* " $mpiname "
606+ if test -d ucx; then
607+ mv ucx " $mpiname "
608+ fi
568609 fi
569610 for lib in lib* .so; do
570611 patchelf --set-rpath " \$ ORIGIN" " $lib "
0 commit comments