diff options
| author | Werner Koch <[email protected]> | 2013-04-18 12:40:43 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2013-05-23 18:15:30 +0000 | 
| commit | d739d4d8cf9c873b0f3bb7836aaf3d0ba31a7b7f (patch) | |
| tree | 78f9dbcc116877cb2d3f20e9c170ecf24b24d0c2 | |
| parent | Support --no-encrypt-to also with gpgme_op_encrypt_sign. (diff) | |
| download | gpgme-d739d4d8cf9c873b0f3bb7836aaf3d0ba31a7b7f.tar.gz gpgme-d739d4d8cf9c873b0f3bb7836aaf3d0ba31a7b7f.zip | |
Fix libtool 2.4.2 to correctly detect .def files.
* build-aux/ltmain.sh (sed_uncomment_deffile): New.
(orig_export_symbols): Uncomment def file before testing for EXPORTS.
* m4/libtool.m4: Do the same for the generated code.
--
The old code was not correct in that it only looked at the first line
and puts an EXPORTS keyword in front if missing.  Binutils 2.22
accepted a duplicated EXPORTS keyword but at least 2.23.2 is more
stringent and bails out without this fix.
There is no need to send this upstream.  Upstream's git master has a
lot of changes including a similar fix for this problems.  There are
no signs that a libtool 2.4.3 will be released to fix this problem and
thus we need to stick to our copy of 2.4.2 along with this patch.
Signed-off-by: Werner Koch <[email protected]>
| -rw-r--r-- | build-aux/ltmain.sh | 6 | ||||
| -rw-r--r-- | m4/libtool.m4 | 8 | 
2 files changed, 9 insertions, 5 deletions
| diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh index 905e09a6..859599aa 100644 --- a/build-aux/ltmain.sh +++ b/build-aux/ltmain.sh @@ -411,6 +411,10 @@ sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'  # (escaped) backslashes.  A very naive implementation.  lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' +# Sed substitution to remove simple comments and empty +# lines from a Windows .def file. +sed_uncomment_deffile='/^;/d; /^[ ]*$/d' +  # Re-`\' parameter expansions in output of double_quote_subst that were  # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'  # in input to double_quote_subst, that '$' was protected from expansion. @@ -8143,7 +8147,7 @@ EOF  	cygwin* | mingw* | cegcc*)  	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then  	    # exporting using user supplied symfile -	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then +	    if test "x`$SED "$sed_uncomment_deffile" $export_symbols | $SED 1q`" != xEXPORTS; then  	      # and it's NOT already a .def file. Must figure out  	      # which of the given symbols are data symbols and tag  	      # them as such. So, trigger use of export_symbols_cmds. diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 4bedbd38..ff871a0a 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -4773,7 +4773,7 @@ _LT_EOF          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'  	# If the export-symbols file already is a .def file (1st line  	# is EXPORTS), use it as is; otherwise, prepend... -	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then +	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED \"$sed_uncomment_deffile\" $export_symbols | $SED 1q`" = xEXPORTS; then  	  cp $export_symbols $output_objdir/$soname.def;  	else  	  echo EXPORTS > $output_objdir/$soname.def; @@ -5150,7 +5150,7 @@ _LT_EOF  	shrext_cmds=".dll"  	# FIXME: Setting linknames here is a bad hack.  	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then +	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED \"$sed_uncomment_deffile\" $export_symbols | $SED 1q`" = xEXPORTS; then  	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;  	  else  	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; @@ -6149,7 +6149,7 @@ if test "$_lt_caught_CXX_error" != yes; then  	  shrext_cmds=".dll"  	  # FIXME: Setting linknames here is a bad hack.  	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then +	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED \"$sed_uncomment_deffile\" $export_symbols | $SED 1q`" = xEXPORTS; then  	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;  	    else  	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; @@ -6190,7 +6190,7 @@ if test "$_lt_caught_CXX_error" != yes; then  	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'  	    # If the export-symbols file already is a .def file (1st line  	    # is EXPORTS), use it as is; otherwise, prepend... -	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then +	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED \"$sed_uncomment_deffile\" $export_symbols | $SED 1q`" = xEXPORTS; then  	      cp $export_symbols $output_objdir/$soname.def;  	    else  	      echo EXPORTS > $output_objdir/$soname.def; | 
