* Peter Rosin wrote on Thu, Sep 09, 2010 at 10:59:30AM CEST:
> As discussed in that other thread, namely
> http://lists.gnu.org/archive/html/libtool-patches/2010-09/msg00105.html
> I accidentally broke MSYS/MinGW. Here's an improved version of the patch
> shown in that message to fix the build issue. Sorry again.
>
> Ok to push?
With nit addressed below.
Thanks!
Ralf
> Subject: [PATCH] Fix dependency tracking for MSYS/MinGW.
>
> * libltdl/config/ltmain.m4sh (func_to_tool_file_cmd): Add lazy
> argument which allows the user to specify conversions that are
> not desired.
> (func_mode_compile): Don't convert source files on MSYS, as
> MSYS does it for us. This fixes a regression introduced by
> "Use func_to_tool_file instead of fix_srcfile_path".
> Reported by Charles Wilson.
> --- a/libltdl/config/ltmain.m4sh
> +++ b/libltdl/config/ltmain.m4sh
> @@ -873,14 +873,24 @@ func_to_host_file ()
> # end func_to_host_file
>
>
> -# func_to_tool_file ARG
> +# func_to_tool_file ARG LAZY
> # converts the file name ARG from $build format to toolchain format. Return
> -# result in func_to_tool_file_result.
> +# result in func_to_tool_file_result. If the conversion in use is listed
> +# in (the comma separated) LAZY (with the func_convert_file_ prefix
> +# dropped), no conversion will take place.
> func_to_tool_file ()
> {
> $opt_debug
> - $to_tool_file_cmd "$1"
> - func_to_tool_file_result=$func_to_host_file_result
> + func_stripname 'func_convert_file_' '' "$to_tool_file_cmd"
func_stripname is fast with modern shells, but may fork with others.
Let's not introduce a number of forks here, just because you would like
to match against a shorter string of your own choosing. Either cache
the result of stripping $to_tool_file_cmd (or define it from libtool.m4
already), so this is done once only or just right away match against the
whole function name.
> + case ,$2, in
> + *,"$func_stripname_result",*)
> + func_to_tool_file_result=$1
> + ;;
> + *)
> + $to_tool_file_cmd "$1"
> + func_to_tool_file_result=$func_to_host_file_result
> + ;;
> + esac
> }
> # end func_to_tool_file
>
> @@ -1376,7 +1386,7 @@ compiler."
> func_append removelist " $lockfile"
> trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
>
> - func_to_tool_file "$srcfile"
> + func_to_tool_file "$srcfile" msys_to_w32
> srcfile=$func_to_tool_file_result
> func_quote_for_eval "$srcfile"
> qsrcfile=$func_quote_for_eval_result