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

Niko Tyni ntyni at debian.org
Fri Mar 28 12:09:13 UTC 2014


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

Thanks. I've confirmed test failures with gcc-4.9 4.9-20140322-1 from
experimental on both i386 and amd64. However, the above patch doesn't
seem to fix them here. Could you verify it really works for you?

FWIW I added -Dcc=gcc-4.9 in debian/config.debian for testing.
Are you replacing /usr/bin/gcc or something like that?

(I've also tested that the bug exists on upstream blead, as of
 v5.19.10-18-g61eca82, so tagging this 'upstream'.)

Test Summary Report
-------------------
op/numconvert.t (Wstat: 0 Tests: 1444 Failed: 12)
  Failed tests:  104, 108, 112, 136, 140, 144, 152, 156
                160, 168, 172, 176
op/range.t     (Wstat: 0 Tests: 141 Failed: 25)
  Failed tests:  84-95, 99-111
Files=2, Tests=1585,  0 wallclock secs ( 0.10 usr  0.00 sys +  0.16 cusr  0.00 csys =  0.26 CPU)
Result: FAIL

$ LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH; cd t; ./perl harness op/numconvert.t  op/range.t
op/numconvert.t .. # '-9223372036854775808' ne '-9.22337203685478e+18', -1.84467440737096e+19   => I - N P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -1.84467440737096e+19   => I - N P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9.22337203685478e+18   => I - N P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => I - N P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    9223372036854775808 => I - N P vs I - P
# Failed test 104 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => N - N P vs N - P
# Failed test 108 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => P - N P vs P - P
# Failed test 112 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -1.84467440737096e+19   => I - u P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -1.84467440737096e+19   => I - u P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9.22337203685478e+18   => I - u P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => I - u P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    9223372036854775808 => I - u P vs I - P
# Failed test 136 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => N - u P vs N - P
# Failed test 140 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => P - u P vs P - P
# Failed test 144 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -1.84467440737096e+19   => I - i P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -1.84467440737096e+19   => I - i P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9.22337203685478e+18   => I - i P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => I - i P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    9223372036854775808 => I - i P vs I - P
# Failed test 152 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => N - i P vs N - P
# Failed test 156 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => P - i P vs P - P
# Failed test 160 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -1.84467440737096e+19   => I - n P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -1.84467440737096e+19   => I - n P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9.22337203685478e+18   => I - n P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => I - n P vs I - P
# '-9223372036854775808' ne '-9.22337203685478e+18',    9223372036854775808 => I - n P vs I - P
# Failed test 168 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => N - n P vs N - P
# Failed test 172 - at op/numconvert.t line 247
# '-9223372036854775808' ne '-9.22337203685478e+18',    -9223372036854775808    => P - n P vs P - P
# Failed test 176 - at op/numconvert.t line 247
op/numconvert.t .. Failed 12/1444 subtests 
op/range.t ....... # Failed test 84 - Lower bound accepted: -9223372036854775807 at op/range.t line 289
# Failed test 85 - Lower bound okay at op/range.t line 290
#      got undef
# expected "-9223372036854775807"
# Failed test 86 - Upper bound okay at op/range.t line 291
#      got undef
# expected "-9223372036854775797"
# Failed test 87 - Lower bound accepted: -9223372036854775806 at op/range.t line 289
# Failed test 88 - Lower bound okay at op/range.t line 290
#      got undef
# expected "-9223372036854775806"
# Failed test 89 - Upper bound okay at op/range.t line 291
#      got undef
# expected "-9223372036854775797"
# Failed test 90 - Lower bound accepted: -9223372036854775805 at op/range.t line 289
# Failed test 91 - Lower bound okay at op/range.t line 290
#      got undef
# expected "-9223372036854775805"
# Failed test 92 - Upper bound okay at op/range.t line 291
#      got undef
# expected "-9223372036854775797"
# Failed test 93 - Lower bound accepted: -9223372036854775804 at op/range.t line 289
# Failed test 94 - Lower bound okay at op/range.t line 290
#      got undef
# expected "-9223372036854775804"
# Failed test 95 - Upper bound okay at op/range.t line 291
#      got undef
# expected "-9223372036854775797"
# Failed test 99 - Upper bound accepted: -9223372036854775807 at op/range.t line 310
# Failed test 100 - Lower bound okay at op/range.t line 311
#      got undef
# expected "-9223372036854775807"
# Failed test 101 - Upper bound okay at op/range.t line 312
#      got undef
# expected "-9223372036854775807"
# Failed test 102 - Upper bound accepted: -9223372036854775806 at op/range.t line 310
# Failed test 103 - Lower bound okay at op/range.t line 311
#      got undef
# expected "-9223372036854775807"
# Failed test 104 - Upper bound okay at op/range.t line 312
#      got undef
# expected "-9223372036854775806"
# Failed test 105 - Upper bound accepted: -9223372036854775805 at op/range.t line 310
# Failed test 106 - Lower bound okay at op/range.t line 311
#      got undef
# expected "-9223372036854775807"
# Failed test 107 - Upper bound okay at op/range.t line 312
#      got undef
# expected "-9223372036854775805"
# Failed test 108 - Upper bound accepted: -9223372036854775804 at op/range.t line 310
# Failed test 109 - Lower bound okay at op/range.t line 311
#      got undef
# expected "-9223372036854775807"
# Failed test 110 - Upper bound okay at op/range.t line 312
#      got undef
# expected "-9223372036854775804"
# Failed test 111 - Range accepted at op/range.t line 330
op/range.t ....... Failed 25/141 subtests 

-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list