Bug#742818: fix test failures when built with GCC 4.9

Niko Tyni ntyni at debian.org
Sun Mar 30 11:21:05 UTC 2014


forwarded 742818 https://rt.perl.org/Ticket/Display.html?id=121505
thanks

On Fri, Mar 28, 2014 at 10:12:43PM +0100, Matthias Klose wrote:
> Am 28.03.2014 21:24, schrieb Niko Tyni:
> >On Fri, Mar 28, 2014 at 01:54:02PM +0100, Matthias Klose wrote:
> >>Am 28.03.2014 13:09, schrieb Niko Tyni:
> >>>tag 742818 confirmed upstream
> >>>thanks
> >>>
> >>>On Thu, Mar 27, 2014 at 08:03:42PM +0100, Matthias Klose wrote:
> >>>>Package: perl
> >>>>Version: 5.18.2-2
> >>>>Severity: important
> >>>>Tags: sid jessie patch
> >>>>
> >>>>   * Fix undefined behaviour in sv.c, resulting in test failures when
> >>>>     built with GCC 4.9. Patch by Marek Polacek.
> >>>>
> >>>>patch at
> >>>>http://launchpadlibrarian.net/170687513/perl_5.18.2-2_5.18.2-2ubuntu1.diff.gz

> >Could you please supply a build log of a successful 5.18.2-2ubuntu1
> >build with gcc-4.9 so I could try to find the difference?
> 
> attached.

Somehow you seem to be building with a different patch than the one in
Launchpad. The Launchpad one really is missing the actual fix for the test
suite failures. Luckily Marek Polacek included it in his upstream ticket.

--- sv.c.bak    2014-03-24 15:11:48.007595042 +0100
+++ sv.c        2014-03-25 11:57:41.154752451 +0100
@@ -2008,7 +2008,7 @@ S_sv_2iuv_common(pTHX_ SV *const sv)
            if (SvNVX(sv) == (NV) SvIVX(sv)
 #ifndef NV_PRESERVES_UV
                && (((UV)1 << NV_PRESERVES_UV_BITS) >
-                   (UV)(SvIVX(sv) > 0 ? SvIVX(sv) : -SvIVX(sv)))
+                   (UV)(SvIVX(sv) > 0 ? SvIVX(sv) : -SvUVX(sv)))
                /* Don't flag it as "accurately an integer" if the number
                   came from a (by definition imprecise) NV operation, and
                   we're outside the range of NV integer precision */

Marek also supplied fixes for other similar cases of undefined behaviour,
and those were present in the 5.18.2-2ubuntu1 patch.

I'll wait a while for upstream to comment, but I expect this will be in
our next upload.
-- 
Niko




More information about the Perl-maintainers mailing list