Bug#1025824: libmojo-ioloop-readwriteprocess-perl: wrong syscall use on armhf
Steve Langasek
steve.langasek at canonical.com
Sat Dec 10 01:43:38 GMT 2022
Package: libmojo-ioloop-readwriteprocess-perl
Version: 0.32-1
Severity: serious
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
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/
slangasek at ubuntu.com vorlon at debian.org
-------------- next part --------------
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 <steve.langasek at ubuntu.com>
+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
More information about the pkg-perl-maintainers
mailing list