]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* ltconfig.in (cygwin*, mingw*, export_symbols_cmds): keep any
authorGary V. Vaughan <gary@gnu.org>
Mon, 13 Dec 1999 11:02:30 +0000 (11:02 +0000)
committerGary V. Vaughan <gary@gnu.org>
Mon, 13 Dec 1999 11:02:30 +0000 (11:02 +0000)
DATA tags associated with symbols by recent dlltool.
(cygwin*, mingw*, archive_expsym_cmds): Honor any DATA tags
found in the symbol list.
Reported by Jon Leichter <jon@symas.com>.

ChangeLog
ltconfig.in

index fc8b3520d677341fae6a06800af3a36809396958..caa2ef2b5982ea76f81d4b2fba43fda973309d88 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+1999-12-12  Gary V. Vaughan  <gary@oranda.demon.co.uk>
+
+       * ltconfig.in (cygwin*, mingw*, export_symbols_cmds): keep any
+       DATA tags associated with symbols by recent dlltool.
+       (cygwin*, mingw*, archive_expsym_cmds): Honor any DATA tags
+       found in the symbol list.
+       Reported by Jon Leichter <jon@symas.com>.
+
 1999-12-07  Gary V. Vaughan  <gary@oranda.demon.co.uk>
 
        * configure.in: bumped version to 1.3.4a
@@ -21,6 +29,7 @@
 
        * ltconfig.in (hardcode_into_libs):  Remove the commented out
        hardcode_into_libs reference.  Doh!
+
 1999-12-03  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
 
        * ltconfig.in (ac_compile): Use $ac_ext instead of .c.
index 8a0f844859286920d45fb320054394d82d068645..e33f31ae80f229d89a7e4b09c02e6617d0e512cf 100755 (executable)
@@ -1164,15 +1164,21 @@ EOF
     # Extract the symbol export list from an `--export-all' def file,
     # then regenerate the def file from the symbol export list, so that
     # the compiled dll only exports the symbol export list.
+    # Be careful not to strip the DATA tag left by newer dlltools.
     export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
       test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
       $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def  $objdir/$soname-ltdll.$objext $libobjs $convenience~
-      sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols'
+      sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols'
 
+    # If DATA tags from a recent dlltool are present, honour them!
     archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
       _lt_hint=1;
-      for symbol in `cat $export_symbols`; do
-       echo "  \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def;
+      cat $export_symbols | while read symbol; do
+        set dummy \$symbol;
+        case \$# in
+          2) echo "    \$2 @ \$_lt_hint ; " >> $objdir/$soname-def;;
+          *) echo "     \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;;
+        esac;
        _lt_hint=`expr 1 + \$_lt_hint`;
       done~
       test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~