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

Thank you very much.
Jim Keenan
-- 
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