Hi qemu developers,
I'm working on Yocto project. With recent qemu upgrade from 10.1.3 to
10.2.0, I found that qemu-ppc64le has a serious regression. It cannot
run binaries built out with "-mcpu=power9".
The error message is like below:
"""
../sources/which-2.23/meson.build:6:0: ERROR: Executables created by c
compiler powerpc64le-poky-linux-gcc -mlittle-endian -mhard-float
-maltivec -m64 -mcpu=power9 -fstack-protector-strong -O2
-D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security
--sysroot=xxx
...........
Sanity check:
`/PATH/TO/build/tmp/work/ppc64p9le-poky-linux/which/2.23/meson-qemuwrapper
/PATH/TO/build/tmp/work/ppc64p9le-poky-linux/which/2.23/build/meson-private/sanitycheckc_cross.exe`
-> 127
stderr:
*Fatal glibc error: CPU lacks ISA 3.00 support (POWER9 or later required)*
"""
The meson-qemuwrapper is a wrapper around qemu-ppc64le.
I can confirm that qemu 10.1.3 has no such problem.
I used 'git bisect' to find the first bad commit. It's
fcac98d0ba8b5f4c311c1059d897d74d1276af9d (linux-user: Remove ELF_HWCAP2).
Unfortunately, I found this commit is part of a series of about 100
patches. See commands and outputs below:
"""
$ git log --oneline v10.1.3..v10.2.0 -- linux-user/elfload.c | wc -l
98
$ git log --oneline v10.1.3..v10.2.0 -- linux-user/elfload.c | grep -C
5 HWCAP2
f10c3d9084 linux-user: Remove ELF_PLATFORM
eaf983e04b linux-user/hppa: Create get_elf_platform
084b3247a0 linux-user/loongarch64: Create get_elf_platform
d6b8c5dbd9 linux-user: Move get_elf_platform to arm/elfload.c
3c907dec45 linux-user: Move get_elf_platform to {i386,x86_64}/elfload.c
fcac98d0ba linux-user: Remove ELF_HWCAP2
0dbb0ba870 linux-user: Remove ELF_HWCAP
50e59ad0b7 linux-user: Move get_elf_hwcap to riscv/elfload.c
1d4774b60e linux-user: Move hwcap functions to s390x/elfload.c
92c9983c06 linux-user: Move get_elf_hwcap to sh4/elfload.c
48004ab058 linux-user: Move get_elf_hwcap to mips/elfload.c
"""
So it looks like that the code refactoring for linux-user caused some
regression for ppc64.
Could someone help check it? Or is there some suggestion how to debug
this problem?
P.S.
If qemu-devel is not the correct mailing list for this email. Please let
me know.
Regards,
Qi