develooper Front page | perl.perl5.porters | Postings from September 2018

[perl #133510] Build failure in blead: Linux -Dusequadmath-Dcc=g++-8

Thread Previous | Thread Next
From:
James E Keenan via RT
Date:
September 12, 2018 19:40
Subject:
[perl #133510] Build failure in blead: Linux -Dusequadmath-Dcc=g++-8
Message ID:
rt-4.0.24-17147-1536781195-1500.133510-15-0@perl.org
On Wed, 12 Sep 2018 19:26:31 GMT, jkeenan wrote:
> On Wed, 12 Sep 2018 02:15:42 GMT, jkeenan wrote:
> > On Wed, 12 Sep 2018 01:36:56 GMT, tonyc wrote:
> > > On Tue, 11 Sep 2018 15:24:21 -0700, jkeenan@pobox.com wrote:
> > > > I first caught a whiff of this build-time failure in this smoke-
> > > > test
> > > > report from Carlos Guevara:
> > > >
> > > > http://perl.develop-help.com/raw/?id=213970
> > > >
> > > > ... whose log file is here:
> > > >
> > > > http://perl5.test-smoke.org/logfile/70257
> > > >
> > > > (Note the 6 "Segmentation fault" messages in that log.)
> > > >
> > > > I installed gcc-8 and g++-8 locally on Ubuntu 18.04 LTS and
> > > > configured thus:
> > > >
> > > > #####
> > > > sh ./Configure -des -Dusedevel -Dcc="g++-8" -Dusequadmath
> > > > #####
> > > >
> > > > (The perl_V.txt attached does not pertain to this build.)
> > > >
> > > > make test_prep failed after miniperl had been built, apparently
> > > > during
> > > > the build of ext/POSIX/.  See attachment for the tail of 'make
> > > > test_prep' output; I can send the full output if needed.
> > > >
> > > > Same configuration only with gcc-8 tests PASS.
> > > >
> > > > Can someone diagnose?
> > >
> > > This wasn't g++ 8 (or 7) specific - I reproduced it with g++ 6 too.
> > >
> > > The problem is the C++ standard provides three versions of log10():
> > >
> > > log10(float)
> > > log10(double)
> > > log10(long double)
> > >
> > > but we're calling it with a different floating point type:
> > >
> > > log10(__float128)
> > >
> > > so the compiler doesn't know which to call.
> > >
> > > As with many other math functions, perl.h defines Perl_log10, which
> > > becomes log10q on quadmath builds, changing POSIX.xs to use
> > > Perl_log10
> > > fixes the problem.
> > >
> > > Similarly for ldexp(), except that using Perl_ldexp() takes a
> > > slightly
> > > larger change.
> > >
> > > With those changes compilation succeeded, but two tests for
> > > signbit()
> > > failed.
> > >
> > > Since quadmath provides signbitq() I changed perl.h to use that for
> > > quadmath builds.
> > >
> > > Tony
> >
> > Tony, thanks for getting right on this.  So far looks good on g++-8.
> > I'm taking this ticket for the purpose of monitoring smoke tests for
> > a
> > few days, after which I'll close the ticket.
> >
> 
> Unfortunately, we're getting some new smoke test failures in one
> particular configuration.
> 
> #####
> [default] -DDEBUGGING -Duseithreads -Dusequadmath
> ../t/run/switchDx.t.........................................FAILED
>     3, 5, 7-8
> #####
> 
> Observed in these smoke test reports:
> 
> 1.
> http://perl.develop-help.com/raw/?id=214129
>     on        linux - 4.15.0-34-generic [Ubuntu 18.04.1 LTS (bionic)]
>     using     g++ version 7.3.0
> 
> 2.
> http://perl.develop-help.com/raw/?id=214131
>     on        linux - 4.17.0-3-amd64 [Debian GNU/Linux buster/sid]
>     using     g++ version 8.2.0
> 
> 3.
> http://perl.develop-help.com/raw/?id=214132
>     on        linux - 4.17.19-100.fc27.x86_64 [Fedora 27 (Server
> Edition)]
>     using     g++ version 7.3.1 20180712 (Red Hat 7.3.1-6)
> 
> Branch in each case was blead or a branch rebased on blead after
> e6081c0ea8a779f5fdd429d2dfb48bf094bb92c4

Here is the failure:

#####
$ cd t;./perl harness -v run/switchDx.t; cd -

ok 1 - No perlio debug file without -Di...
ok 2 - ...no perlio.txt found
not ok 3 - Perlio debug file with both -Di and PERLIO_DEBUG...
ok 4 - ... perlio debugging file found with -Di and PERLIO_DEBUG
# Failed test 3 - Perlio debug file with both -Di and PERLIO_DEBUG... at ./test.pl line 1075
#      got 'Segmentation fault (core dumped)'
# expected /(?^:\nEXECUTING...\n{1,2}hello\n?)/
# PROG: 
# print qq(hello
# )
# STATUS: 35584
not ok 5 - Perlio debug output to stderr with -TDi (with PERLIO_DEBUG)...
ok 6 - ...no perlio debugging file found
# Failed test 5 - Perlio debug output to stderr with -TDi (with PERLIO_DEBUG)... at ./test.pl line 1075
#      got 'Segmentation fault (core dumped)'
# expected /(?^:define raw)/
# PROG: 
# print qq(hello
# )
# STATUS: 35584
not ok 7 - -Di defaults to stderr
# Failed test 7 - -Di defaults to stderr at ./test.pl line 1075
#      got 'Segmentation fault (core dumped)'
# expected /(?^:define raw)/
# PROG: 
# print qq(hello)
# STATUS: 35584
not ok 8 - Perlio debug output to STDERR with -TDi (no PERLIO_DEBUG)
# Failed test 8 - Perlio debug output to STDERR with -TDi (no PERLIO_DEBUG) at ./test.pl line 1075
#      got 'Segmentation fault (core dumped)'
# expected /(?^:define raw)/
# PROG: 
# print qq(hello)
# STATUS: 35584
Failed 4/8 subtests 

Test Summary Report
-------------------
run/switchDx.t (Wstat: 0 Tests: 8 Failed: 4)
  Failed tests:  3, 5, 7-8
Files=1, Tests=8,  1 wallclock secs ( 0.01 usr  0.00 sys +  0.03 cusr  0.03 csys =  0.07 CPU)
Result: FAIL
/home/jkeenan/gitwork/perl
#####

Configuration attached.
-- 
James E Keenan (jkeenan@cpan.org)

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=133510

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About