On Tue, Aug 29, 2023 at 10:29:25AM +0200, Paolo Bonzini 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.
I presume that's refering to this piece of code if test -z "${CC}${cross_prefix}"; then cc="$host_cc" else cc="${CC-${cross_prefix}gcc}" fi which is using $host_cc *before* --host-cc is processed, thus meaning it is always at its default value of 'cc'. Perhaps the above code snippet should just be changed to if test -z "${CC}${cross_prefix}"; then cc="cc" else cc="${CC-${cross_prefix}gcc}" fi to make it clear that we were not intending to honour the --host-cc value for this code. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > configure | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) None the less, this patch is correct, so with or without that above change: Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> > > 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 > -- > 2.41.0 > > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|