|
From: | Paolo Bonzini |
Subject: | Re: [PATCH] meson: fix botched compile check conversions |
Date: | Tue, 16 Nov 2021 15:31:34 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 |
On 11/16/21 13:00, Daniel P. Berrangé wrote:
I wonder if the problem is more fundamental than that. Passing stuff in --extra-cflags is done to influence the flags used to compile the QEMU end user binaries. Unfortunately --extra-cflags is also getting applied to all the meson.build feature checks. IMHO we would get a more reliable result if the meson.build checks were fully isolated from the cflags we used for building everything else, so the checks get a well understood, predictable environment. IIUC, this current behaviour is a result of us adding cflags using add_global_arguments / add_project_arguments.
No, it's not using add_global_arguments/add_project_arguments for --extra-cflags.
The --extra-cflags (aka the CFLAGS envvar, or "meson setup -Dc_args") is messy: on one hand it's kinda legacy (we have configure flags to set -O2, -g, -Werror, etc.), on the other hand not really possible to kill it because it's how distros expect to set flags such as -O2.
But it's full of pitfalls, and the only good use of it seems to be for -I and -L flags. We already saw issues with it last week with distros adding "-Wall" to CFLAGS or --extra-cflags and that gives you bogus warnings. Unfortunately you certainly want flags such as -g to override earlier flags, and you might even want -Wall to override earlier -Wno-* flags *unless -Werror is in use*.
Apart from this, the sizeof() issue (which by the way I didn't see with GCC) has to be fixed in Meson and is probably visible also in e.g. has_members.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |