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

Reply via email to