qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]