Convert file name to toolchain format when invoking $NM.

* libltdl/config/ltmain.m4sh (func_generate_dlsyms)
(func_win32_libid, func_cygming_gnu_implib_p)
(func_cygming_ms_implib_p): When using the name lister to find
symbols in files, convert the file names to a format appropriate
for the tool. Fixes testsuite issues in mdemo-static-make.test
and mdemo-make.test when doing a cross from Cygwin/Wine to MinGW
using MinGW native tools (a.k.a. a "faked" cross).

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
This commit is contained in:
Peter Rosin 2010-09-10 15:04:17 +02:00
parent 18a85621b9
commit 7db93c0218
2 changed files with 26 additions and 8 deletions

View File

@ -1,3 +1,14 @@
2010-09-10 Peter Rosin <peda@lysator.liu.se>
Convert file name to toolchain format when invoking $NM.
* libltdl/config/ltmain.m4sh (func_generate_dlsyms)
(func_win32_libid, func_cygming_gnu_implib_p)
(func_cygming_ms_implib_p): When using the name lister to find
symbols in files, convert the file names to a format appropriate
for the tool. Fixes testsuite issues in mdemo-static-make.test
and mdemo-make.test when doing a cross from Cygwin/Wine to MinGW
using MinGW native tools (a.k.a. a "faked" cross).
2010-09-09 Peter Rosin <peda@lysator.liu.se> 2010-09-09 Peter Rosin <peda@lysator.liu.se>
Fix dependency tracking for MSYS/MinGW. Fix dependency tracking for MSYS/MinGW.

View File

@ -2505,8 +2505,9 @@ extern \"C\" {
# Add our own program objects to the symbol list. # Add our own program objects to the symbol list.
progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
for progfile in $progfiles; do for progfile in $progfiles; do
func_verbose "extracting global C symbols from \`$progfile'" func_to_tool_file "$progfile" func_convert_file_msys_to_w32
$opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
$opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
done done
if test -n "$exclude_expsyms"; then if test -n "$exclude_expsyms"; then
@ -2581,20 +2582,23 @@ extern \"C\" {
func_warning "Could not compute DLL name from $name" func_warning "Could not compute DLL name from $name"
eval '$ECHO ": $name " >> "$nlist"' eval '$ECHO ": $name " >> "$nlist"'
fi fi
eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe | func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
$SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
} }
else # not an import lib else # not an import lib
$opt_dry_run || { $opt_dry_run || {
eval '$ECHO ": $name " >> "$nlist"' eval '$ECHO ": $name " >> "$nlist"'
eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
} }
fi fi
;; ;;
*) *)
$opt_dry_run || { $opt_dry_run || {
eval '$ECHO ": $name " >> "$nlist"' eval '$ECHO ": $name " >> "$nlist"'
eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
} }
;; ;;
esac esac
@ -2756,7 +2760,8 @@ func_win32_libid ()
# Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
$EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
win32_nmres=`eval $NM -f posix -A $1 | func_to_tool_file "$1" func_convert_file_msys_to_w32
win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
$SED -n -e ' $SED -n -e '
1,100{ 1,100{
/ I /{ / I /{
@ -2868,7 +2873,8 @@ func_cygming_dll_for_implib_fallback_core ()
func_cygming_gnu_implib_p () func_cygming_gnu_implib_p ()
{ {
$opt_debug $opt_debug
func_cygming_gnu_implib_tmp=`$NM $1 | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` func_to_tool_file "$1" func_convert_file_msys_to_w32
func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
test -n "$func_cygming_gnu_implib_tmp" test -n "$func_cygming_gnu_implib_tmp"
} }
@ -2879,7 +2885,8 @@ func_cygming_gnu_implib_p ()
func_cygming_ms_implib_p () func_cygming_ms_implib_p ()
{ {
$opt_debug $opt_debug
func_cygming_ms_implib_tmp=`$NM $1 | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` func_to_tool_file "$1" func_convert_file_msys_to_w32
func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
test -n "$func_cygming_ms_implib_tmp" test -n "$func_cygming_ms_implib_tmp"
} }