]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [dumpbin]:
authorPeter Ekberg <peda@axentia.se>
Thu, 8 Sep 2005 08:25:35 +0000 (08:25 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Thu, 8 Sep 2005 08:25:35 +0000 (08:25 +0000)
Symbols in "pick any" sections are not global. Use
awk, not sed, in the global_symbol_pipe so that keeping
track of sections is easier.
* doc/libtool.texi (libtool script contents): Update to hint
at new findings concerning "pick any" sections.

ChangeLog
doc/libtool.texi
libltdl/m4/libtool.m4

index 5c6524fa6719eb4c99641204035ef405c5612359..473d368783384bc8d15836b05565c65a2c0e00fe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-09-08  Peter Ekberg  <peda@axentia.se>
+
+       * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS) [dumpbin]:
+       Symbols in "pick any" sections are not global. Use
+       awk, not sed, in the global_symbol_pipe so that keeping
+       track of sections is easier.
+       * doc/libtool.texi (libtool script contents): Update to hint
+       at new findings concerning "pick any" sections.
+
 2005-09-08  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
 
        * tests/early-libtool.at (config.status): Use EXEEXT
index 15812ab27634e8544b180a12c55c1087511d858e..7e3935c85b199e5fb34cc7bc4c2e371b538a5b77 100644 (file)
@@ -5017,7 +5017,8 @@ formats:
 @end example
 
 The @var{size} of the global variables are not zero and the @var{section}
-of the global functions are not "UNDEF".
+of the global functions are not "UNDEF". Symbols in "pick any" sections
+("pick any" appears in the section header) are not global either.
 @end defvar
 
 @defvar RANLIB
index f3c80da3acf7987c12833b94158f0fabc1c4b502..082512c68409daef079f5b487062b1cae46b93f9 100644 (file)
@@ -3078,11 +3078,17 @@ for ac_symprfx in "" "_"; do
     # and D for any global variable.
     # Also find C++ and __fastcall symbols from MSVC++,
     # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$SED -n -e ['/ UNDEF [^|]*()/d; / 00* UNDEF /d;
-       s/.*().*External *| *$ac_symprfx$sympat.*/T $ac_symprfx\1 \1/p;
-       s/.*External *| *$ac_symprfx$sympat.*/D $ac_symprfx\1 \1/p;
-       s/.*().*External *| *\([@?][_A-Za-z0-9@?]*\).*/T \1 \1/p;
-       s/.*External *| *\([@?][_A-Za-z0-9@?]*\).*/D \1 \1/p']"
+    lt_cv_sys_global_symbol_pipe="$AWK ['
+      {last_section=section; section=\$ 3}
+      /Section length .*#relocs.*(pick any)/{hide[last_section]=1}
+      \$ 0!~/External *\|/{next}
+      / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next}
+      {if(hide[section]) next}
+      {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"}
+      {split(\$ 0, a, /\||\r/); split(a[2], s)}
+      s[1]~/^[@?]/{print s[1], s[1]; next}
+      s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}
+      ' prfx=^$ac_symprfx]"
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[   ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi