]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) <exclude_expsyms>:
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Fri, 11 Jan 2008 19:15:08 +0000 (19:15 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Fri, 11 Jan 2008 19:15:08 +0000 (19:15 +0000)
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
libltdl/m4/libtool.m4

index 18572422c9d929d4c2d180b19bb6dcd5dcdbc876..4f1cdc4deeda9ccb17120b9012622869a02d9af7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-01-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) <exclude_expsyms>:
+       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  <peter@pogma.com>
 
        * libltdl/m4/libtool.m4 [darwin]: Reorganize darwin support, use
index b713d0e457380f1d6bdff94e0e5079916dac347f..9f040e359831da3d5eea7d17f004fab5f2c447fe 100644 (file)
@@ -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