Hello Ethan, * Ethan Mallove wrote on Thu, Mar 12, 2009 at 05:25:50PM CET: > Libtool is trying to link in 64-bit libs on a -m32 compile with the > Pathscale C++ compiler. E.g., > > /bin/sh ../../../libtool --tag=CXX --mode=link pathCC -O3 -DNDEBUG -Wall > -m32 -Wundef -Wno-long-long -finline-functions -fexceptions -pthread > -export-dynamic -fexceptions -o libmpi_cxx.la -rpath > /opt/SUNWhpc/HPC8.2/pathscale/lib mpicxx.lo intercepts.lo comm.lo datatype.lo > win.lo file.lo ../../../ompi/libmpi.la -lnsl -lutil -lm > libtool: link: pathCC -shared -nostdlib .libs/mpicxx.o .libs/intercepts.o > .libs/comm.o .libs/datatype.o .libs/win.o .libs/file.o -Wl,-rpath > -Wl,/home/emallove/v1.3/ompi/.libs -Wl,-rpath > -Wl,/home/emallove/v1.3/orte/.libs -Wl,-rpath > -Wl,/home/emallove/v1.3/opal/.libs -Wl,-rpath > -Wl,/opt/SUNWhpc/HPC8.2/pathscale/lib -L/home/emallove/v1.3/orte/.libs > -L/home/emallove/v1.3/opal/.libs ../../../ompi/.libs/libmpi.so > /home/emallove/v1.3/orte/.libs/libopen-rte.so > /home/emallove/v1.3/opal/.libs/libopen-pal.so -ldl -lnsl -lutil > -L/ws/ompi-tools/pathscale/3.2/lib/3.2/32 > -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/32 > -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3 > -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../x86_64-suse-linux/lib/../lib > > -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../x86_64-suse-linux/lib > -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../lib > -L/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../.. -L/lib/../lib > -L/usr/lib/../lib -lpthread -lpscrt -lmv -lmpath /usr/lib64/libstdc++.so > -lgcc_s -lm -lc -lgcc_s_32 > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../lib/crti.o > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/32/crtbeginS.o > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/32/crtendS.o > /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../lib/crtn.o -m32 > -pthread -pthread -Wl,-soname -Wl,libmpi_cxx.so.0 -o > .libs/libmpi_cxx.so.0.0.0 > /usr/lib64/libstdc++.so: could not read symbols: Invalid operation > collect2: ld returned 1 exit status > make: *** [libmpi_cxx.la] Error 1 > > $ pathCC --version > PathScale(TM) Compiler Suite: Version 3.2 > Built on: 2008-06-16 16:45:36 -0700 > Thread model: posix > GNU gcc version 3.3.1 (PathScale 3.2 driver) > $ uname -a > Linux burl-ct-v20z-13 2.6.5-7.308-smp #1 SMP Mon Dec 10 11:36:40 UTC 2007 > x86_64 x86_64 x86_64 GNU/Linux > $ cat /etc/SuSE-release > SUSE LINUX Enterprise Server 9 (x86_64) > VERSION = 9 > PATCHLEVEL = 4
Thanks for the report. Please also post the output of ../../../libtool --tag=CXX --config ../../../libtool --version ls -ld /lib* /usr/lib* I wonder: if you do the build with g++, then GNU ld will probably just skip over the wrong libstdc++ and keep searching until it finds the 32 bit one later in the search path, right? Can you work around the issue by adding -L/usr/lib32 early in LDFLAGS? Thanks, Ralf _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool