** Description changed:

+ [ 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.
- 
- Minimal reproducer:
- ```
- 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
- ```
  
  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:
+ ```
+ 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 sent upstream: 
https://lore.kernel.org/qemu-devel/[email protected]/
+ Patch available on ppa: 
https://launchpad.net/~vhaudiquet/+archive/ubuntu/qemu-fix-lp2123828/+packages

** Changed in: glibc (Ubuntu Plucky)
       Status: New => Invalid

** Changed in: glibc (Ubuntu Noble)
       Status: New => Invalid

** Changed in: gcc-15 (Ubuntu Plucky)
       Status: New => Invalid

** Changed in: gcc-15 (Ubuntu Noble)
       Status: New => Invalid

** Changed in: qemu (Ubuntu Plucky)
     Assignee: (unassigned) => Valentin Haudiquet (vhaudiquet)

** Changed in: qemu (Ubuntu Noble)
     Assignee: (unassigned) => Valentin Haudiquet (vhaudiquet)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2123828

Title:
  RISC-V: incorrect emulation of load and store on big-endian systems

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/2123828/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to