]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
Support for response files with $NM.
authorPeter Rosin <peda@lysator.liu.se>
Thu, 1 Jul 2010 09:36:05 +0000 (11:36 +0200)
committerPeter Rosin <peda@lysator.liu.se>
Mon, 5 Jul 2010 05:09:07 +0000 (07:09 +0200)
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS)
<nm_file_list_spec>: New tag variable. Set it to '@' if input
files can be passed to $NM in a file named with the '@' option.
* libltdl/config/ltmain.m4sh (func_mode_link): When
nm_file_list_spec is nonempty, use it to avoid skipped_export.
* doc/libtool.texi (libtool script contents): Document
new variable.

ChangeLog
doc/libtool.texi
libltdl/config/ltmain.m4sh
libltdl/m4/libtool.m4

index f9bb7dc641cdd23f632d35eb137f6ff143a5393d..6c5f3ca028c2570a476f48f3b98427b389401dda 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2010-07-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+           Peter Rosin  <peda@lysator.liu.se>
+
+       Support for response files with $NM.
+       * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS)
+       <nm_file_list_spec>: New tag variable. Set it to '@' if input
+       files can be passed to $NM in a file named with the '@' option.
+       * libltdl/config/ltmain.m4sh (func_mode_link): When
+       nm_file_list_spec is nonempty, use it to avoid skipped_export.
+       * doc/libtool.texi (libtool script contents): Document
+       new variable.
+
 2010-07-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        Fix ccache test for MSVC.
index af6e13d38453fb8607e43087d578044d65deca7d..914bd1d8222e51246d267401d3b801af085e6d80 100644 (file)
@@ -6171,6 +6171,10 @@ Whether files must be locked to prevent conflicts when compiling
 simultaneously.  Set to @samp{yes} or @samp{no}.
 @end defvar
 
+@defvar nm_file_list_spec
+Specify filename containing input files for @code{NM}.
+@end defvar
+
 @defvar no_builtin_flag
 Compiler flag to disable builtin functions that conflict with declaring
 external global symbols as @code{char}.
index d2676f97fe0f588007d47db1cfe84cd89a44e214..8cb8285780712b347df385d0eb8acfd34ed1b264 100644 (file)
@@ -6719,14 +6719,30 @@ EOF
            $opt_dry_run || $RM $export_symbols
            cmds=$export_symbols_cmds
            save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
+           for cmd1 in $cmds; do
              IFS="$save_ifs"
-             eval cmd=\"$cmd\"
+             eval cmd=\"$cmd1\"
              func_len " $cmd"
              len=$func_len_result
              if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
                func_show_eval "$cmd" 'exit $?'
                skipped_export=false
+             elif test -n "$nm_file_list_spec"; then
+               output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+               save_libobjs=$libobjs
+               save_output=$output
+               output=${output_objdir}/${output_la}.nm
+               libobjs=$nm_file_list_spec$output
+               func_append delfiles " $output"
+               func_verbose "creating $NM input file list: $output"
+               for obj in $save_libobjs; do
+                 $ECHO "$obj"
+               done > "$output"
+               eval cmd=\"$cmd1\"
+               func_show_eval "$cmd" 'exit $?'
+               output=$save_output
+               libobjs=$save_libobjs
+               skipped_export=false
              else
                # The command line is too long to execute in one step.
                func_verbose "using reloadable object file for export list..."
index 8475d4bcb75159c51fcb2dca3a7f54e67abbc5ac..bb6957eab58b5daa8c3e8cbf1cb93d5f127558fe 100644 (file)
@@ -3615,6 +3615,13 @@ else
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
@@ -3625,6 +3632,8 @@ _LT_DECL([global_symbol_to_c_name_address],
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS