I have create LP 2131236 to handle the VDSO related build error on amd64v3.
This needs to be resolved first before going forward with the SRU. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/2123828 Title: [SRU] RISC-V: incorrect emulation of load and store on big-endian systems Status in QEMU: Fix Released Status in glibc package in Ubuntu: Invalid Status in qemu package in Ubuntu: Fix Released Status in gcc-15 source package in Noble: Invalid Status in glibc source package in Noble: Invalid Status in qemu source package in Noble: Won't Fix Status in gcc-15 source package in Plucky: Invalid Status in glibc source package in Plucky: Invalid Status in qemu source package in Plucky: Won't Fix Status in gcc-15 source package in Questing: Invalid Status in glibc source package in Questing: Invalid Status in qemu source package in Questing: Fix Committed Status in glibc source package in Resolute: Invalid Status in qemu source package in Resolute: Fix Released Bug description: [ Impact ] On s390x architecture, qemu cannot emulate riscv64 well because of an endianess error. Original bug report : QEMU's DEP-8 test fails on s390x, due to warning output on stderr about "unsupported version 256 of Verdef record", which is blocking migration of glibc 2.42-0ubuntu3. DEP-8 logs: """ 323s === Checking if /usr/bin/qemu-riscv64 can run executables: 323s glob with sh: /usr/bin/qemu-riscv64 /bin/busybox ash -c "/usr/bin/qemu-riscv64 /bin/busybox ls -dCFl debian/*[t]*": 323s /bin/busybox: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/riscv64-linux-gnu/libresolv.so.2: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record 323s 323s Reading package lists.../bin/busybox: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record 323s /bin/busybox: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record 323s Expected output not found [...] 328s autopkgtest [22:14:52]: @@@@@@@@@@@@@@@@@@@@ summary 328s test-qemu-img.sh PASS (superficial) 328s test-qemu-system.sh PASS (superficial) 328s test-qemu-user.sh FAIL stderr: /bin/busybox: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record """ Patched by flagging the faulty instructions with the endianness swap marker. [ Test Plan ] Minimal reproducer: (after booting up an s390x vm) ``` ubuntu@slyon-lp-2123828-slyon-glibc-qemu-riscv64:~$ sudo apt update && sudo apt install qemu-user ubuntu@slyon-lp-2123828-slyon-glibc-qemu-riscv64:~$ dpkg -l | grep libc6 ii libc6:s390x 2.42-0ubuntu3 ubuntu@slyon-lp-2123828-slyon-glibc-qemu-riscv64:~$ dpkg -l | grep qemu-user ii qemu-user 1:10.1.0+ds-5ubuntu1 ubuntu@slyon-lp-2123828-slyon-glibc-qemu-riscv64:~$ dpkg --print-architecture s390x ubuntu@slyon-lp-2123828-slyon-glibc-qemu-riscv64:~$ sudo dpkg --add-architecture riscv64 ubuntu@slyon-lp-2123828-slyon-glibc-qemu-riscv64:~$ sudo apt update ubuntu@slyon-lp-2123828-slyon-glibc-qemu-riscv64:~$ sudo apt install hello:riscv64 ubuntu@slyon-lp-2123828-slyon-glibc-qemu-riscv64:~$ /usr/bin/qemu-riscv64 /usr/bin/hello /usr/bin/hello: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record /usr/bin/hello: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record /usr/bin/hello: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record /usr/bin/hello: /lib/riscv64-linux-gnu/libc.so.6: unsupported version 256 of Verdef record /usr/bin/hello: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record /usr/bin/hello: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record /usr/bin/hello: /lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record ``` The same thing with the patch shows "Hello, world !". [ Where problems could occur ] This change is really small (3 lines), and only affects riscv64 emulation from QEMU. If the fix was entirely wrong, riscv64 emulation of compressed instruction could be affected. It can be easily tested. The patch was accepted upstream, so such tests are conducted upstream as well, which reduces the amount of possible problems and work to do to fix those. [ Other Info ] Patch applied upstream: https://gitlab.com/qemu-project/qemu/-/commit/b25133d38fe693589cf695b85968caa0724bfafd Patch available on ppa: https://launchpad.net/~vhaudiquet/+archive/ubuntu/qemu-fix-lp2123828/+packages To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/2123828/+subscriptions
