From: Gary V. Vaughan Date: Mon, 13 Dec 1999 11:02:30 +0000 (+0000) Subject: * ltconfig.in (cygwin*, mingw*, export_symbols_cmds): keep any X-Git-Tag: release-1-3-5~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ad9118fd157da484544c369a3d14f545c3ab417e;p=thirdparty%2Flibtool.git * 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 . --- diff --git a/ChangeLog b/ChangeLog index fc8b3520d..caa2ef2b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +1999-12-12 Gary V. Vaughan + + * 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 . + 1999-12-07 Gary V. Vaughan * 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 * ltconfig.in (ac_compile): Use $ac_ext instead of .c. diff --git a/ltconfig.in b/ltconfig.in index 8a0f84485..e33f31ae8 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -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~