From: Peter Rosin Date: Mon, 13 Sep 2010 07:48:57 +0000 (+0200) Subject: Prefer $NM @file when the toolchain isn't native to $build. X-Git-Tag: v2.4~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72064249b217a22626dd8da8a5a2ce7f12e4404d;p=thirdparty%2Flibtool.git Prefer $NM @file when the toolchain isn't native to $build. * libltdl/config/ltmain.m4sh (func_mode_link): Avoid calculating the command line length and take the @file branch *if* the file names needs to be converted for the toolchain and the @file branch works. Fixes problems in stresstest.at when doing a cross from Cygwin to MinGW using MinGW native tools (a.k.a. a "faked" cross), and for the specific case of MSVC on Cygwin it makes the test pass. Signed-off-by: Peter Rosin --- diff --git a/ChangeLog b/ChangeLog index 543623f50..1697a1b6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-09-13 Peter Rosin + + Prefer $NM @file when the toolchain isn't native to $build. + * libltdl/config/ltmain.m4sh (func_mode_link): Avoid calculating + the command line length and take the @file branch *if* the file + names needs to be converted for the toolchain and the @file + branch works. Fixes problems in stresstest.at when doing a cross + from Cygwin to MinGW using MinGW native tools (a.k.a. a "faked" + cross), and for the specific case of MSVC on Cygwin it makes the + test pass. + 2010-09-14 Eric Blake maint: ship .xz, not .lzma diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh index 6036f4f83..18f0f3993 100644 --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -7349,10 +7349,23 @@ EOF save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" - eval cmd=\"$cmd1\" - func_len " $cmd" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test $try_normal_branch = yes \ + && { 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