]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* libltdl/config/ltmain.m4sh (func_mode_link): Also apply the
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Tue, 6 Mar 2007 22:31:09 +0000 (22:31 +0000)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Tue, 6 Mar 2007 22:31:09 +0000 (22:31 +0000)
symbol filtering for w32 and the include_expsyms feature in the
case of exceeded command line length.  Fixes test failure on
MinGW.

ChangeLog
libltdl/config/ltmain.m4sh

index 26db93b6589c7adfc87cf2b735bed03a11edad52..52a1e65455d206346d803afdf7fed03d26169709 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2007-03-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
+       * libltdl/config/ltmain.m4sh (func_mode_link): Also apply the
+       symbol filtering for w32 and the include_expsyms feature in the
+       case of exceeded command line length.  Fixes test failure on
+       MinGW.
+
        * tests/stresstest.at: For const data object imported from
        shared library, define appropriate macros to expand
        __declspec(dllimport) on w32.  Use two different main objects
index 1084942d22fcc8a9abb86a9b4f867f96e9e1116c..06bb27850a52360e6245a4a79ba918e80f8c763c 100644 (file)
@@ -5381,6 +5381,28 @@ EOF
            fi
          fi
 
+          if ${skipped_export-false}; then
+           if test -n "$export_symbols" && test -n "$include_expsyms"; then
+             tmp_export_symbols="$export_symbols"
+             test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+             $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+           fi
+
+           if test -n "$orig_export_symbols"; then
+             # The given exports_symbols file has to be filtered, so filter it.
+             func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
+             # FIXME: $output_objdir/$libname.filter potentially contains lots of
+             # 's' commands which not all seds can handle. GNU sed should be fine
+             # though. Also, the filter scales superlinearly with the number of
+             # global variables. join(1) would be nice here, but unfortunately
+             # isn't a blessed tool.
+             $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+             delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+             export_symbols=$output_objdir/$libname.def
+             $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+           fi
+         fi
+
          libobjs=$output
          # Restore the value of output.
          output=$save_output