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