From 14133d656591052958eaf207692c65bda372265f Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Fri, 11 Jan 2008 19:15:57 +0000 Subject: [PATCH] * libtool.m4 (AC_LIBTOOL_PROG_LD_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. --- ChangeLog | 7 +++++++ libtool.m4 | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index aaaaa8afa..f9be8fea1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-01-11 Ralf Wildenhues + + * libtool.m4 (AC_LIBTOOL_PROG_LD_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-09 Ralf Wildenhues * mdemo/main.c: Include string.h, for strrchr. diff --git a/libtool.m4 b/libtool.m4 index 04d48c2b3..3a51b70f4 100644 --- a/libtool.m4 +++ b/libtool.m4 @@ -5520,6 +5520,7 @@ ifelse([$1],[CXX],[ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac + _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ],[ runpath_var= _LT_AC_TAGVAR(allow_undefined_flag, $1)= @@ -5550,12 +5551,14 @@ ifelse([$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_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + _LT_AC_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= # Just being paranoid about ensuring that cc_basename is set. _LT_CC_BASENAME([$compiler]) -- 2.47.2