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

perl-5.29.3 breaks "long double" mingw builds on MS Windows

Thread Next
From:
sisyphus
Date:
September 21, 2018 14:27
Subject:
perl-5.29.3 breaks "long double" mingw builds on MS Windows
Message ID:
CADZSBj3L0vnELAcbeRxuO7Gc7nQvgyv0iNy7GAN0R8pOaZwWcg@mail.gmail.com
Hi,

The build fails during the "make" stage thusly:

POSIX.o:POSIX.c:(.text+0x5ee2): undefined reference to `Perl_ldexp'

It's essentially the same failure on both 32-bit and 64-bit builds, but
it's only the "long double" builds that are affected.
There was no such problem with perl-5.29.2.

Looking at the git log, the only reference to "ldexp" that I could find
(for the relevant period) was:

##############

commit e6081c0ea8a779f5fdd429d2dfb48bf094bb92c4

Author: Tony Cook <tony@develop-help.com>

Date: Wed Sep 12 11:09:52 2018 +1000

(perl #133510) use quadmath versions of log10, ldexp and signbit

With -Dquadmath C++ builds, the calls to log10() and ldexp() would

cause ambiguous overloaded function errors, since all of log10(float),

log10(double) and log10(long double) were canidates for a

log10(__float128) call. Similarly for ldexp().

signbit() had a different problem, two of the tests in ext/POSIX/t/math.t

failed with the default signbit() macro, presumably because the

__float128 was being converted to a long double, since the macro in

math.h didn't special case for __float128.
##############

Cheers,
Rob

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