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:26
Subject:
[perl #133510] Build failure in blead: Linux -Dusequadmath-Dcc=g++-8
Message ID:
rt-4.0.24-17146-1536780391-1643.133510-15-0@perl.org
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




-- 
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