[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] hw/intc/riscv_aplic.c fix non-KVM --enable-debug build
From: |
Daniel Henrique Barboza |
Subject: |
Re: [PATCH 1/2] hw/intc/riscv_aplic.c fix non-KVM --enable-debug build |
Date: |
Tue, 29 Aug 2023 19:35:51 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 |
On 8/29/23 11:17, Philippe Mathieu-Daudé wrote:
On 29/8/23 14:21, Daniel Henrique Barboza wrote:
Commit 6df0b37e2ab breaks a --enable-debug build in a non-KVM
environment with the following error:
/usr/bin/ld: libqemu-riscv64-softmmu.fa.p/hw_intc_riscv_aplic.c.o: in function
`riscv_kvm_aplic_request':
./qemu/build/../hw/intc/riscv_aplic.c:486: undefined reference to `kvm_set_irq'
collect2: error: ld returned 1 exit status
This happens because the debug build will poke into the
'if (is_kvm_aia(aplic->msimode))' block and fail to find a reference to
the KVM only function riscv_kvm_aplic_request().
Make riscv_kvm_aplic_request() a no-op if we're not building KVM.
Fixes: 6df0b37e2ab ("target/riscv: update APLIC and IMSIC to support KVM AIA")
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
---
hw/intc/riscv_aplic.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c
index 592c3ce768..b634738bda 100644
--- a/hw/intc/riscv_aplic.c
+++ b/hw/intc/riscv_aplic.c
@@ -483,7 +483,9 @@ static uint32_t riscv_aplic_idc_claimi(RISCVAPLICState
*aplic, uint32_t idc)
static void riscv_kvm_aplic_request(void *opaque, int irq, int level)
{
+#ifdef CONFIG_KVM
kvm_set_irq(kvm_state, irq, !!level);
+#endif
}
Can we use kvm_enabled() to let the compiler elide KVM code
when !CONFIG_KVM?
-- >8 --
diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c
index 592c3ce768..f28d0d3237 100644
@@ -155,7 +155,7 @@
*/
static bool is_kvm_aia(bool msimode)
{
- return kvm_irqchip_in_kernel() && msimode;
+ return kvm_enabled() && kvm_irqchip_in_kernel() && msimode;
Apparently we can't:
$ git diff
diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c
index b634738bda..f28d0d3237 100644
--- a/hw/intc/riscv_aplic.c
+++ b/hw/intc/riscv_aplic.c
@@ -155,7 +155,7 @@
*/
static bool is_kvm_aia(bool msimode)
{
- return kvm_irqchip_in_kernel() && msimode;
+ return kvm_enabled() && kvm_irqchip_in_kernel() && msimode;
}
static uint32_t riscv_aplic_read_input_word(RISCVAPLICState *aplic,
@@ -483,9 +483,7 @@ static uint32_t riscv_aplic_idc_claimi(RISCVAPLICState
*aplic, uint32_t idc)
static void riscv_kvm_aplic_request(void *opaque, int irq, int level)
{
-#ifdef CONFIG_KVM
kvm_set_irq(kvm_state, irq, !!level);
-#endif
}
Same error appears:
/usr/bin/ld: libqemu-riscv64-softmmu.fa.p/hw_intc_riscv_aplic.c.o: in function
`riscv_kvm_aplic_request':
/home/danielhb/work/qemu/build/../hw/intc/riscv_aplic.c:486: undefined
reference to `kvm_set_irq'
collect2: error: ld returned 1 exit status
Thanks,
Daniel
}
---
- [PATCH 0/2] riscv: fix --enable-debug in riscv-to-apply.next, Daniel Henrique Barboza, 2023/08/29
- [PATCH 1/2] hw/intc/riscv_aplic.c fix non-KVM --enable-debug build, Daniel Henrique Barboza, 2023/08/29
- [PATCH 2/2] hw/riscv/virt.c: fix non-KVM --enable-debug build, Daniel Henrique Barboza, 2023/08/29
- Re: [PATCH 2/2] hw/riscv/virt.c: fix non-KVM --enable-debug build, Philippe Mathieu-Daudé, 2023/08/29
- Re: [PATCH 2/2] hw/riscv/virt.c: fix non-KVM --enable-debug build, Daniel Henrique Barboza, 2023/08/29
- Re: [PATCH 2/2] hw/riscv/virt.c: fix non-KVM --enable-debug build, Richard Henderson, 2023/08/29
- Re: [PATCH 2/2] hw/riscv/virt.c: fix non-KVM --enable-debug build, Daniel Henrique Barboza, 2023/08/29
- Re: [PATCH 2/2] hw/riscv/virt.c: fix non-KVM --enable-debug build, Richard Henderson, 2023/08/29
- Re: [PATCH 2/2] hw/riscv/virt.c: fix non-KVM --enable-debug build, Daniel Henrique Barboza, 2023/08/30
- Re: [PATCH 2/2] hw/riscv/virt.c: fix non-KVM --enable-debug build, Richard Henderson, 2023/08/30