[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-arm] [NOTFORMERGE PATCH v2 23/23] Missing symbols
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [Qemu-arm] [NOTFORMERGE PATCH v2 23/23] Missing symbols when building with --disable-tcg |
Date: |
Mon, 17 Jun 2019 15:04:45 +0100 |
User-agent: |
mu4e 1.3.2; emacs 26.1 |
Philippe Mathieu-Daudé <address@hidden> writes:
> While it might be normal to disable PSCI on KVM, I doubt the
> VFP helpers are correct ;)
>
> Anyway this allow to link the binary and run a KVM guest.
But also:
/home/alex/lsrc/qemu.git/target/arm/helper.c: In function ‘S1_ptw_translate’:
/home/alex/lsrc/qemu.git/target/arm/helper.c:8794:15: note: parameter passing
for argument of type ‘MemTxAttrs’ {aka ‘struct MemTxAttrs’} changed in GCC 9.1
8794 | static hwaddr S1_ptw_translate(CPUARMState *env, ARMMMUIdx mmu_idx,
| ^~~~~~~~~~~~~~~~
LINK x86_64-linux-user/qemu-x86_64
LINK xtensa-linux-user/qemu-xtensa
/home/alex/lsrc/qemu.git/target/arm/helper.c: In function ‘S1_ptw_translate’:
/home/alex/lsrc/qemu.git/target/arm/helper.c:8794:15: note: parameter passing
for argument of type ‘MemTxAttrs’ {aka ‘struct MemTxAttrs’} changed in GCC 9.1
8794 | static hwaddr S1_ptw_translate(CPUARMState *env, ARMMMUIdx mmu_idx,
| ^~~~~~~~~~~~~~~~
LINK xtensaeb-linux-user/qemu-xtensaeb
LINK arm-linux-user/qemu-arm
LINK aarch64-linux-user/qemu-aarch64
LINK armeb-linux-user/qemu-armeb
LINK aarch64_be-linux-user/qemu-aarch64_be
LINK arm-softmmu/qemu-system-arm
LINK aarch64-softmmu/qemu-system-aarch64
/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/../../../../aarch64-unknown-linux-gnu/bin/ld:
target/arm/kvm-missing.o: in function `arm_is_psci_call':
/home/alex/lsrc/qemu.git/target/arm/kvm-missing.c:17: multiple definition of
`arm_is_psci_call';
target/arm/psci.o:/home/alex/lsrc/qemu.git/target/arm/psci.c:36: first defined
here
/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/../../../../aarch64-unknown-linux-gnu/bin/ld:
target/arm/kvm-missing.o: in function `arm_handle_psci_call':
/home/alex/lsrc/qemu.git/target/arm/kvm-missing.c:20: multiple definition of
`arm_handle_psci_call';
target/arm/psci.o:/home/alex/lsrc/qemu.git/target/arm/psci.c:77: first defined
here
/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/../../../../aarch64-unknown-linux-gnu/bin/ld:
target/arm/vfp_helper.o: in function `vfp_get_fpscr':
/home/alex/lsrc/qemu.git/target/arm/vfp_helper.c:75: multiple definition of
`vfp_get_fpscr';
target/arm/kvm-missing.o:/home/alex/lsrc/qemu.git/target/arm/kvm-missing.c:8:
first defined here
/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/../../../../aarch64-unknown-linux-gnu/bin/ld:
target/arm/vfp_helper.o: in function `vfp_set_fpscr':
/home/alex/lsrc/qemu.git/target/arm/vfp_helper.c:185: multiple definition of
`vfp_set_fpscr';
target/arm/kvm-missing.o:/home/alex/lsrc/qemu.git/target/arm/kvm-missing.c:12:
first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:204: qemu-system-aarch64] Error 1
make: *** [Makefile:472: subdir-aarch64-softmmu] Error 2
On AArch64 host with TCG enabled....
>
> Tested using:
>
> $ make pc-bios/edk2-aarch64-code.fd
> $ dd if=/dev/zero of=flash1.img bs=1M count=64
> $ aarch64-softmmu/qemu-system-aarch64 \
> -nographic \
> -enable-kvm \
> -M virt,gic-version=3 \
> -cpu host \
> \
> -pflash pc-bios/edk2-aarch64-code.fd \
> -pflash flash1.img \
> -drive if=none,file=bionic-server-cloudimg-arm64.img,id=hd0 \
> -device virtio-blk-device,drive=hd0 \
> \
> -netdev type=user,id=net0 \
> -device virtio-net-device,netdev=net0
>
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> target/arm/Makefile.objs | 1 +
> target/arm/kvm-missing.c | 22 ++++++++++++++++++++++
> 2 files changed, 23 insertions(+)
> create mode 100644 target/arm/kvm-missing.c
>
> diff --git a/target/arm/Makefile.objs b/target/arm/Makefile.objs
> index b8aa9c032a..bf1cad2909 100644
> --- a/target/arm/Makefile.objs
> +++ b/target/arm/Makefile.objs
> @@ -6,6 +6,7 @@ obj-$(CONFIG_SOFTMMU) += machine.o arch_dump.o monitor.o
> arm-powerctl.o
> obj-$(call land,$(CONFIG_TCG),$(CONFIG_SOFTMMU)) += psci.o
>
> obj-$(CONFIG_KVM) += kvm.o
> +obj-$(CONFIG_KVM) += kvm-missing.o
> obj-$(call land,$(CONFIG_KVM),$(call lnot,$(TARGET_AARCH64))) += kvm32.o
> obj-$(call land,$(CONFIG_KVM),$(TARGET_AARCH64)) += kvm64.o
> obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o
> diff --git a/target/arm/kvm-missing.c b/target/arm/kvm-missing.c
> new file mode 100644
> index 0000000000..0b32cd4e9c
> --- /dev/null
> +++ b/target/arm/kvm-missing.c
> @@ -0,0 +1,22 @@
> +#include "qemu/osdep.h"
> +#include "cpu.h"
> +#include "internals.h"
> +
> +uint32_t vfp_get_fpscr(CPUARMState *env)
> +{
> + return 0;
> +}
> +
> +void vfp_set_fpscr(CPUARMState *env, uint32_t val)
> +{
> +}
> +
> +bool arm_is_psci_call(ARMCPU *cpu, int excp_type)
> +{
> + return false;
> +}
> +
> +void arm_handle_psci_call(ARMCPU *cpu)
> +{
> + abort();
> +}
--
Alex Bennée
- Re: [Qemu-devel] [Qemu-arm] [PATCH v2 18/23] target/arm: Move CPU state dumping routines to helper.c, (continued)
- [Qemu-devel] [PATCH v2 21/23] target/arm: Do not build TCG objects when TCG is off, Philippe Mathieu-Daudé, 2019/06/15
- [Qemu-devel] [PATCH v2 19/23] target/arm: Move watchpoints APIs to helper.c, Philippe Mathieu-Daudé, 2019/06/15
- [Qemu-devel] [RFC PATCH v2 22/23] target/arm: Restrict semi-hosting to TCG, Philippe Mathieu-Daudé, 2019/06/15
- [Qemu-devel] [NOTFORMERGE PATCH v2 23/23] Missing symbols when building with --disable-tcg, Philippe Mathieu-Daudé, 2019/06/15
- Re: [Qemu-devel] [Qemu-arm] [NOTFORMERGE PATCH v2 23/23] Missing symbols when building with --disable-tcg,
Alex Bennée <=
- [Qemu-devel] [PATCH v2 12/23] target/arm: Move v7m exception handling routines to v7m_helper, Philippe Mathieu-Daudé, 2019/06/15