Move arm_gicv3_hvf_stub.c, introduced in commit 48396ad6ce9
("hw/intc: arm_gicv3_hvf: save/restore Apple GIC state"), to
the global stub_ss[] source set which holds stub files being
built once for all binaries, instead of one time per system
binary. This prevents symbol clash when trying to build a
single QEMU system binary:
clang: error: linker command failed with exit code 1 (use -v to see invocation)
duplicate symbol '_vmstate_gicv3_hvf' in:
libqemu-aarch64-softmmu.a.p/hw_intc_arm_gicv3_hvf_stub.c.o
libqemu-arm-softmmu.a.p/hw_intc_arm_gicv3_hvf_stub.c.o
ld: 1 duplicate symbols
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/intc/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/intc/meson.build b/hw/intc/meson.build
index c6de2d9d00c..25a4144c83e 100644
--- a/hw/intc/meson.build
+++ b/hw/intc/meson.build
@@ -43,7 +43,7 @@ arm_common_ss.add(when: 'CONFIG_ARM_GICV3', if_true: files('arm_gicv3_cpuif.c'))
specific_ss.add(when: 'CONFIG_ARM_GIC_KVM', if_true: files('arm_gic_kvm.c'))
specific_ss.add(when: ['CONFIG_WHPX', 'TARGET_AARCH64'], if_true: files('arm_gicv3_whpx.c'))
specific_ss.add(when: ['CONFIG_HVF', 'CONFIG_ARM_GICV3'], if_true: files('arm_gicv3_hvf.c'))
-specific_ss.add(when: ['CONFIG_HVF', 'CONFIG_ARM_GICV3'], if_false: files('arm_gicv3_hvf_stub.c'))
+stub_ss.add(files('arm_gicv3_hvf_stub.c'))
specific_ss.add(when: ['CONFIG_ARM_GIC_KVM', 'TARGET_AARCH64'], if_true: files('arm_gicv3_kvm.c', 'arm_gicv3_its_kvm.c'))
arm_common_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('armv7m_nvic.c'))
specific_ss.add(when: 'CONFIG_GRLIB', if_true: files('grlib_irqmp.c'))
--
2.53.0
On Thu, 7 May 2026 at 14:58, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> Move arm_gicv3_hvf_stub.c, introduced in commit 48396ad6ce9
> ("hw/intc: arm_gicv3_hvf: save/restore Apple GIC state"), to
> the global stub_ss[] source set which holds stub files being
> built once for all binaries, instead of one time per system
> binary. This prevents symbol clash when trying to build a
> single QEMU system binary:
>
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> duplicate symbol '_vmstate_gicv3_hvf' in:
> libqemu-aarch64-softmmu.a.p/hw_intc_arm_gicv3_hvf_stub.c.o
> libqemu-arm-softmmu.a.p/hw_intc_arm_gicv3_hvf_stub.c.o
> ld: 1 duplicate symbols
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Applied to target-arm.next, thanks.
-- PMM
> On 7. May 2026, at 15:58, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> Move arm_gicv3_hvf_stub.c, introduced in commit 48396ad6ce9
> ("hw/intc: arm_gicv3_hvf: save/restore Apple GIC state"), to
> the global stub_ss[] source set which holds stub files being
> built once for all binaries, instead of one time per system
> binary. This prevents symbol clash when trying to build a
> single QEMU system binary:
>
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> duplicate symbol '_vmstate_gicv3_hvf' in:
> libqemu-aarch64-softmmu.a.p/hw_intc_arm_gicv3_hvf_stub.c.o
> libqemu-arm-softmmu.a.p/hw_intc_arm_gicv3_hvf_stub.c.o
> ld: 1 duplicate symbols
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> —--
Reviewed-by: Mohamed Mediouni <mohamed@unpredictable.fr>
> hw/intc/meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/intc/meson.build b/hw/intc/meson.build
> index c6de2d9d00c..25a4144c83e 100644
> --- a/hw/intc/meson.build
> +++ b/hw/intc/meson.build
> @@ -43,7 +43,7 @@ arm_common_ss.add(when: 'CONFIG_ARM_GICV3', if_true: files('arm_gicv3_cpuif.c'))
> specific_ss.add(when: 'CONFIG_ARM_GIC_KVM', if_true: files('arm_gic_kvm.c'))
> specific_ss.add(when: ['CONFIG_WHPX', 'TARGET_AARCH64'], if_true: files('arm_gicv3_whpx.c'))
> specific_ss.add(when: ['CONFIG_HVF', 'CONFIG_ARM_GICV3'], if_true: files('arm_gicv3_hvf.c'))
> -specific_ss.add(when: ['CONFIG_HVF', 'CONFIG_ARM_GICV3'], if_false: files('arm_gicv3_hvf_stub.c'))
> +stub_ss.add(files('arm_gicv3_hvf_stub.c'))
> specific_ss.add(when: ['CONFIG_ARM_GIC_KVM', 'TARGET_AARCH64'], if_true: files('arm_gicv3_kvm.c', 'arm_gicv3_its_kvm.c'))
> arm_common_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('armv7m_nvic.c'))
> specific_ss.add(when: 'CONFIG_GRLIB', if_true: files('grlib_irqmp.c'))
> --
> 2.53.0
>
>
On Thu, May 7, 2026 at 4:58 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> Move arm_gicv3_hvf_stub.c, introduced in commit 48396ad6ce9
> ("hw/intc: arm_gicv3_hvf: save/restore Apple GIC state"), to
> the global stub_ss[] source set which holds stub files being
> built once for all binaries, instead of one time per system
> binary. This prevents symbol clash when trying to build a
> single QEMU system binary:
>
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> duplicate symbol '_vmstate_gicv3_hvf' in:
> libqemu-aarch64-softmmu.a.p/hw_intc_arm_gicv3_hvf_stub.c.o
> libqemu-arm-softmmu.a.p/hw_intc_arm_gicv3_hvf_stub.c.o
> ld: 1 duplicate symbols
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> hw/intc/meson.build | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/intc/meson.build b/hw/intc/meson.build
> index c6de2d9d00c..25a4144c83e 100644
> --- a/hw/intc/meson.build
> +++ b/hw/intc/meson.build
> @@ -43,7 +43,7 @@ arm_common_ss.add(when: 'CONFIG_ARM_GICV3', if_true: files('arm_gicv3_cpuif.c'))
> specific_ss.add(when: 'CONFIG_ARM_GIC_KVM', if_true: files('arm_gic_kvm.c'))
> specific_ss.add(when: ['CONFIG_WHPX', 'TARGET_AARCH64'], if_true: files('arm_gicv3_whpx.c'))
> specific_ss.add(when: ['CONFIG_HVF', 'CONFIG_ARM_GICV3'], if_true: files('arm_gicv3_hvf.c'))
> -specific_ss.add(when: ['CONFIG_HVF', 'CONFIG_ARM_GICV3'], if_false: files('arm_gicv3_hvf_stub.c'))
> +stub_ss.add(files('arm_gicv3_hvf_stub.c'))
> specific_ss.add(when: ['CONFIG_ARM_GIC_KVM', 'TARGET_AARCH64'], if_true: files('arm_gicv3_kvm.c', 'arm_gicv3_its_kvm.c'))
> arm_common_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('armv7m_nvic.c'))
> specific_ss.add(when: 'CONFIG_GRLIB', if_true: files('grlib_irqmp.c'))
> --
> 2.53.0
>
© 2016 - 2026 Red Hat, Inc.