+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
@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
# 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