On Tue, 29 Aug 2023 at 09:31, Paolo Bonzini <
pbonzini@redhat.com> wrote:
>
> The argument of --host-cc is not obeyed when cross compiling. To avoid
> this issue, place it in a configuration file and pass it to meson
> with --native-file.
>
> While at it, clarify that --host-cc is not obeyed anyway when _not_
> cross compiling.
>
> Signed-off-by: Paolo Bonzini <
pbonzini@redhat.com>
> ---
> configure | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/configure b/configure
> index 3423f008d5c..b2bc1ff5f7b 100755
> --- a/configure
> +++ b/configure
> @@ -922,7 +922,7 @@ Advanced options (experts only):
> --cross-prefix=PREFIX use PREFIX for compile tools, PREFIX can be blank [$cross_prefix]
> --cc=CC use C compiler CC [$cc]
> --host-cc=CC use C compiler CC [$host_cc] for code run at
> - build time
> + build time when cross compiling
> --cxx=CXX use C++ compiler CXX [$cxx]
> --objcc=OBJCC use Objective-C compiler OBJCC [$objcc]
> --extra-cflags=CFLAGS append extra C compiler flags CFLAGS
> @@ -1886,7 +1886,6 @@ if test "$skip_meson" = no; then
> echo "windres = [$(meson_quote $windres)]" >> $cross
> echo "windmc = [$(meson_quote $windmc)]" >> $cross
> if test "$cross_compile" = "yes"; then
> - cross_arg="--cross-file config-meson.cross"
> echo "[host_machine]" >> $cross
> echo "system = '$targetos'" >> $cross
> case "$cpu" in
> @@ -1903,6 +1902,14 @@ if test "$skip_meson" = no; then
> else
> echo "endian = 'little'" >> $cross
> fi
> + cross_arg="--cross-file config-meson.cross"
> +
> + native="config-meson.native.new"
> + echo "# Automatically generated by configure - do not modify" > $native
> + echo "[binaries]" >> $native
> + echo "c = [$(meson_quote $host_cc)]" >> $native
> + mv $native config-meson.native
> + cross_arg="$cross_arg --native-file config-meson.native"
> else
> cross_arg="--native-file config-meson.cross"
> fi
> --