Note: The Questing SRU was built against ceph/19.2.3-0ubuntu1 and should
be released together.

I did the verification for Questing on a s390x porterbox, all looking
good!

First of all, the DEP-8 tests for qemu/s390x from questing-proposed are green 
again (specifically the "test-qemu-user.sh    FAIL stderr: /bin/busybox: 
/lib/ld-linux-riscv64-lp64d.so.1: unsupported version 256 of Verdef record" 
issue):
https://autopkgtest.ubuntu.com/results/autopkgtest-questing/questing/s390x/q/qemu/20251023_032142_0cef0@/log.gz

Also, the minimal reproducer [Test Plan] works as expected:

```
ubuntu@slyon-qq:~$ sudo apt install -t questing-proposed qemu-user
Upgrading:                      
  qemu-user  qemu-user-binfmt

Summary:
  Upgrading: 2, Installing: 0, Removing: 0, Not Upgrading: 15
  Download size: 20.7 MB
  Space needed: 4096 B / 18.5 GB available

Continue? [Y/n] 
Get:1 http://ports.ubuntu.com/ubuntu-ports questing-proposed/universe s390x 
qemu-user s390x 1:10.1.0+ds-5ubuntu2.1 [20.7 MB]
Get:2 http://ports.ubuntu.com/ubuntu-ports questing-proposed/universe s390x 
qemu-user-binfmt s390x 1:10.1.0+ds-5ubuntu2.1 [1676 B]
Fetched 20.7 MB in 0s (53.0 MB/s)          
(Reading database ... 71246 files and directories currently installed.)
Preparing to unpack .../qemu-user_1%3a10.1.0+ds-5ubuntu2.1_s390x.deb ...
Unpacking qemu-user (1:10.1.0+ds-5ubuntu2.1) over (1:10.1.0+ds-5ubuntu2) ...
Preparing to unpack .../qemu-user-binfmt_1%3a10.1.0+ds-5ubuntu2.1_s390x.deb ...
Unpacking qemu-user-binfmt (1:10.1.0+ds-5ubuntu2.1) over (1:10.1.0+ds-5ubuntu2) 
...
Setting up qemu-user (1:10.1.0+ds-5ubuntu2.1) ...
Setting up qemu-user-binfmt (1:10.1.0+ds-5ubuntu2.1) ...
[...]

ubuntu@slyon-qq:~$ dpkg -l | grep libc6
ii  libc6:s390x                       2.42-0ubuntu3                             
 s390x        GNU C Library: Shared libraries
ii  libc6-dev:s390x                   2.42-0ubuntu3                             
 s390x        GNU C Library: Development Libraries and Header Files
ubuntu@slyon-qq:~$ dpkg -l | grep qemu-user
ii  qemu-user                         1:10.1.0+ds-5ubuntu2.1                    
 s390x        QEMU user mode emulation (static binaries)
ii  qemu-user-binfmt                  1:10.1.0+ds-5ubuntu2.1                    
 s390x        QEMU user mode binfmt registration for qemu-user
ubuntu@slyon-qq:~$ dpkg --print-architecture
s390x
ubuntu@slyon-qq:~$ sudo dpkg --add-architecture riscv64
ubuntu@slyon-qq:~$ sudo apt update
[...]

ubuntu@slyon-qq:~$ sudo apt install hello:riscv64
Installing:                     
  hello:riscv64

Installing dependencies:
  gcc-15-base:riscv64  libc6:riscv64  libgcc-s1:riscv64  libidn2-0:riscv64  
libunistring5:riscv64

Suggested packages:
  glibc-doc:riscv64  locales:riscv64  libnss-nis:riscv64  libnss-nisplus:riscv64

Summary:
  Upgrading: 0, Installing: 6, Removing: 0, Not Upgrading: 9
  Download size: 3723 kB
  Space needed: 12.3 MB / 18.3 GB available

Continue? [Y/n] 
[...]

ubuntu@slyon-qq:~$ /usr/bin/qemu-riscv64 /usr/bin/hello
Hello, world!
```


** Tags removed: verification-needed verification-needed-questing
** Tags added: verification-done verification-done-questing

-- 
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


Reply via email to