New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ext/POSIX/t/math.t fails on FreeBSD 9.1 i386 #15275
Comments
From @tonycozThis looks like more of our friend from #125710: [tony@freebsd32-91 ~/src/perl-5.24.0-RC1/t]$ ./perl harness -v ../ext/POSIX/t/math.t ok 2 - acos(-1) Test Summary Report ../ext/POSIX/t/math.t (Wstat: 256 Tests: 138 Failed: 1) It looks like Configure isn't picking up the type of long double properly, long double does appear to be implemented: [tony@freebsd32-91 ~/play]$ cat ldbl.c int main() { [tony@freebsd32-91 ~/play]$ cc -oldbl ldbl.c Tony |
From mat@cpan.orgLe Mer 13 Avr 2016 22:00:36, tonyc a écrit :
I don't know what policy Perl has regarding OS support, but does this happen on a supported (by FreeBSD) FreeBSD version ? (the supported versions until the end of 2016 are 9.3, 10.1, 10.2 and 10.3) (Because I can't reproduce this on 9.3 or 10.1 myself.) |
From [Unknown Contact. See original ticket]Le Mer 13 Avr 2016 22:00:36, tonyc a écrit :
I don't know what policy Perl has regarding OS support, but does this happen on a supported (by FreeBSD) FreeBSD version ? (the supported versions until the end of 2016 are 9.3, 10.1, 10.2 and 10.3) (Because I can't reproduce this on 9.3 or 10.1 myself.) |
From @tonycozOn Thu Apr 14 01:50:11 2016, mat@cpan.org wrote:
We do support older operating systems. I reproduced your success on 10.3. But it does fail for me on 9.3: $ cd t Test Summary Report ../ext/POSIX/t/math.t (Wstat: 256 Tests: 138 Failed: 1) Note that the issues with the test are i386 specific - if you tested on amd64 you won't see the problem - see https://rt-archive.perl.org/perl5/Ticket/Display.html?id=125710#txn-1359801 for the ugly details. This looks like the compiler is storing long double constants as doubles and then converting them to long double when generating code. With the initialization of: static const long double d = -0.1L; the bytes in d were: 00 d0 cc cc cc cc cc cc fb bf 00 00 The same happened with an initialization of: static const long double d = -1.0L/10.0L; But if I make d non constant and initialize it like: sscanf("-0.1", "%Lf", &d); the bytes in d are: cd cc cc cc cc cc cc cc fb bf 00 00 which matches what I see on my x86_64 box except for the padding. Tony |
@jkeenan - Status changed from 'new' to 'open' |
Migrated from rt.perl.org#127895 (status was 'open')
Searchable as RT127895$
The text was updated successfully, but these errors were encountered: