I have been able to configure and build both 1.5rc5 and 1.4.3rc1 on
Solaris 10 for SPARC, using Sun C 5.10.
I have also build 1.5rc5 w/ gcc-3.3.2 (and expect 1.4.3rc1 to build w/
gcc as well, once I have time)
All 3 builds fail "make check" in a way that suggests to me that libtool
is not working correctly on this platform.
The two RC versions fail in different places, but I suspect that is just
because they contain different tests.
Platform:
$ uname -a
SunOS lem.lbl.gov 5.10 s10_69 sun4u sparc SUNW,Ultra-5_10
$ cc -V
cc: Sun C 5.10 SunOS_sparc 2009/06/03
usage: cc [ options] files. Use 'cc -flags' for details
$ gcc --version
gcc (GCC) 3.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Configure/build/check for 1.4.3rc1 w/ Sun C 5.10
$ [path_to]/openmpi-1.4.3rc1/configure CC='cc -m32 -xarch=spar'c CXX='CC
-m32 -xarch=sparc' F77='f77 -m32 -xarch=sparc' FC='f90 -m32 -xarch=sparc'
[...Yes, this does pass the V8+/v9 ABI check...]
$ make
[...]
$ make check
[...]
make[3]: Entering directory
`/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/test/datatype'
source='../../../test/datatype/checksum.c' object='checksum.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../../../config/depcomp \
cc -m32 -xarch=sparc -DHAVE_CONFIG_H -I. -I../../../test/datatype
-I../../opal/include -I../../orte/include -I../../ompi/include
-I../../opal/mca/paffinity/linux/plpa/src/libplpa -I../../.. -I../..
-I../../../opal/include -I../../../orte/include
-I../../../ompi/include -O -DNDEBUG -mt -c -o checksum.o
../../../test/datatype/checksum.c
"../../../test/datatype/checksum.c", line 68: warning: assignment type
mismatch:
pointer to char "=" pointer to int
"../../../test/datatype/checksum.c", line 86: warning: assignment type
mismatch:
pointer to char "=" pointer to int
"../../../test/datatype/checksum.c", line 106: warning: assignment type
mismatch:
pointer to char "=" pointer to int
/bin/bash ../../libtool --tag=CC --mode=link cc -m32 -xarch=sparc -O
-DNDEBUG -mt -export-dynamic -o checksum checksum.o
../../ompi/libmpi.la -lsocket -lnsl -lrt -lm -lthread
libtool: link: cc -m32 -xarch=sparc -O -DNDEBUG -mt -o .libs/checksum
checksum.o ../../ompi/.libs/libmpi.so
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/orte/.libs/libopen-rte.so
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/opal/.libs/libopen-pal.so
-lsocket -lnsl -lrt -lm -lthread -mt -R/usr/local/lib
source='../../../test/datatype/position.c' object='position.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../../../config/depcomp \
cc -m32 -xarch=sparc -DHAVE_CONFIG_H -I. -I../../../test/datatype
-I../../opal/include -I../../orte/include -I../../ompi/include
-I../../opal/mca/paffinity/linux/plpa/src/libplpa -I../../.. -I../..
-I../../../opal/include -I../../../orte/include
-I../../../ompi/include -O -DNDEBUG -mt -c -o position.o
../../../test/datatype/position.c
/bin/bash ../../libtool --tag=CC --mode=link cc -m32 -xarch=sparc -O
-DNDEBUG -mt -export-dynamic -o position position.o
../../ompi/libmpi.la -lsocket -lnsl -lrt -lm -lthread
libtool: link: cc -m32 -xarch=sparc -O -DNDEBUG -mt -o .libs/position
position.o ../../ompi/.libs/libmpi.so
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/orte/.libs/libopen-rte.so
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/opal/.libs/libopen-pal.so
-lsocket -lnsl -lrt -lm -lthread -mt -R/usr/local/lib
source='../../../test/datatype/to_self.c' object='to_self.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../../../config/depcomp \
cc -m32 -xarch=sparc -DHAVE_CONFIG_H -I. -I../../../test/datatype
-I../../opal/include -I../../orte/include -I../../ompi/include
-I../../opal/mca/paffinity/linux/plpa/src/libplpa -I../../.. -I../..
-I../../../opal/include -I../../../orte/include
-I../../../ompi/include -O -DNDEBUG -mt -c -o to_self.o
../../../test/datatype/to_self.c
/bin/bash ../../libtool --tag=CC --mode=link cc -m32 -xarch=sparc -O
-DNDEBUG -mt -export-dynamic -o to_self to_self.o
../../ompi/libmpi.la -lsocket -lnsl -lrt -lm -lthread
libtool: link: cc -m32 -xarch=sparc -O -DNDEBUG -mt -o .libs/to_self
to_self.o ../../ompi/.libs/libmpi.so
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/orte/.libs/libopen-rte.so
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/opal/.libs/libopen-pal.so
-lsocket -lnsl -lrt -lm -lthread -mt -R/usr/local/lib
source='../../../test/datatype/ddt_pack.c' object='ddt_pack.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../../../config/depcomp \
cc -m32 -xarch=sparc -DHAVE_CONFIG_H -I. -I../../../test/datatype
-I../../opal/include -I../../orte/include -I../../ompi/include
-I../../opal/mca/paffinity/linux/plpa/src/libplpa -I../../.. -I../..
-I../../../opal/include -I../../../orte/include
-I../../../ompi/include -O -DNDEBUG -mt -c -o ddt_pack.o
../../../test/datatype/ddt_pack.c
/bin/bash ../../libtool --tag=CC --mode=link cc -m32 -xarch=sparc -O
-DNDEBUG -mt -export-dynamic -o ddt_pack ddt_pack.o
../../ompi/libmpi.la -lsocket -lnsl -lrt -lm -lthread
libtool: link: cc -m32 -xarch=sparc -O -DNDEBUG -mt -o .libs/ddt_pack
ddt_pack.o ../../ompi/.libs/libmpi.so
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/orte/.libs/libopen-rte.so
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/opal/.libs/libopen-pal.so
-lsocket -lnsl -lrt -lm -lthread -mt -R/usr/local/lib
make[3]: Leaving directory
`/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/test/datatype'
make check-TESTS
make[3]: Entering directory
`/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/test/datatype'
ld.so.1:
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/test/datatype/.libs/checksum:
fatal: libmpi.so.0: open failed: No such file or directory
FAIL: checksum
ld.so.1:
/export/home/phargrov/openmpi-1.4.3rc1/BLD-cc-5.10/test/datatype/.libs/position:
fatal: libmpi.so.0: open failed: No such file or directory
FAIL: position
========================================================
2 of 2 tests failed
Please report to http://www.open-mpi.org/community/help/
========================================================
As far as I can tell, the libtool invocations are correct, with
"../../ompi/libmpi.la", but the resulting executables seem to be missing
rpath info or some related magic required to find libmpi.so.1; the sort
of thing that libtool is intended to handle.
Here is the failure for 1.5rc5 w/ Sun C 5.10, configured identically to
the 1.4.3rc1 case above:
$ make check V=1
[...]
Making check in debuggers
make[2]: Entering directory
`/export/home/phargrov/openmpi-1.5rc5/BLD-cc-5.10/ompi/debuggers'
make predefined_gap_test dlopen_test
make[3]: Entering directory
`/export/home/phargrov/openmpi-1.5rc5/BLD-cc-5.10/ompi/debuggers'
\
source='../../../ompi/debuggers/predefined_gap_test.c'
object='predefined_gap_test.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../../../config/depcomp \
cc -m32 -xarch=sparc -DHAVE_CONFIG_H -I. -I../../../ompi/debuggers
-I../../opal/include -I../../orte/include -I../../ompi/include
-I../../opal/mca/paffinity/linux/plpa/src/libplpa -I../../.. -I../..
-I../../../opal/include -I../../../orte/include
-I../../../ompi/include -DNDEBUG -mt -xldscope=hidden -g -xO0 -c -o
predefined_gap_test.o ../../../ompi/debuggers/predefined_gap_test.c
/bin/bash ../../libtool --tag=CC --mode=link cc -m32 -xarch=sparc
-DNDEBUG -mt -xldscope=hidden -g -xO0 -export-dynamic -o
predefined_gap_test predefined_gap_test.o ../../ompi/libmpi.la -lsocket
-lnsl -lrt -lm -lthread
libtool: link: cc -m32 -xarch=sparc -DNDEBUG -mt -xldscope=hidden -g
-xO0 -o .libs/predefined_gap_test predefined_gap_test.o
../../ompi/.libs/libmpi.so -lsocket -lnsl -lrt -lm -lthread -mt
-R/usr/local/lib
\
source='dlopen_test.c' object='dlopen_test-dlopen_test.o' libtool=no \
DEPDIR=.deps depmode=none /bin/bash ../../../config/depcomp \
cc -m32 -xarch=sparc -DHAVE_CONFIG_H -I. -I../../../ompi/debuggers
-I../../opal/include -I../../orte/include -I../../ompi/include
-I../../opal/mca/paffinity/linux/plpa/src/libplpa
-I../../../opal/libltdl -I../../.. -I../.. -I../../../opal/include
-I../../../orte/include -I../../../ompi/include -DNDEBUG -mt
-xldscope=hidden -g -xO0 -c -o dlopen_test-dlopen_test.o `test -f
'dlopen_test.c' || echo '../../../ompi/debuggers/'`dlopen_test.c
/bin/bash ../../libtool --tag=CC --mode=link cc -m32 -xarch=sparc
-DNDEBUG -mt -xldscope=hidden -g -xO0 -export-dynamic -o dlopen_test
dlopen_test-dlopen_test.o ../../opal/libltdl/libltdlc.la -lsocket -lnsl
-lrt -lm -lthread
libtool: link: cc -m32 -xarch=sparc -DNDEBUG -mt -xldscope=hidden -g
-xO0 -o dlopen_test dlopen_test-dlopen_test.o
/export/home/phargrov/openmpi-1.5rc5/BLD-cc-5.10/opal/libltdl/./.libs/dlopen.a
../../opal/libltdl/.libs/libltdlc.a -lsocket -lnsl -lrt -lm -lthread -mt
make[3]: Leaving directory
`/export/home/phargrov/openmpi-1.5rc5/BLD-cc-5.10/ompi/debuggers'
make check-TESTS
make[3]: Entering directory
`/export/home/phargrov/openmpi-1.5rc5/BLD-cc-5.10/ompi/debuggers'
ld.so.1:
/export/home/phargrov/openmpi-1.5rc5/BLD-cc-5.10/ompi/debuggers/.libs/predefined_gap_test:
fatal: libmpi.so.0: open failed: No such file or directory
FAIL: predefined_gap_test
Trying to lt_dlopen file with dladvise_local: ./libompi_dbg_msgq
File opened with dladvise_local, all passed
PASS: dlopen_test
========================================================
1 of 2 tests failed
Please report to http://www.open-mpi.org/community/help/
========================================================
Again, the libtool-built test executable is unable to load libmpi.so.0
Finally, the 1.5rc5 w/ gcc-3.3.2:
In this case I disabled the build of VT, but that will be the subject of
another report.
I've also disabled f90, since there is no gfortran-3.3.2 and I had no
interest in mixing compiler families.
$ [path_to]/openmpi-1.5rc5/configure --enable-contrib-no-build=vt
--disable-mpi-f90 FFLAGS=-mcpu=v9 CFLAGS=-mcpu=v9 CXXFLAGS=-mcpu=v9
$ make
[...]
$ make check
[...]
Making check in debuggers
make[2]: Entering directory
`/export/home/phargrov/openmpi-1.5rc5/BLD-gcc/ompi/debuggers'
make predefined_gap_test dlopen_test
make[3]: Entering directory
`/export/home/phargrov/openmpi-1.5rc5/BLD-gcc/ompi/debuggers'
CC predefined_gap_test.o
CCLD predefined_gap_test
CC dlopen_test-dlopen_test.o
CCLD dlopen_test
make[3]: Leaving directory
`/export/home/phargrov/openmpi-1.5rc5/BLD-gcc/ompi/debuggers'
make check-TESTS
make[3]: Entering directory
`/export/home/phargrov/openmpi-1.5rc5/BLD-gcc/ompi/debuggers'
ld.so.1:
/export/home/phargrov/openmpi-1.5rc5/BLD-gcc/ompi/debuggers/.libs/predefined_gap_test:
fatal: libmpi.so.0: open failed: No such file or directory
FAIL: predefined_gap_test
Trying to lt_dlopen file with dladvise_local: ./libompi_dbg_msgq
File opened with dladvise_local, all passed
PASS: dlopen_test
========================================================
1 of 2 tests failed
Please report to http://www.open-mpi.org/community/help/
========================================================
This time I didn't include V=1 in the "make check" command, but the
failure appears identical to the one seen w/ Sun C. So, I don't believe
the problem is compiler specific.
-Paul
P.S. Temporary access to this host is possible if needed to address
this problem.
--
Paul H. Hargrove phhargr...@lbl.gov
Future Technologies Group
HPC Research Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900