Package: perl Version: 5.26.0-8 Severity: normal X-Debbugs-Cc: d...@debian.org, vor...@debian.org, gl...@packages.debian.org
As seen in https://bugs.launchpad.net/ubuntu/+source/libanyevent-perl/+bug/1717367 an upstream change in glibc 2.26, presumably https://patchwork.sourceware.org/patch/20800/ causes perl to change its ABI when rebuilt against the new glibc. I'm copying Steve and Matthias who worked on the issue on the Ubuntu side. While Debian doesn't have glibc 2.26 yet, I'm filing this so we can track the issue and get a fix in before things break. I'm copying the glibc maintainers; is there already an expected time frame for 2.26? The problem is that Perl's global array PL_sig_name[] and the SIG_SIZE constant ($Config{sig_name}, $Config{sig_size} on the perl language side) change due to the removal of the (long?) obsolete SIGUNUSED constant in glibc. The Async::Interrupt (libasync-intterupt-perl) XS module compiles in SIG_SIZE and walks PL_sig_name[] at run time based on that. When the array changes on the Perl side, Async::Interrupt does not know that and accesses it out of bounds. It looks to me like Perl upstream needs to pad PL_sig_name[] on the stable branches (maint-5.*) when SIGUNUSED is missing (indicating glibc >= 2.26) to ensure ABI compatibility. For bleadperl / 5.27, where there are no ABI guarantees, it seems appropriate to filter out SIGUNUSED altogether regardless of the glibc version, given its apparent obsolete status. Looking at codesearch.debian.net, this also concerns (reverse dependencies of) libio-aio-perl, libcoro-perl and libev-perl. I'll forward this upstream next. -- Niko Tyni nt...@debian.org