summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rosin <peda@lysator.liu.se>2010-07-01 11:36:05 +0200
committerPeter Rosin <peda@lysator.liu.se>2010-07-05 07:09:07 +0200
commit0b56641c0323833e9603deeeb6c778e8c34780ef (patch)
tree355dcdde2b8a5cba8b13d97338a952946e1a7f29
parent1e7ce72416cad66b1f82cd503d37f92ecdbe4b8a (diff)
downloadlibtool-0b56641c0323833e9603deeeb6c778e8c34780ef.tar.gz
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.
-rw-r--r--ChangeLog12
-rw-r--r--doc/libtool.texi4
-rw-r--r--libltdl/config/ltmain.m4sh20
-rw-r--r--libltdl/m4/libtool.m49
4 files changed, 43 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f9bb7dc6..6c5f3ca0 100644
--- 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.
diff --git a/doc/libtool.texi b/doc/libtool.texi
index af6e13d3..914bd1d8 100644
--- a/doc/libtool.texi
+++ b/doc/libtool.texi
@@ -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}.
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index d2676f97..8cb82857 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -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..."
diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index 8475d4bc..bb6957ea 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -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