Bug#1121084: perl built with new IEEE long doubles on ppc64el breaks pdl
Package: perl-base
Version: 5.40.1-7
Severity: serious
User: debian-gcc@lists.debian.org
Usertags: ieee-long-double
X-Debbugs-Cc: debian-powerpc@lists.debian.org, Matthias Klose <doko@debian.org>, pdl@packages.debian.org
As seen at https://ci.debian.net/packages/p/pdl/testing/ppc64el/
perl_5.40.1-7 in unstable breaks the pdl_1:2.100-1 test suite.
70s not ok 540 - right answer from no supplied output ldouble
70s
70s # Failed test 'right answer from no supplied output ldouble'
70s # at t/core.t line 926.
70s # 1/1 values do not match
70s # got: CLDouble D [] (P ) 2.0625
70s # expected: CLDouble D [] (P ) 3+2i
70s # First <=5 values differ at: 0
70s # Those 'got' values: 2.0625
70s # Those 'expected' values: 3+2i
[...]
101s Test Summary Report
101s -------------------
101s t/core.t (Wstat: 1024 (exited 4) Tests: 549 Failed: 4)
101s Failed tests: 540-543
101s Non-zero exit status: 4
101s t/math.t (Wstat: 256 (exited 1) Tests: 74 Failed: 1)
101s Failed test: 2
101s Non-zero exit status: 1
There are no related source code changes. I believe
this is about the long double transition on ppc64el, see
https://wiki.debian.org/ToolChain/IEEELongDouble .
I tested a bit on platti.d.o, and it looks like perl and pdl must be
built with the same kind of long doubles or the tests will fail. So it
would also have happened if pdl had been uploaded first.
This smells like an ABI change in the interface between perl and binary
("XS") modules. I wonder if we can (or should) get away with just
handling pdl, or if we need to bump the Provides: perlapi-5.40.1
and force rebuilds of all binary modules.
If we target just the pdl case, I suppose we could add a Build-Depends:
gcc (>= 15) or somesuch to src:perl and src:pdl, and make perl-base Break
earlier versions of pdl. That should ensure that they get upgraded in
lockstep (I think.) Also, there's a dozen libpdl-*-perl packages in the
archive. Not sure if/how they would be affected.
If we need to rebuild all binary modules to be safe, we could "just"
change Provides: perlapi-5.40.1 to (say) perlapi-5.40.1d on ppc64el, and
schedule binNMUs of all the reverse dependencies. Possibly libperl5.40
should also change its name, not sure about that. We've done this kind
of thing in the past once or twice.
The binary interface change is going to happen soonish anyway for Perl
5.42, but things are not quite ready there (and I sorely lack the spoons
to drive that transition.) So I suppose tying these things together
would not be advisable.
Copying the pdl maintainers, the debian-powerpc list, and Matthias as
the driver of the ppc64el long double transition. Please advise.
--
Niko Tyni ntyni@debian.org
Reply to: