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