libtool
[Top][All Lists]
Advanced

[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: Coleman Kane
Subject: Re: Libtool attempts to link 64-bit lib on a -m32 compile (using Pathscale C++)
Date: Fri, 13 Mar 2009 15:59:04 -0400

On Fri, 2009-03-13 at 14:44 -0500, Ethan Mallove wrote:
> On Fri, Mar/13/2009 03:24:17PM, Coleman Kane wrote:
> > On Fri, 2009-03-13 at 13:11 -0500, Ethan Mallove wrote:
> > > On Thu, Mar/12/2009 07:49:02PM, Ralf Wildenhues wrote:
> > > > 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*
> > > 
> > > $ ../../../libtool --tag=CXX --config
> > > 
> > > # Whether or not to build shared libraries.
> > > build_libtool_libs=yes
> > > 
> > > # Whether or not to build static libraries.
> > > build_old_libs=no
> > > 
> > > # A BSD- or MS-compatible name lister.
> > > NM="/usr/bin/nm -B"
> > > 
> > > # Which release of libtool.m4 was used?
> > > macro_version=2.2.6
> > > macro_revision=1.3012
> > > 
> > > # Assembler program.
> > > AS=as
> > > 
> > > # DLL creation program.
> > > DLLTOOL=dlltool
> > > 
> > > # Object dumper program.
> > > OBJDUMP=objdump
> > > 
> > > # What type of objects to build.
> > > pic_mode=default
> > > 
> > > # Whether or not to optimize for fast installation.
> > > fast_install=needless
> > > 
> > > # The host system.
> > > host_alias=
> > > host=x86_64-unknown-linux-gnu
> > > host_os=linux-gnu
> > > 
> > > # The build system.
> > > build_alias=
> > > build=x86_64-unknown-linux-gnu
> > > build_os=linux-gnu
> > > 
> > > # A sed program that does not truncate output.
> > > SED="/bin/sed"
> > > 
> > > # Sed that helps us avoid accidentally triggering echo(1) options like -n.
> > > Xsed="$SED -e 1s/^X//"
> > > 
> > > # A grep program that handles long lines.
> > > GREP="/bin/grep"
> > > 
> > > # An ERE matcher.
> > > EGREP="/bin/grep -E"
> > > 
> > > # A literal string matcher.
> > > FGREP="/bin/grep -F"
> > > 
> > > # Whether we need soft or hard links.
> > > LN_S="ln -s"
> > > 
> > > # What is the maximum length of a command?
> > > max_cmd_len=98304
> > > 
> > > # Object file suffix (normally "o").
> > > objext=o
> > > 
> > > # Executable file suffix (normally "").
> > > exeext=
> > > 
> > > # whether the shell understands "unset".
> > > lt_unset=unset
> > > 
> > > # turn spaces into newlines.
> > > SP2NL="tr \\040 \\012"
> > > 
> > > # turn newlines into spaces.
> > > NL2SP="tr \\015\\012 \\040\\040"
> > > 
> > > # How to create reloadable object files.
> > > reload_flag=" -r"
> > > reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
> > > 
> > > # Method to check whether dependent libraries are shared objects.
> > > deplibs_check_method="pass_all"
> > > 
> > > # Command to use when deplibs_check_method == "file_magic".
> > > file_magic_cmd="\$MAGIC_CMD"
> > > 
> > > # The archiver.
> > > AR="ar"
> > > AR_FLAGS="cru"
> > > 
> > > # A symbol stripping program.
> > > STRIP="strip"
> > > 
> > > # Commands used to install an old-style archive.
> > > RANLIB="ranlib"
> > > old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
> > > old_postuninstall_cmds=""
> > > 
> > > # A C compiler.
> > > LTCC="pathcc"
> > > 
> > > # LTCC compiler flags.
> > > LTCFLAGS="-O3 -DNDEBUG -Wall -m32 -Wundef -Wno-long-long -Wsign-compare 
> > > -Wmissing-prototypes -Wstrict-prototypes -Wcomment -pedantic 
> > > -Werror-implicit-function-declaration -finline-functions 
> > > -fno-strict-aliasing -fexceptions -pthread"
> > > 
> > > # Take the output of nm and produce a listing of raw symbols and C names.
> > > global_symbol_pipe="sed -n -e 's/^.*[    
> > > ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[       ][      
> > > ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
> > > 
> > > # Transform the output of nm in a proper C declaration.
> > > global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int 
> > > \\1();/p' -e 's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
> > > 
> > > # Transform the output of nm in a C name address pair.
> > > global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  
> > > {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ 
> > > ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p'"
> > > 
> > > # Transform the output of nm in a C name address pair when lib prefix is 
> > > needed.
> > > global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) 
> > > \$/  {\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) 
> > > \\(lib[^ ]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* 
> > > \\([^ ]*\\) \\([^ ]*\\)\$/  {\"lib\\2\", (void *) \\&\\2},/p'"
> > > 
> > > # The name of the directory that contains temporary libtool files.
> > > objdir=.libs
> > > 
> > > # Shell to use when invoking shell scripts.
> > > SHELL="/bin/sh"
> > > 
> > > # An echo program that does not interpret backslashes.
> > > ECHO="echo"
> > > 
> > > # Used to examine libraries when file_magic_cmd begins with "file".
> > > MAGIC_CMD=file
> > > 
> > > # Must we lock files when doing compilation?
> > > need_locks="no"
> > > 
> > > # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
> > > DSYMUTIL=""
> > > 
> > > # Tool to change global to local symbols on Mac OS X.
> > > NMEDIT=""
> > > 
> > > # Tool to manipulate fat objects and archives on Mac OS X.
> > > LIPO=""
> > > 
> > > # ldd/readelf like tool for Mach-O binaries on Mac OS X.
> > > OTOOL=""
> > > 
> > > # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
> > > OTOOL64=""
> > > 
> > > # Old archive suffix (normally "a").
> > > libext=a
> > > 
> > > # Shared library suffix (normally ".so").
> > > shrext_cmds=".so"
> > > 
> > > # The commands to extract the exported symbol list from a shared archive.
> > > extract_expsyms_cmds=""
> > > 
> > > # Variables whose values should be saved in libtool wrapper scripts and
> > > # restored at link time.
> > > variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH 
> > > GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
> > > 
> > > # Do we need the "lib" prefix for modules?
> > > need_lib_prefix=no
> > > 
> > > # Do we need a version for libraries?
> > > need_version=no
> > > 
> > > # Library versioning type.
> > > version_type=linux
> > > 
> > > # Shared library runtime path variable.
> > > runpath_var=LD_RUN_PATH
> > > 
> > > # Shared library path variable.
> > > shlibpath_var=LD_LIBRARY_PATH
> > > 
> > > # Is shlibpath searched before the hard-coded library search path?
> > > shlibpath_overrides_runpath=yes
> > > 
> > > # Format of library name prefix.
> > > libname_spec="lib\$name"
> > > 
> > > # List of archive names.  First name is the real one, the rest are links.
> > > # The last name is the one that the linker finds with -lNAME
> > > library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix 
> > > \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}"
> > > 
> > > # The coded name of the library, if different from the real name.
> > > soname_spec="\${libname}\${release}\${shared_ext}\$major"
> > > 
> > > # Command to use after installation of a shared archive.
> > > postinstall_cmds=""
> > > 
> > > # Command to use after uninstallation of a shared archive.
> > > postuninstall_cmds=""
> > > 
> > > # Commands used to finish a libtool library installation in a directory.
> > > finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
> > > 
> > > # As "finish_cmds", except a single script fragment to be evaled but
> > > # not shown.
> > > finish_eval=""
> > > 
> > > # Whether we should hardcode library paths into libraries.
> > > hardcode_into_libs=yes
> > > 
> > > # Compile-time system search path for libraries.
> > > sys_lib_search_path_spec="/ws/ompi-tools/pathscale/3.2/lib/3.2 /lib64 
> > > /usr/lib64 /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3 
> > > /usr/x86_64-suse-linux/lib /lib /usr/lib"
> > > 
> > > # Run-time system search path for libraries.
> > > sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib64/Xaw95 
> > > /usr/X11R6/lib64/Xaw3d /usr/X11R6/lib64 /usr/X11R6/lib/Xaw95 
> > > /usr/X11R6/lib/Xaw3d /usr/X11R6/lib /usr/x86_64-suse-linux/lib64 
> > > /usr/x86_64-suse-linux/lib /usr/local/lib /usr/openwin/lib /opt/kde/lib 
> > > /opt/kde2/lib /opt/kde3/lib /opt/gnome/lib /opt/gnome2/lib /lib64 /lib 
> > > /usr/lib64 /usr/lib /usr/local/lib64 /usr/openwin/lib64 /opt/kde/lib64 
> > > /opt/kde2/lib64 /opt/kde3/lib64 /opt/gnome/lib64 /opt/gnome2/lib64 "
> > > 
> > > # Whether dlopen is supported.
> > > dlopen_support=yes
> > > 
> > > # Whether dlopen of programs is supported.
> > > dlopen_self=yes
> > > 
> > > # Whether dlopen of statically linked programs is supported.
> > > dlopen_self_static=no
> > > 
> > > # Commands to strip libraries.
> > > old_striplib="strip --strip-debug"
> > > striplib="strip --strip-unneeded"
> > > 
> > > 
> > > # The linker used to build libraries.
> > > LD="/usr/bin/ld -m elf_i386"
> > > 
> > > # Commands used to build an old-style archive.
> > > old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
> > > 
> > > # A language specific compiler.
> > > CC="pathcc"
> > > 
> > > # Is the compiler the GNU compiler?
> > > with_gcc=yes
> > > 
> > > # Compiler flag to turn off builtin functions.
> > > no_builtin_flag=" -fno-builtin -fno-rtti -fno-exceptions"
> > > 
> > > # How to pass a linker flag through the compiler.
> > > wl="-Wl,"
> > > 
> > > # Additional compiler flags for building library objects.
> > > pic_flag=" -fPIC -DPIC"
> > > 
> > > # Compiler flag to prevent dynamic linking.
> > > link_static_flag="-static"
> > > 
> > > # Does compiler simultaneously support -c and -o options?
> > > compiler_c_o="yes"
> > > 
> > > # Whether or not to add -lc for building shared libraries.
> > > build_libtool_need_lc=no
> > > 
> > > # Whether or not to disallow shared libs when runtime libs are static.
> > > allow_libtool_libs_with_static_runtimes=no
> > > 
> > > # Compiler flag to allow reflexive dlopens.
> > > export_dynamic_flag_spec="\${wl}--export-dynamic"
> > > 
> > > # Compiler flag to generate shared objects directly from archives.
> > > whole_archive_flag_spec="\${wl}--whole-archive\$convenience 
> > > \${wl}--no-whole-archive"
> > > 
> > > # Whether the compiler copes with passing no objects directly.
> > > compiler_needs_object="no"
> > > 
> > > # Create an old-style archive from a shared archive.
> > > old_archive_from_new_cmds=""
> > > 
> > > # Create a temporary old-style archive to link instead of a shared 
> > > archive.
> > > old_archive_from_expsyms_cmds=""
> > > 
> > > # Commands used to build a shared archive.
> > > archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags 
> > > \${wl}-soname \$wl\$soname -o \$lib"
> > > archive_expsym_cmds="echo \\\"{ global:\\\" > 
> > > \$output_objdir/\$libname.ver~
> > >             cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" 
> > > >> \$output_objdir/\$libname.ver~
> > >             echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
> > >             \$CC -shared \$libobjs \$deplibs \$compiler_flags 
> > > \${wl}-soname \$wl\$soname \${wl}-version-script 
> > > \${wl}\$output_objdir/\$libname.ver -o \$lib"
> > > 
> > > # Commands used to build a loadable module if different from building
> > > # a shared archive.
> > > module_cmds=""
> > > module_expsym_cmds=""
> > > 
> > > # Whether we are building with GNU ld or not.
> > > with_gnu_ld="yes"
> > > 
> > > # Flag that allows shared libraries with undefined symbols to be built.
> > > allow_undefined_flag=""
> > > 
> > > # Flag that enforces no undefined symbols.
> > > no_undefined_flag=""
> > > 
> > > # Flag to hardcode $libdir into a binary during linking.
> > > # This must work even if $libdir does not exist
> > > hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
> > > 
> > > # If ld is used when linking, flag to hardcode $libdir into a binary
> > > # during linking.  This must work even if $libdir does not exist.
> > > hardcode_libdir_flag_spec_ld=""
> > > 
> > > # Whether we need a single "-rpath" flag with a separated argument.
> > > hardcode_libdir_separator=""
> > > 
> > > # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
> > > # DIR into the resulting binary.
> > > hardcode_direct=no
> > > 
> > > # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
> > > # DIR into the resulting binary and the resulting library dependency is
> > > # "absolute",i.e impossible to change by setting ${shlibpath_var} if the
> > > # library is relocated.
> > > hardcode_direct_absolute=no
> > > 
> > > # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
> > > # into the resulting binary.
> > > hardcode_minus_L=no
> > > 
> > > # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
> > > # into the resulting binary.
> > > hardcode_shlibpath_var=unsupported
> > > 
> > > # Set to "yes" if building a shared library automatically hardcodes DIR
> > > # into the library and all subsequent libraries and executables linked
> > > # against it.
> > > hardcode_automatic=no
> > > 
> > > # Set to yes if linker adds runtime paths of dependent libraries
> > > # to runtime path list.
> > > inherit_rpath=no
> > > 
> > > # Whether libtool must link a program against all its dependency 
> > > libraries.
> > > link_all_deplibs=unknown
> > > 
> > > # Fix the shell variable $srcfile for the compiler.
> > > fix_srcfile_path=""
> > > 
> > > # Set to "yes" if exported symbols are required.
> > > always_export_symbols=no
> > > 
> > > # The commands to list exported symbols.
> > > export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe 
> > > | \$SED 's/.* //' | sort | uniq > \$export_symbols"
> > > 
> > > # Symbols that should not be listed in the preloaded symbols.
> > > exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
> > > 
> > > # Symbols that must always be exported.
> > > include_expsyms=""
> > > 
> > > # Commands necessary for linking programs (against libraries) with 
> > > templates.
> > > prelink_cmds=""
> > > 
> > > # Specify filename containing input files.
> > > file_list_spec=""
> > > 
> > > # How to hardcode a shared library path into an executable.
> > > hardcode_action=immediate
> > > 
> > > # The directories searched by this compiler when creating a shared 
> > > library.
> > > compiler_lib_search_dirs=""
> > > 
> > > # Dependencies to place before and after the objects being linked to
> > > # create a shared library.
> > > predep_objects=""
> > > postdep_objects=""
> > > predeps=""
> > > postdeps=""
> > > 
> > > # The library search path used internally by the compiler when linking
> > > # a shared library.
> > > compiler_lib_search_path=""
> > > 
> > > # ### BEGIN LIBTOOL TAG CONFIG: CXX
> > > 
> > > # The linker used to build libraries.
> > > LD="/usr/bin/ld -m elf_i386"
> > > 
> > > # Commands used to build an old-style archive.
> > > old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
> > > 
> > > # A language specific compiler.
> > > CC="pathCC"
> > > 
> > > # Is the compiler the GNU compiler?
> > > with_gcc=yes
> > > 
> > > # Compiler flag to turn off builtin functions.
> > > no_builtin_flag=" -fno-builtin"
> > > 
> > > # How to pass a linker flag through the compiler.
> > > wl="-Wl,"
> > > 
> > > # Additional compiler flags for building library objects.
> > > pic_flag=" -fPIC -DPIC"
> > > 
> > > # Compiler flag to prevent dynamic linking.
> > > link_static_flag="-static"
> > > 
> > > # Does compiler simultaneously support -c and -o options?
> > > compiler_c_o="yes"
> > > 
> > > # Whether or not to add -lc for building shared libraries.
> > > build_libtool_need_lc=no
> > > 
> > > # Whether or not to disallow shared libs when runtime libs are static.
> > > allow_libtool_libs_with_static_runtimes=no
> > > 
> > > # Compiler flag to allow reflexive dlopens.
> > > export_dynamic_flag_spec="\${wl}--export-dynamic"
> > > 
> > > # Compiler flag to generate shared objects directly from archives.
> > > whole_archive_flag_spec="\${wl}--whole-archive\$convenience 
> > > \${wl}--no-whole-archive"
> > > 
> > > # Whether the compiler copes with passing no objects directly.
> > > compiler_needs_object="no"
> > > 
> > > # Create an old-style archive from a shared archive.
> > > old_archive_from_new_cmds=""
> > > 
> > > # Create a temporary old-style archive to link instead of a shared 
> > > archive.
> > > old_archive_from_expsyms_cmds=""
> > > 
> > > # Commands used to build a shared archive.
> > > archive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs 
> > > \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
> > > archive_expsym_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs 
> > > \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname 
> > > \${wl}-retain-symbols-file \$wl\$export_symbols -o \$lib"
> > > 
> > > # Commands used to build a loadable module if different from building
> > > # a shared archive.
> > > module_cmds=""
> > > module_expsym_cmds=""
> > > 
> > > # Whether we are building with GNU ld or not.
> > > with_gnu_ld="yes"
> > > 
> > > # Flag that allows shared libraries with undefined symbols to be built.
> > > allow_undefined_flag=""
> > > 
> > > # Flag that enforces no undefined symbols.
> > > no_undefined_flag=""
> > > 
> > > # Flag to hardcode $libdir into a binary during linking.
> > > # This must work even if $libdir does not exist
> > > hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
> > > 
> > > # If ld is used when linking, flag to hardcode $libdir into a binary
> > > # during linking.  This must work even if $libdir does not exist.
> > > hardcode_libdir_flag_spec_ld=""
> > > 
> > > # Whether we need a single "-rpath" flag with a separated argument.
> > > hardcode_libdir_separator=""
> > > 
> > > # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
> > > # DIR into the resulting binary.
> > > hardcode_direct=no
> > > 
> > > # Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
> > > # DIR into the resulting binary and the resulting library dependency is
> > > # "absolute",i.e impossible to change by setting ${shlibpath_var} if the
> > > # library is relocated.
> > > hardcode_direct_absolute=no
> > > 
> > > # Set to "yes" if using the -LDIR flag during linking hardcodes DIR
> > > # into the resulting binary.
> > > hardcode_minus_L=no
> > > 
> > > # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
> > > # into the resulting binary.
> > > hardcode_shlibpath_var=unsupported
> > > 
> > > # Set to "yes" if building a shared library automatically hardcodes DIR
> > > # into the library and all subsequent libraries and executables linked
> > > # against it.
> > > hardcode_automatic=no
> > > 
> > > # Set to yes if linker adds runtime paths of dependent libraries
> > > # to runtime path list.
> > > inherit_rpath=no
> > > 
> > > # Whether libtool must link a program against all its dependency 
> > > libraries.
> > > link_all_deplibs=unknown
> > > 
> > > # Fix the shell variable $srcfile for the compiler.
> > > fix_srcfile_path=""
> > > 
> > > # Set to "yes" if exported symbols are required.
> > > always_export_symbols=no
> > > 
> > > # The commands to list exported symbols.
> > > export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe 
> > > | \$SED 's/.* //' | sort | uniq > \$export_symbols"
> > > 
> > > # Symbols that should not be listed in the preloaded symbols.
> > > exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
> > > 
> > > # Symbols that must always be exported.
> > > include_expsyms=""
> > > 
> > > # Commands necessary for linking programs (against libraries) with 
> > > templates.
> > > prelink_cmds=""
> > > 
> > > # Specify filename containing input files.
> > > file_list_spec=""
> > > 
> > > # How to hardcode a shared library path into an executable.
> > > hardcode_action=immediate
> > > 
> > > # The directories searched by this compiler when creating a shared 
> > > library.
> > > compiler_lib_search_dirs="/ws/ompi-tools/pathscale/3.2/lib/3.2/32"
> > > 
> > > # Dependencies to place before and after the objects being linked to
> > > # create a shared library.
> > > predep_objects=""
> > > postdep_objects="/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"
> > > predeps=""
> > > postdeps="-lpthread -lpscrt -lmv -lmpath 
> > > -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 -lstdc++ -lm -lgcc_s_32 
> > > -lc -lgcc_s_32"
> > > 
> > > # The library search path used internally by the compiler when linking
> > > # a shared library.
> > > compiler_lib_search_path="-L/ws/ompi-tools/pathscale/3.2/lib/3.2/32"
> > > 
> > > # ### END LIBTOOL TAG CONFIG: CXX
> > > em162155 $ ../../../libtool --version
> > > ltmain.sh (GNU libtool) 2.2.6
> > > Written by Gordon Matzigkeit <address@hidden>, 1996
> > > 
> > > Copyright (C) 2008 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.
> > > em162155 $ ls -ld /lib* /usr/lib*
> > > drwxr-xr-x  12 root root  4096 2008-05-19 12:22 /lib
> > > drwxr-xr-x   5 root root  4096 2008-05-19 12:23 /lib64
> > > drwxr-xr-x  55 root root 16384 2008-11-06 13:11 /usr/lib
> > > drwxr-xr-x  69 root root 28672 2008-07-17 13:27 /usr/lib64
> > > 
> > > > 
> > > > 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?
> > > > 
> > > 
> > > I'll give that a try.
> > > 
> > > -Ethan
> > > 
> > > 
> > > > Thanks,
> > > > Ralf
> > 
> > It thinks your host system is "x86_64-unknown-linux-gnu".
> > 
> > Maybe you need --host=i386-unknown-linux-gnu in your configure args?
> 
> I haven't needed to do this with other compilers (e.g., GCC, Intel,
> and Sun Studio). Is it possible the "unknown" would only wreak havoc
> in the case of the Pathscale compilers? 
> 
> -Ethan
> 
> 

The "unknown" part should be irrelevant. My point was that you are
telling the autoconf/automake configure system (and maybe libtool too)
that you want to build an x86_64 project, but then with the -m32
compiler flag, you tell the compiler that you want to generate i386
code.

So I suggest trying to tell configure to build a 32-bit project by
setting host to "i386-unknown-linux-gnu", along with specifying your
-m32 flag to the compiler. See if that helps out at all.

-- 
Coleman Kane





reply via email to

[Prev in Thread] Current Thread [Next in Thread]