Discussion:
[OMPI users] openmpi-3.1.2 libgfortran conflict
Patrick Begou
2018-08-30 12:27:23 UTC
Permalink
I am compiling openmpi-3.1.2 on CentOS 7 with GCC 7.3 installed in /opt/GCC7. My
setup is "debug" as I had some trouble with MPI lib.
When I run a ldd command on libmpi_usempi.so it shows that it load
libgfortran.so.4 (from GCC 7.3) but also libgfortran.so.3 (from system GCC
4.8.5) and there is a conflict message when linking MPI applications.
I do not know how to remove this dependancie on libgfortran.so.3.

Thanks for your advices

Patrick

$ldd /opt/openmpi-GCC73/3.1.2/lib/libmpi_usempi.so
    linux-vdso.so.1 =>  (0x00007fffd9b33000)
    libmpi_mpifh.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libmpi_mpifh.so.40
(0x00007f3efb75f000)
    libmpi.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libmpi.so.40 (0x00007f3efb1d9000)
    libopen-rte.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libopen-rte.so.40
(0x00007f3efadf6000)
    libopen-pal.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libopen-pal.so.40
(0x00007f3efa8d4000)
    libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f3efa6c8000)
    libudev.so.1 => /lib64/libudev.so.1 (0x00007f3efa4b2000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f3efa2ae000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f3efa0a6000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007f3ef9ea3000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f3ef9c8d000)
*libgfortran.so.3*=> /lib64/libgfortran.so.3 (0x00007f3ef996b000) <<== system
GCC 4.8.5
    libm.so.6 => /lib64/libm.so.6 (0x00007f3ef9669000)
    libquadmath.so.0 => /opt/GCC73/lib64/libquadmath.so.0 (0x00007f3ef942a000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f3ef905d000)
    libgcc_s.so.1 => /opt/GCC73/lib64/libgcc_s.so.1 (0x00007f3ef8e46000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3ef8c2a000)
*libgfortran.so.4*=> /opt/GCC73/lib/../lib64/libgfortran.so.4
(0x00007f3ef8858000) <<== /opt GCC 7.3.0
    /lib64/ld-linux-x86-64.so.2 (0x00007f3efbbbe000)
    libcap.so.2 => /lib64/libcap.so.2 (0x00007f3ef8653000)
    libdw.so.1 => /lib64/libdw.so.1 (0x00007f3ef840c000)
    libattr.so.1 => /lib64/libattr.so.1 (0x00007f3ef8207000)
    libelf.so.1 => /lib64/libelf.so.1 (0x00007f3ef7fef000)
    liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f3ef7dc9000)
    libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f3ef7bb9000)

I've run several configurations for building OpenMPI, below is the last one
which fails too.

module load Compilers-GCC73
export BASE=/opt
export MPIVERS=3.1.2
export DESTMPI=$BASE/openmpi-GCC73/$MPIVERS
tar xvfz openmpi-$MPIVERS.tar.gz
cd openmpi-$MPIVERS
mkdir build
cd build/
CC=$(which gcc) CXX=$(which g++) FC=$(which gfortran)
LDFLAGS="-L/opt/GCC73/lib64 -L/opt/GCC73/lib" \
../configure --prefix=$DESTMPI --enable-mpirun-prefix-by-default --disable-dlopen \
--enable-mca-no-build=openib --without-verbs --enable-mpi-cxx --enable-debug
--enable-mem-debug --without-slurm
make -j 8
make check
make install

Gfortran is in the PATH and LD_LIBRARY_PATH is set when module is loaded.
$which gfortran
/opt/GCC73/bin/gfortran
$echo $LD_LIBRARY_PATH
/opt/GCC73/lib64:/opt/GCC73/lib

Building a basic fortran application with gfortran 7.3.0 do no show any
reference to libgfortran.so.3:
$ldd a.out
    linux-vdso.so.1 =>  (0x00007fff620e8000)
*libgfortran.so.4* => /opt/GCC73/lib64/libgfortran.so.4 (0x00007f5e7b573000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f5e7b271000)
    libgcc_s.so.1 => /opt/GCC73/lib64/libgcc_s.so.1 (0x00007f5e7b05a000)
    libquadmath.so.0 => /opt/GCC73/lib64/libquadmath.so.0 (0x00007f5e7ae1b000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f5e7aa4e000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5e7b945000)
--
===================================================================
| Equipe M.O.S.T. | |
| Patrick BEGOU | mailto:***@grenoble-inp.fr |
| LEGI | |
| BP 53 X | Tel 04 76 82 51 35 |
| 38041 GRENOBLE CEDEX | Fax 04 76 82 52 71 |
===================================================================
Patrick Begou
2018-09-03 08:17:39 UTC
Permalink
Solved.
Strange conflict (not explained) after several compilation test of OpenMPI with
gcc7. Solved by removing the destination directory before any new "make install"
command.

Patrick
Post by Patrick Begou
I am compiling openmpi-3.1.2 on CentOS 7 with GCC 7.3 installed in /opt/GCC7.
My setup is "debug" as I had some trouble with MPI lib.
When I run a ldd command on libmpi_usempi.so it shows that it load
libgfortran.so.4 (from GCC 7.3) but also libgfortran.so.3 (from system GCC
4.8.5) and there is a conflict message when linking MPI applications.
I do not know how to remove this dependancie on libgfortran.so.3.
Thanks for your advices
Patrick
$ldd /opt/openmpi-GCC73/3.1.2/lib/libmpi_usempi.so
    linux-vdso.so.1 =>  (0x00007fffd9b33000)
    libmpi_mpifh.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libmpi_mpifh.so.40
(0x00007f3efb75f000)
    libmpi.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libmpi.so.40 (0x00007f3efb1d9000)
    libopen-rte.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libopen-rte.so.40
(0x00007f3efadf6000)
    libopen-pal.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libopen-pal.so.40
(0x00007f3efa8d4000)
    libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f3efa6c8000)
    libudev.so.1 => /lib64/libudev.so.1 (0x00007f3efa4b2000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f3efa2ae000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f3efa0a6000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007f3ef9ea3000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f3ef9c8d000)
*libgfortran.so.3*=> /lib64/libgfortran.so.3 (0x00007f3ef996b000) <<== system
GCC 4.8.5
    libm.so.6 => /lib64/libm.so.6 (0x00007f3ef9669000)
    libquadmath.so.0 => /opt/GCC73/lib64/libquadmath.so.0 (0x00007f3ef942a000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f3ef905d000)
    libgcc_s.so.1 => /opt/GCC73/lib64/libgcc_s.so.1 (0x00007f3ef8e46000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3ef8c2a000)
*libgfortran.so.4*=> /opt/GCC73/lib/../lib64/libgfortran.so.4
(0x00007f3ef8858000) <<== /opt GCC 7.3.0
    /lib64/ld-linux-x86-64.so.2 (0x00007f3efbbbe000)
    libcap.so.2 => /lib64/libcap.so.2 (0x00007f3ef8653000)
    libdw.so.1 => /lib64/libdw.so.1 (0x00007f3ef840c000)
    libattr.so.1 => /lib64/libattr.so.1 (0x00007f3ef8207000)
    libelf.so.1 => /lib64/libelf.so.1 (0x00007f3ef7fef000)
    liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f3ef7dc9000)
    libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f3ef7bb9000)
I've run several configurations for building OpenMPI, below is the last one
which fails too.
module load Compilers-GCC73
export BASE=/opt
export MPIVERS=3.1.2
export DESTMPI=$BASE/openmpi-GCC73/$MPIVERS
tar xvfz openmpi-$MPIVERS.tar.gz
cd openmpi-$MPIVERS
mkdir build
cd build/
CC=$(which gcc) CXX=$(which g++) FC=$(which gfortran)
LDFLAGS="-L/opt/GCC73/lib64 -L/opt/GCC73/lib" \
../configure --prefix=$DESTMPI --enable-mpirun-prefix-by-default --disable-dlopen \
--enable-mca-no-build=openib --without-verbs --enable-mpi-cxx --enable-debug
--enable-mem-debug --without-slurm
make -j 8
make check
make install
Gfortran is in the PATH and LD_LIBRARY_PATH is set when module is loaded.
$which gfortran
/opt/GCC73/bin/gfortran
$echo $LD_LIBRARY_PATH
/opt/GCC73/lib64:/opt/GCC73/lib
Building a basic fortran application with gfortran 7.3.0 do no show any
$ldd a.out
    linux-vdso.so.1 =>  (0x00007fff620e8000)
*libgfortran.so.4* => /opt/GCC73/lib64/libgfortran.so.4 (0x00007f5e7b573000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f5e7b271000)
    libgcc_s.so.1 => /opt/GCC73/lib64/libgcc_s.so.1 (0x00007f5e7b05a000)
    libquadmath.so.0 => /opt/GCC73/lib64/libquadmath.so.0 (0x00007f5e7ae1b000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f5e7aa4e000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5e7b945000)
--
===================================================================
| Equipe M.O.S.T. | |
| LEGI | |
| BP 53 X | Tel 04 76 82 51 35 |
| 38041 GRENOBLE CEDEX | Fax 04 76 82 52 71 |
===================================================================
_______________________________________________
users mailing list
https://lists.open-mpi.org/mailman/listinfo/users
--
===================================================================
| Equipe M.O.S.T. | |
| Patrick BEGOU | mailto:***@grenoble-inp.fr |
| LEGI | |
| BP 53 X | Tel 04 76 82 51 35 |
| 38041 GRENOBLE CEDEX | Fax 04 76 82 52 71 |
===================================================================
Jeff Squyres (jsquyres) via users
2018-09-05 17:25:53 UTC
Permalink
Glad you figured it out. Just for some additional color:

https://www.open-mpi.org/faq/?category=building#install-overwrite
Post by Patrick Begou
Solved.
Strange conflict (not explained) after several compilation test of OpenMPI with gcc7. Solved by removing the destination directory before any new "make install" command.
Patrick
I am compiling openmpi-3.1.2 on CentOS 7 with GCC 7.3 installed in /opt/GCC7. My setup is "debug" as I had some trouble with MPI lib.
When I run a ldd command on libmpi_usempi.so it shows that it load libgfortran.so.4 (from GCC 7.3) but also libgfortran.so.3 (from system GCC 4.8.5) and there is a conflict message when linking MPI applications.
I do not know how to remove this dependancie on libgfortran.so.3.
Thanks for your advices
Patrick
$ldd /opt/openmpi-GCC73/3.1.2/lib/libmpi_usempi.so
linux-vdso.so.1 => (0x00007fffd9b33000)
libmpi_mpifh.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libmpi_mpifh.so.40 (0x00007f3efb75f000)
libmpi.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libmpi.so.40 (0x00007f3efb1d9000)
libopen-rte.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libopen-rte.so.40 (0x00007f3efadf6000)
libopen-pal.so.40 => /opt/openmpi-GCC73/3.1.2/lib/libopen-pal.so.40 (0x00007f3efa8d4000)
libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f3efa6c8000)
libudev.so.1 => /lib64/libudev.so.1 (0x00007f3efa4b2000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f3efa2ae000)
librt.so.1 => /lib64/librt.so.1 (0x00007f3efa0a6000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f3ef9ea3000)
libz.so.1 => /lib64/libz.so.1 (0x00007f3ef9c8d000)
libgfortran.so.3 => /lib64/libgfortran.so.3 (0x00007f3ef996b000) <<== system GCC 4.8.5
libm.so.6 => /lib64/libm.so.6 (0x00007f3ef9669000)
libquadmath.so.0 => /opt/GCC73/lib64/libquadmath.so.0 (0x00007f3ef942a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f3ef905d000)
libgcc_s.so.1 => /opt/GCC73/lib64/libgcc_s.so.1 (0x00007f3ef8e46000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3ef8c2a000)
libgfortran.so.4 => /opt/GCC73/lib/../lib64/libgfortran.so.4 (0x00007f3ef8858000) <<== /opt GCC 7.3.0
/lib64/ld-linux-x86-64.so.2 (0x00007f3efbbbe000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f3ef8653000)
libdw.so.1 => /lib64/libdw.so.1 (0x00007f3ef840c000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f3ef8207000)
libelf.so.1 => /lib64/libelf.so.1 (0x00007f3ef7fef000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f3ef7dc9000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f3ef7bb9000)
I've run several configurations for building OpenMPI, below is the last one which fails too.
module load Compilers-GCC73
export BASE=/opt
export MPIVERS=3.1.2
export DESTMPI=$BASE/openmpi-GCC73/$MPIVERS
tar xvfz openmpi-$MPIVERS.tar.gz
cd openmpi-$MPIVERS
mkdir build
cd build/
CC=$(which gcc) CXX=$(which g++) FC=$(which gfortran) LDFLAGS="-L/opt/GCC73/lib64 -L/opt/GCC73/lib" \
../configure --prefix=$DESTMPI --enable-mpirun-prefix-by-default --disable-dlopen \
--enable-mca-no-build=openib --without-verbs --enable-mpi-cxx --enable-debug --enable-mem-debug --without-slurm
make -j 8
make check
make install
Gfortran is in the PATH and LD_LIBRARY_PATH is set when module is loaded.
$which gfortran
/opt/GCC73/bin/gfortran
$echo $LD_LIBRARY_PATH
/opt/GCC73/lib64:/opt/GCC73/lib
$ldd a.out
linux-vdso.so.1 => (0x00007fff620e8000)
libgfortran.so.4 => /opt/GCC73/lib64/libgfortran.so.4 (0x00007f5e7b573000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5e7b271000)
libgcc_s.so.1 => /opt/GCC73/lib64/libgcc_s.so.1 (0x00007f5e7b05a000)
libquadmath.so.0 => /opt/GCC73/lib64/libquadmath.so.0 (0x00007f5e7ae1b000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5e7aa4e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5e7b945000)
--
===================================================================
| Equipe M.O.S.T. | |
| Patrick BEGOU |
|
| LEGI | |
| BP 53 X | Tel 04 76 82 51 35 |
| 38041 GRENOBLE CEDEX | Fax 04 76 82 52 71 |
===================================================================
_______________________________________________
users mailing list
https://lists.open-mpi.org/mailman/listinfo/users
--
===================================================================
| Equipe M.O.S.T. | |
| Patrick BEGOU |
|
| LEGI | |
| BP 53 X | Tel 04 76 82 51 35 |
| 38041 GRENOBLE CEDEX | Fax 04 76 82 52 71 |
===================================================================
_______________________________________________
users mailing list
https://lists.open-mpi.org/mailman/listinfo/users
--
Jeff Squyres
***@cisco.com
Loading...