Package: libmojo-ioloop-readwriteprocess-perl
Version: 0.32-1
Severity: serious
Tags: patch
User: [email protected]
Usertags: origin-ubuntu lunar ubuntu-patch
Hi Hideki,
The libmojo-ioloop-readwriteprocess-perl package is failing its autopkgtests
on armhf in Ubuntu with a SIGILL, blocking the perl 5.36 transition, because
upstream has added 'armv7l' to the list of uname() values for which it
"knows" the correct syscall to use for prctl.
As a result upstream has regressed prctl support on armhf, because it
hard-codes the OABI syscall number. armhf is EABI.
A kernel for armhf is not guaranteed to provide the OABI syscall entry
points. Since the newer armhf kernels used by Ubuntu for autopkgtests do
not, the autopkgtest fails with SIGILL.
Before upstream made this change, the code would fall back to the value of
&SYS_prctl *which is correct on this platform*.
Upstream should stop trying to "cleverly" override the system definitions of
syscall numbers.
The attached patch is sufficient to fix this module on armhf and make it
pass in Ubuntu. It also makes it correct for Debian, where armhf kernels
are also not guaranteed to expose syscalls for an ABI that we don't use at
all in the distro.
Cheers,
--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer https://www.debian.org/
[email protected] [email protected]
diff -Nru libmojo-ioloop-readwriteprocess-perl-0.32/debian/patches/series
libmojo-ioloop-readwriteprocess-perl-0.32/debian/patches/series
--- libmojo-ioloop-readwriteprocess-perl-0.32/debian/patches/series
2022-02-21 16:53:42.000000000 -0800
+++ libmojo-ioloop-readwriteprocess-perl-0.32/debian/patches/series
2022-12-09 17:35:11.000000000 -0800
@@ -1,2 +1,3 @@
use-bin-true-in-tests
typo-in-manual-page
+wrong-arm-syscall-use.patch
diff -Nru
libmojo-ioloop-readwriteprocess-perl-0.32/debian/patches/wrong-arm-syscall-use.patch
libmojo-ioloop-readwriteprocess-perl-0.32/debian/patches/wrong-arm-syscall-use.patch
---
libmojo-ioloop-readwriteprocess-perl-0.32/debian/patches/wrong-arm-syscall-use.patch
1969-12-31 16:00:00.000000000 -0800
+++
libmojo-ioloop-readwriteprocess-perl-0.32/debian/patches/wrong-arm-syscall-use.patch
2022-12-09 17:37:30.000000000 -0800
@@ -0,0 +1,20 @@
+Description: remove boneheaded hard-coding of OABI syscall entry point
+ Package fails autopkgtests on armhf in Ubuntu because the kernel doesn't
+ expose the OABI syscall personality, and this code pointlessly hardcodes
+ a syscall number for the platform instead of using the system definition.
+Author: Steve Langasek <[email protected]>
+Last-Update: 2022-12-09
+Forwarded: no
+
+Index:
libmojo-ioloop-readwriteprocess-perl-0.32/lib/Mojo/IOLoop/ReadWriteProcess/Session.pm
+===================================================================
+---
libmojo-ioloop-readwriteprocess-perl-0.32.orig/lib/Mojo/IOLoop/ReadWriteProcess/Session.pm
++++
libmojo-ioloop-readwriteprocess-perl-0.32/lib/Mojo/IOLoop/ReadWriteProcess/Session.pm
+@@ -170,7 +170,6 @@
+ : ($machine eq "ppc" || $machine eq "ppc64le") ? 171
+ : $machine eq "ia64" ? 1170
+ : $machine eq "alpha" ? 348
+- : ($machine eq "arm" || $machine eq "armv7l") ? 0x900000 + 172
+ : $machine eq "avr32" ? 148
+ : $machine eq "mips" ? 4000 + 192
+ : $machine eq "mips64" ? 5000 + 153