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

index aaaaa8afaac23cd6c6649c0d5f098a55e6e29eb9..f9be8fea14c7ddf73c01bb9022dba22b82441394 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-01-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * libtool.m4 (AC_LIBTOOL_PROG_LD_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-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * mdemo/main.c: Include string.h, for strrchr.
index 04d48c2b3d5ca7983e9416d8b5d26ed2f1e4b944..3a51b70f4c911a3ea40aa64524b1230359f9bfe1 100644 (file)
@@ -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])