On Mon, 11 Dec 2006 18:36:56 +0100, "Ralf Wildenhues"
<[EMAIL PROTECTED]> said:
> Hello Charles,
>
> Thanks for the bug report.
>
> > [[ bug report and export_filter variable "fix" snipped ]]
>
> The above looks like a cleaner approach to me than the second one you
> offer; but it means we'd need to change the definition of
> export_symbols_cmds for each and every system, not just Cygin/MinGW.
Yes, I figured that. I believe it would also be true for the other
solution, as well. The problem is we need to expand *part* of cmd, but
not *all* of it -- and this is true on every system and every tag,
including the default definition of export_symbols_cmds.
> (There is no need for two sed scripts here, by the way, one would be
> just fine.)
That particular expression is already written as two sed invokations;
merging to one invokation would be fine, but since that's not germane to
the problem here I didn't bother.
> Another thing that worries me is I'm pretty certain the use of
> export_symbols_cmds in the too-many-objects case will cause another,
> differently-looking failure. IOW, tests for both use cases are needed.
You're probably right.
> I can look into this in a couple of days probably.
Cool -- I'd appreciate your efforts [*]. I'm going to go ahead, for
cygwin, and do a quickie release of 'libtool1.5-1.5.23a-2' (still branch
1.5, still 20061014 checkout) but with your --version patch
(http://lists.gnu.org/archive/html/libtool/2006-12/msg00015.html) and
the quick-n-dirty DOTSTAR "fix" for this bug assuming it passes the
testsuite (as well as 1.5.23a-1 did). [Why? Cause it works, and I
personally need a properly symbol-exported pcre Right Now...]
[*] I'm a bit daunted by the prospect of adding a new LT_TAG_VAR
variable -- I'm not sure what all the ramifications are and I'm afraid
I'll miss some fiddly little but critically necessary item to 'make it
all work' -- which is why I'm happy to leave this to an expert. But
I'll be glad to test any patch you generate...
Then I'll update cygwin's official release to a new -D date on branch
1.5 with your changes.
Cruddy DOTSTAR patch attached
--
Chuck
diff -urN origsrc/libtool/libtool.m4 src/libtool/libtool.m4 src/libtool/libtool.m4
--- origsrc/libtool/libtool.m4 2006-08-25 11:04:54.000000000 -0400
+++ src/libtool/libtool.m4 2006-12-11 12:22:29.921833600 -0500
@@ -5440,7 +5440,7 @@
AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
ifelse([$1],[CXX],[
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='DOTSTAR='\''.*'\''~$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/$DOTSTAR //'\'' | sort | uniq > $export_symbols'
case $host_os in
aix4* | aix5*)
# If we're using GNU nm, then we don't want the "-C" option.
@@ -5455,10 +5455,10 @@
_LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
;;
cygwin* | mingw*)
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='DOTSTAR='\''.*'\''~$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/$DOTSTAR \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^$DOTSTAR __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/$DOTSTAR //'\'' | sort | uniq > $export_symbols'
;;
*)
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='DOTSTAR='\''.*'\''~$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/$DOTSTAR //'\'' | sort | uniq > $export_symbols'
;;
esac
],[
@@ -5483,7 +5483,7 @@
_LT_AC_TAGVAR(module_cmds, $1)=
_LT_AC_TAGVAR(module_expsym_cmds, $1)=
_LT_AC_TAGVAR(always_export_symbols, $1)=no
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='DOTSTAR='\''.*'\''~$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/$DOTSTAR //'\'' | sort | uniq > $export_symbols'
# include_expsyms should be a list of space-separated symbols to be *always*
# included in the symbol list
_LT_AC_TAGVAR(include_expsyms, $1)=
@@ -5594,7 +5594,7 @@
_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
_LT_AC_TAGVAR(always_export_symbols, $1)=no
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='DOTSTAR='\''.*'\''~$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/$DOTSTAR \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/$DOTSTAR //'\'' | sort | uniq > $export_symbols'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool