[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: g++ shared library problem...
From: |
Ed Hartnett |
Subject: |
Re: g++ shared library problem... |
Date: |
Fri, 05 May 2006 14:26:19 -0600 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.4 (gnu/linux) |
Ralf Wildenhues <address@hidden> writes:
> Hi Ed,
>
> * Ed Hartnett wrote on Fri, May 05, 2006 at 09:30:02PM CEST:
>> Ralf Wildenhues <address@hidden> writes:
>> > * Ed Hartnett wrote on Fri, May 05, 2006 at 02:43:42PM CEST:
>> >>
>> >> Building my package with libtool, I get the following error on my
>> >> linux box when I build, unless I use the --disable-shared flag, in
>> >> which case everything works fine.
>> >
>> > Ouch. Now where'd that -nostdlib go?
>> > Which libtool version is this, and what does `./libtool --config' say?
>
>> bash-3.00$ libtool --version
>> ltmain.sh (GNU libtool 1.2272 2006/02/20 19:39:16) 2.1a
>> Written by Gordon Matzigkeit <address@hidden>, 1996
>
> Hmm.
>
>> bash-3.00$ ./libtool --config
>
> Argh, my bad. I meant to ask for
> ./libtool --tag=CXX --config
>
> Sorry about that.
>
./libtool --tag=CXX --config
# Libtool was configured on host shecky.unidata.ucar.edu:
# Shell to use when invoking shell scripts.
SHELL="/bin/sh"
# Whether or not to build shared libraries.
build_libtool_libs=no
# Whether or not to build static libraries.
build_old_libs=yes
# Whether or not to add -lc for building shared libraries.
build_libtool_need_lc=yes
# Whether or not to disallow shared libs when runtime libs are static
allow_libtool_libs_with_static_runtimes=no
# Whether or not to optimize for fast installation.
fast_install=needless
# The host system.
host_alias=
host=x86_64-unknown-linux-gnu
# An echo program that does not interpret backslashes.
echo="echo"
# The archiver.
AR="ar"
AR_FLAGS="cru"
# A C compiler.
LTCC="gcc"
# A language-specific compiler.
CC="gcc"
# Is the compiler the GNU C compiler?
with_gcc=yes
# An ERE matcher.
EGREP="grep -E"
# The linker used to build libraries.
LD="/usr/bin/ld -m elf_x86_64"
# Whether we need hard or soft links.
LN_S="ln -s"
# A BSD-compatible nm program.
NM="/usr/bin/nm -B"
# A symbol stripping program
STRIP=strip
# Used to examine libraries when file_magic_cmd begins "file"
MAGIC_CMD=/usr/bin/file
# Used on cygwin: DLL creation program.
DLLTOOL="dlltool"
# Used on cygwin: object dumper.
OBJDUMP="objdump"
# Used on cygwin: assembler.
AS="as"
# The name of the directory that contains temporary libtool files.
objdir=.libs
# How to create reloadable object files.
reload_flag=" -r"
reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
# How to pass a linker flag through the compiler.
wl="-Wl,"
# Object file suffix (normally "o").
objext="o"
# Old archive suffix (normally "a").
libext="a"
# Shared library suffix (normally ".so").
shrext='.so'
# Executable file suffix (normally "").
exeext=""
# Additional compiler flags for building library objects.
pic_flag=" -fPIC -DPIC"
pic_mode=default
# What is the maximum length of a command?
max_cmd_len=32768
# Does compiler simultaneously support -c and -o options?
compiler_c_o="yes"
# Must we lock files when doing compilation ?
need_locks="no"
# Do we need the lib prefix for modules?
need_lib_prefix=no
# Do we need a version for libraries?
need_version=no
# Whether dlopen is supported.
dlopen_support=unknown
# Whether dlopen of programs is supported.
dlopen_self=unknown
# Whether dlopen of statically linked programs is supported.
dlopen_self_static=unknown
# Compiler flag to prevent dynamic linking.
link_static_flag="-static"
# Compiler flag to turn off builtin functions.
no_builtin_flag=" -fno-builtin"
# 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"
# Compiler flag to generate thread-safe objects.
thread_safe_flag_spec=""
# Library versioning type.
version_type=linux
# 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"
# Commands used to build and install an old-style archive.
RANLIB="ranlib"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB
\$oldlib"
old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
old_postuninstall_cmds=""
# 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 and install a shared archive.
archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname
\$wl\$soname -o \$lib"
archive_expsym_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags
\${wl}-soname \$wl\$soname \${wl}-retain-symbols-file \$wl\$export_symbols -o
\$lib"
postinstall_cmds=""
postuninstall_cmds=""
# Commands used to build a loadable module (assumed same as above if empty)
module_cmds=""
module_expsym_cmds=""
# Commands to strip libraries.
old_striplib="strip --strip-debug"
striplib="strip --strip-unneeded"
# Dependencies to place before the objects being linked to create a
# shared library.
predep_objects=""
# Dependencies to place after the objects being linked to create a
# shared library.
postdep_objects=""
# Dependencies to place before the objects being linked to create a
# shared library.
predeps=""
# Dependencies to place after the objects being linked to create a
# shared library.
postdeps=""
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=""
# Method to check whether dependent libraries are shared objects.
deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB (shared
object|dynamic lib )"
# Command to use when deplibs_check_method == file_magic.
file_magic_cmd="\$MAGIC_CMD"
# Flag that allows shared libraries with undefined symbols to be built.
allow_undefined_flag=""
# Flag that forces no undefined symbols.
no_undefined_flag=""
# Commands used to finish a libtool library installation in a directory.
finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
# Same as above, but a single script fragment to be evaled but not shown.
finish_eval=""
# Take the output of nm and produce a listing of raw symbols and C names.
global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGISTW][ABCDGISTW]*\\)[
][ ]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2\\3 \\3/p'"
# Transform the output of nm in a proper C declaration
global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
# Transform the output of nm in a C name address pair
global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\",
(lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\",
(lt_ptr) \\&\\2},/p'"
# This is the shared library runtime path variable.
runpath_var=LD_RUN_PATH
# This is the shared library path variable.
shlibpath_var=LD_LIBRARY_PATH
# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=no
# How to hardcode a shared library path into an executable.
hardcode_action=immediate
# Whether we should hardcode library paths into libraries.
hardcode_into_libs=yes
# 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 during linking hardcodes DIR into the
# resulting binary.
hardcode_direct=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
# Variables whose values should be saved in libtool wrapper scripts and
# restored at relink time.
variables_saved_for_relink="PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH
LIBRARY_PATH"
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=unknown
# Compile-time system search path for libraries
sys_lib_search_path_spec=" /usr/lib/gcc/x86_64-redhat-linux/4.0.2/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../../x86_64-redhat-linux/lib/x86_64-redhat-linux/4.0.2/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../../x86_64-redhat-linux/lib/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../x86_64-redhat-linux/4.0.2/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../
/lib/x86_64-redhat-linux/4.0.2/ /lib/ /usr/lib/x86_64-redhat-linux/4.0.2/
/usr/lib/"
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec="/lib /usr/lib"
# 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"
# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=""
# Symbols that should not be listed in the preloaded symbols.
exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
# Symbols that must always be exported.
include_expsyms=""
# ### BEGIN LIBTOOL TAG CONFIG: CXX
# Libtool was configured on host shecky.unidata.ucar.edu:
# Shell to use when invoking shell scripts.
SHELL="/bin/sh"
# Whether or not to build shared libraries.
build_libtool_libs=no
# Whether or not to build static libraries.
build_old_libs=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
# Whether or not to optimize for fast installation.
fast_install=needless
# The host system.
host_alias=
host=x86_64-unknown-linux-gnu
# An echo program that does not interpret backslashes.
echo="echo"
# The archiver.
AR="ar"
AR_FLAGS="cru"
# A C compiler.
LTCC="gcc"
# A language-specific compiler.
CC="g++"
# Is the compiler the GNU C compiler?
with_gcc=yes
# An ERE matcher.
EGREP="grep -E"
# The linker used to build libraries.
LD="/usr/bin/ld -m elf_x86_64"
# Whether we need hard or soft links.
LN_S="ln -s"
# A BSD-compatible nm program.
NM="/usr/bin/nm -B"
# A symbol stripping program
STRIP=strip
# Used to examine libraries when file_magic_cmd begins "file"
MAGIC_CMD=/usr/bin/file
# Used on cygwin: DLL creation program.
DLLTOOL="dlltool"
# Used on cygwin: object dumper.
OBJDUMP="objdump"
# Used on cygwin: assembler.
AS="as"
# The name of the directory that contains temporary libtool files.
objdir=.libs
# How to create reloadable object files.
reload_flag=" -r"
reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
# How to pass a linker flag through the compiler.
wl="-Wl,"
# Object file suffix (normally "o").
objext="o"
# Old archive suffix (normally "a").
libext="a"
# Shared library suffix (normally ".so").
shrext='.so'
# Executable file suffix (normally "").
exeext=""
# Additional compiler flags for building library objects.
pic_flag=" -fPIC -DPIC"
pic_mode=default
# What is the maximum length of a command?
max_cmd_len=32768
# Does compiler simultaneously support -c and -o options?
compiler_c_o="yes"
# Must we lock files when doing compilation ?
need_locks="no"
# Do we need the lib prefix for modules?
need_lib_prefix=no
# Do we need a version for libraries?
need_version=no
# Whether dlopen is supported.
dlopen_support=unknown
# Whether dlopen of programs is supported.
dlopen_self=unknown
# Whether dlopen of statically linked programs is supported.
dlopen_self_static=unknown
# Compiler flag to prevent dynamic linking.
link_static_flag="-static"
# Compiler flag to turn off builtin functions.
no_builtin_flag=" -fno-builtin"
# Compiler flag to allow reflexive dlopens.
export_dynamic_flag_spec=""
# Compiler flag to generate shared objects directly from archives.
whole_archive_flag_spec=""
# Compiler flag to generate thread-safe objects.
thread_safe_flag_spec=""
# Library versioning type.
version_type=linux
# 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"
# Commands used to build and install an old-style archive.
RANLIB="ranlib"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB
\$oldlib"
old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
old_postuninstall_cmds=""
# 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 and install a shared archive.
archive_cmds="\$CC -shared \$predep_objects \$libobjs \$deplibs
\$postdep_objects \$compiler_flags -o \$lib"
archive_expsym_cmds=""
postinstall_cmds=""
postuninstall_cmds=""
# Commands used to build a loadable module (assumed same as above if empty)
module_cmds=""
module_expsym_cmds=""
# Commands to strip libraries.
old_striplib="strip --strip-debug"
striplib="strip --strip-unneeded"
# Dependencies to place before the objects being linked to create a
# shared library.
predep_objects="/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../../lib64/crti.o
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/crtbeginS.o"
# Dependencies to place after the objects being linked to create a
# shared library.
postdep_objects="/usr/lib/gcc/x86_64-redhat-linux/4.0.2/crtendS.o
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../../lib64/crtn.o"
# Dependencies to place before the objects being linked to create a
# shared library.
predeps=""
# Dependencies to place after the objects being linked to create a
# shared library.
postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path="-L/usr/lib/gcc/x86_64-redhat-linux/4.0.2
-L/usr/lib/gcc/x86_64-redhat-linux/4.0.2
-L/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../../lib64
-L/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../.. -L/lib/../lib64
-L/usr/lib/../lib64"
# Method to check whether dependent libraries are shared objects.
deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB (shared
object|dynamic lib )"
# Command to use when deplibs_check_method == file_magic.
file_magic_cmd="\$MAGIC_CMD"
# Flag that allows shared libraries with undefined symbols to be built.
allow_undefined_flag=""
# Flag that forces no undefined symbols.
no_undefined_flag=""
# Commands used to finish a libtool library installation in a directory.
finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
# Same as above, but a single script fragment to be evaled but not shown.
finish_eval=""
# Take the output of nm and produce a listing of raw symbols and C names.
global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGISTW][ABCDGISTW]*\\)[
][ ]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2\\3 \\3/p'"
# Transform the output of nm in a proper C declaration
global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
# Transform the output of nm in a C name address pair
global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\",
(lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\",
(lt_ptr) \\&\\2},/p'"
# This is the shared library runtime path variable.
runpath_var=LD_RUN_PATH
# This is the shared library path variable.
shlibpath_var=LD_LIBRARY_PATH
# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=no
# How to hardcode a shared library path into an executable.
hardcode_action=immediate
# Whether we should hardcode library paths into libraries.
hardcode_into_libs=yes
# Flag to hardcode $libdir into a binary during linking.
# This must work even if $libdir does not exist.
hardcode_libdir_flag_spec=""
# 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 during linking hardcodes DIR into the
# resulting binary.
hardcode_direct=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=
# 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
# Variables whose values should be saved in libtool wrapper scripts and
# restored at relink time.
variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX
COMPILER_PATH LIBRARY_PATH"
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=unknown
# Compile-time system search path for libraries
sys_lib_search_path_spec=" /usr/lib/gcc/x86_64-redhat-linux/4.0.2/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../../x86_64-redhat-linux/lib/x86_64-redhat-linux/4.0.2/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../../x86_64-redhat-linux/lib/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../x86_64-redhat-linux/4.0.2/
/usr/lib/gcc/x86_64-redhat-linux/4.0.2/../../../
/lib/x86_64-redhat-linux/4.0.2/ /lib/ /usr/lib/x86_64-redhat-linux/4.0.2/
/usr/lib/"
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec="/lib /usr/lib"
# 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"
# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=""
# Symbols that should not be listed in the preloaded symbols.
exclude_expsyms=""
# Symbols that must always be exported.
include_expsyms=""
# ### END LIBTOOL TAG CONFIG: CXX
bash-3.00$
--
Ed Hartnett -- address@hidden