From: Ralf Wildenhues Date: Fri, 11 Jan 2008 19:15:08 +0000 (+0000) Subject: * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) : X-Git-Tag: release-2-1b~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=68ee62b70e1e3014aead3d720aec11e8bf813a7a;p=thirdparty%2Flibtool.git * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) : Also exclude `_GLOBAL__F[ID]_.*'. Also set for the C++ tag. Fixes esp. demo/helldl build failure with GCC on AIX. Report by Rainer Tammer. --- diff --git a/ChangeLog b/ChangeLog index 18572422c..4f1cdc4de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-01-11 Ralf Wildenhues + + * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) : + Also exclude `_GLOBAL__F[ID]_.*'. Also set for the C++ tag. + Fixes esp. demo/helldl build failure with GCC on AIX. + Report by Rainer Tammer. + 2008-01-11 Peter O'Gorman * libltdl/m4/libtool.m4 [darwin]: Reorganize darwin support, use diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4 index b713d0e45..9f040e359 100644 --- a/libltdl/m4/libtool.m4 +++ b/libltdl/m4/libtool.m4 @@ -4134,6 +4134,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= @@ -4167,12 +4168,14 @@ m4_if([$1], [CXX], [ # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. - _LT_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in