Skip to content

Commit f9f35a9

Browse files
committed
SLES 16: /usr/bin/ld: cannot find /usr/lib64/openmpi/lib/libmpi.so
1 parent b3179fd commit f9f35a9

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

auto_hpl/build_run_hpl.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,8 +519,16 @@ build_hpl()
519519
mpi_inc="/usr/include/openmpi"
520520
;;
521521
esac
522+
elif [[ "$os" == "sles" ]]; then
523+
# SLES uses /usr/lib64/mpi/gcc/openmpi* path
524+
sles_mpi_dir=$(ls -d /usr/lib64/mpi/gcc/openmpi* 2>/dev/null | sort -V | tail -1)
525+
if [ -n "$sles_mpi_dir" ]; then
526+
mpi_inc="${sles_mpi_dir}/include"
527+
else
528+
mpi_inc="/usr/include/openmpi"
529+
fi
522530
else
523-
# RHEL, Amazon Linux, SLES use include path
531+
# RHEL, Amazon Linux use include path
524532
case "$arch" in
525533
x86_64)
526534
mpi_inc="/usr/include/openmpi-x86_64"

auto_hpl/generate_makefile.sh

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,19 @@ if [ -n "$BLAS_DIR" ]; then
9393
-e "s|^LAdir.*=.*|LAdir = $BLAS_DIR|" \
9494
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/lib/$BLAS_LIB|" \
9595
"$TEMPLATE" > "$OUTPUT"
96+
elif [[ "$MPI_INC" == *"/mpi/gcc/openmpi"* ]]; then
97+
# SLES uses /usr/lib64/mpi/gcc/openmpi* path with lib64 subdirectory
98+
# Extract MPdir from MPI_INC by removing /include suffix
99+
SLES_MPI_DIR="${MPI_INC%/include}"
100+
sed -e "s|^ARCH.*=.*Linux_.*|ARCH = $ARCH|" \
101+
-e "s|^MPdir.*=.*|MPdir = $SLES_MPI_DIR|" \
102+
-e "s|^MPinc.*=.*-I/usr/include/openmpi.*|MPinc = -I$MPI_INC|" \
103+
-e "s|^MPlib.*=.*\$(MPdir)/lib/.*|MPlib = \$(MPdir)/lib64/libmpi.so|" \
104+
-e "s|^LAdir.*=.*|LAdir = $BLAS_DIR|" \
105+
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/lib/$BLAS_LIB|" \
106+
"$TEMPLATE" > "$OUTPUT"
96107
else
97-
# RHEL, Amazon Linux, SLES
108+
# RHEL, Amazon Linux
98109
sed -e "s|^ARCH.*=.*Linux_.*|ARCH = $ARCH|" \
99110
-e "s|^MPinc.*=.*-I/usr/include/openmpi.*|MPinc = -I$MPI_INC|" \
100111
-e "s|^LAdir.*=.*|LAdir = $BLAS_DIR|" \
@@ -120,8 +131,18 @@ else
120131
-e "s|^LAdir.*=.*|LAdir = /usr/lib/aarch64-linux-gnu|" \
121132
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/$BLAS_LIB|" \
122133
"$TEMPLATE" > "$OUTPUT"
134+
elif [[ "$MPI_INC" == *"/mpi/gcc/openmpi"* ]]; then
135+
# SLES uses /usr/lib64/mpi/gcc/openmpi* path with lib64 subdirectory
136+
# Extract MPdir from MPI_INC by removing /include suffix
137+
SLES_MPI_DIR="${MPI_INC%/include}"
138+
sed -e "s|^ARCH.*=.*Linux_.*|ARCH = $ARCH|" \
139+
-e "s|^MPdir.*=.*|MPdir = $SLES_MPI_DIR|" \
140+
-e "s|^MPinc.*=.*-I/usr/include/openmpi.*|MPinc = -I$MPI_INC|" \
141+
-e "s|^MPlib.*=.*\$(MPdir)/lib/.*|MPlib = \$(MPdir)/lib64/libmpi.so|" \
142+
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/$BLAS_LIB|" \
143+
"$TEMPLATE" > "$OUTPUT"
123144
else
124-
# RHEL, Amazon Linux, SLES use standard paths
145+
# RHEL, Amazon Linux use standard paths
125146
sed -e "s|^ARCH.*=.*Linux_.*|ARCH = $ARCH|" \
126147
-e "s|^MPinc.*=.*-I/usr/include/openmpi.*|MPinc = -I$MPI_INC|" \
127148
-e "s|^LAlib.*=.*|LAlib = \$(LAdir)/$BLAS_LIB|" \

0 commit comments

Comments
 (0)