[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Libtool attempts to link 64-bit lib on a -m32 compile (using Pathsca
From: |
Ralf Wildenhues |
Subject: |
Re: Libtool attempts to link 64-bit lib on a -m32 compile (using Pathscale C++) |
Date: |
Thu, 12 Mar 2009 19:49:02 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
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