]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* ltconfig.in (cygwin*, mingw*, export_symbols_cmds): keep any
authorGary V. Vaughan <gary@gnu.org>
Sun, 12 Dec 1999 01:37:07 +0000 (01:37 +0000)
committerGary V. Vaughan <gary@gnu.org>
Sun, 12 Dec 1999 01:37:07 +0000 (01:37 +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 2af4a167735ed443791af1f02b63647ca5296641..86fcd6af464c819fe1c849024135929e41152d9f 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-10  Gary V. Vaughan  <gary@oranda.demon.co.uk>
 
        From Stephan Kulow <coolo@kde.org>
index 8cac6af67c51ff3385951c6f60739e4ef546b334..73b0d206c82cca39f39fa96d836f08e50366cd99 100755 (executable)
@@ -1051,14 +1051,20 @@ 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 be newer dlltools.
     export_symbols_cmds="$ltdll_cmds"'
       $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $objdir/$soname-def '$ltdll_obj'$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;
       cat $export_symbols | while read symbol; do
-       echo "  \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def;
+       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~
       '"$ltdll_cmds"'