On 03/02/2025 17.43, Richard Henderson wrote:
> On 2/3/25 02:22, Thomas Huth wrote:
>> On 03/02/2025 04.18, Richard Henderson wrote:
>>> Add tcg_allowed, qmp_x_query_jit, qmp_x_query_opcount.
>>> These are referenced when CONFIG_TCG is enabled globally,
>>> but not for a specific target.
>>>
>>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>>> ---
>>> accel/stubs/tcg-stub.c | 24 ++++++++++++++++++++++++
>>> 1 file changed, 24 insertions(+)
>>>
>>> diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
>>> index 7f4208fddf..9c2e2dc6e1 100644
>>> --- a/accel/stubs/tcg-stub.c
>>> +++ b/accel/stubs/tcg-stub.c
>>> @@ -13,6 +13,18 @@
>>> #include "qemu/osdep.h"
>>> #include "exec/tb-flush.h"
>>> #include "exec/exec-all.h"
>>> +#include "qapi/error.h"
>>> +
>>> +/*
>>> + * This file *ought* to be built once and linked only when required.
>>> + * However, it is built per-target, which means qemu/osdep.h has already
>>> + * undef'ed CONFIG_TCG, which hides the auto-generated declaration.
>>
>> So why don't we only build this file once?
>
> I think we'd have to create a static library for it.
> It didn't seem worth the effort at the time.
> I can re-investigate if you like.
I think something like this might work:
diff --git a/accel/stubs/meson.build b/accel/stubs/meson.build
--- a/accel/stubs/meson.build
+++ b/accel/stubs/meson.build
@@ -1,6 +1,9 @@
system_stubs_ss = ss.source_set()
-system_stubs_ss.add(when: 'CONFIG_XEN', if_false: files('xen-stub.c'))
-system_stubs_ss.add(when: 'CONFIG_KVM', if_false: files('kvm-stub.c'))
system_stubs_ss.add(when: 'CONFIG_TCG', if_false: files('tcg-stub.c'))
+system_ss.add_all(when: ['CONFIG_SYSTEM_ONLY'], if_true: system_stubs_ss)
+
+specific_stubs_ss = ss.source_set()
+specific_stubs_ss.add(when: 'CONFIG_XEN', if_false: files('xen-stub.c'))
+specific_stubs_ss.add(when: 'CONFIG_KVM', if_false: files('kvm-stub.c'))
+specific_ss.add_all(when: ['CONFIG_SYSTEM_ONLY'], if_true: specific_stubs_ss)
-specific_ss.add_all(when: ['CONFIG_SYSTEM_ONLY'], if_true: system_stubs_ss)
?
Thomas