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
"Perl v1305670057.0.0 required" in quadmath build #14944
Comments
From @dcollinsnGreetings Porters, While attempting to build a quadmath Perl on my shiny new 64-bit Debian VM, using the following command: ./Configure -Dusedevel -Dcc='ccache gcc' -Duselongdouble -Duse64bitall -Dusequadmath -Uman1dir -Uman3dir -des During `make`, I had the following error when make tries to test the built miniperl: ./miniperl -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' `make minitest` has the same errors. A build with the same ./Configure but -Uusequadmath successfully builds and tests with no failures, except for an unrelated failure in Porting/libperl.t. The build log is attached, the only remarkable warning is several instances of: warning: implicit declaration of function ‘quadmath_snprintf’ [-Wimplicit-function-declaration] The decimal number `v1305670057` does not seem to be remarkable, 0x4DD2F1A9. Valgrind reports no errors. |
From @dcollinsndcollins@nightshade64:~/perldebug$ ./Configure -Dusedevel -Dcc='ccache gcc' -Duselongdouble -Duse64bitall -Dusequadmath -Uman1dir -Uman3dir -des You appear to have ELF support. I'll try to use it for dynamic loading. If you compile perl5 on a different machine or from a different object dcollins@nightshade64:~/perldebug$ make |
From @dcollinsnHere is a perl -V from a not-quad-math build: Summary of my perl5 (revision 5 version 23 subversion 4) configuration: Characteristics of this binary (from libperl): dcollins@nightshade64:~/perldebug$ gcc -v |
From @dcollinsnThis is an error related to the interpretation of require statements. A bare scalar version : dcollins@nightshade64:~/perldebug$ ./miniperl -e 'require 5.006' ***With a quadmath debugging miniperl... dcollins@nightshade64:~/perldebug$ ./miniperl -Dx -e 'require 5.006' EXECUTING... Perl v1305670057.0.0 required--this is only v5.23.4, stopped at -e line 1. ***With a notquadmath debugging miniperl... dcollins@nightshade64:~/perldebug$ ./miniperl -Dx -e 'require 5.006' EXECUTING... |
From @bulk88On Sat Sep 26 19:25:52 2015, dcollinsn@gmail.com wrote:
Playing with this calculator, http://babbage.cs.qc.edu/courses/cs341/IEEE-754.html FP 5.006 as float 32 is 0x40A03126, as float 64 is 0x4014062,4DD2F1AA0 (comma inserted by me). Notice your "0x4DD2F1A9" is very close to low 4 bytes of the float 64 which are "0x4DD2F1AA0". I've seen stuff like this before when the %f is used instead of %lf in Perl_my_snprintf, and is it really 8 bytes or 10/12/16 byte floats. -- |
The RT System itself - Status changed from 'new' to 'open' |
From @maukeAm 27.09.2015 um 07:41 schrieb bulk88 via RT:
That surprises me because at least in standard C printf there is no way printf %f takes a double, not float. printf %lf had undefined behavior in C89/C90 but was made equivalent to C99 added long double, with printf format %Lf. ... Now I'm looking at the code in util.c. There's a potential memory leak in Perl_my_snprintf/USE_QUADMATH. This also applies to sv.c. And what's up with this error message? Perl_croak_nocontext("panic: quadmath_snprintf failed, format \"%s|'", |' looks like someone messed up their shift key while typing \". -- |
From @dcollinsnProblem persists under gcc 5.2 and current blead, see attached build log with bonus compiler warnings |
From @dcollinsn |
From @tonycozOn Sat Sep 26 19:25:52 2015, dcollinsn@gmail.com wrote:
Build with -Duselongdouble or -Dusequadmath - not both. Building with both confuses the build, mostly because parts of the process test quadmath first and others test longdouble first. The attached makes Configure abort if both are provided. I considered having one override the other - but which did the user really want? Tony |
From @tonycoz0001-make-Configure-abort-if-both-Duselongdouble-and-Duse.patchFrom 99b748044ec2674a742600a470d753a96d9b55da Mon Sep 17 00:00:00 2001
From: Tony Cook <tony@develop-help.com>
Date: Mon, 11 Apr 2016 13:55:45 +1000
Subject: make Configure abort if both -Duselongdouble and -Dusequadmath are
requested
See [perl #126203]
---
Configure | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/Configure b/Configure
index 2e19e2c..69377ba 100755
--- a/Configure
+++ b/Configure
@@ -5238,6 +5238,20 @@ case "$usequadmath" in
*) usequadmath="$undef" ;;
esac
+: Fail if both uselongdouble and usequadmath are requested
+case "$usequadmath:$uselongdouble" in
+define:define)
+ $cat <<EOM >&4
+
+*** You requested the use of the quadmath library and use
+*** of long doubles.
+***
+*** Please select one or the other.
+EOM
+ exit 1
+ ;;
+esac
+
: Looking for optional libraries
echo " "
echo "Checking for optional libraries..." >&4
--
2.1.4
|
From @dcollinsnI accidentally triggered this again today while debugging something else. On Sun, Apr 10, 2016 at 11:57 PM, Tony Cook via RT <
|
From @tonycozOn Sun, 10 Jul 2016 21:55:57 -0700, tonyc wrote:
Fixed in fb926b4. Tony |
@tonycoz - Status changed from 'open' to 'pending release' |
From @khwilliamsonThank you for filing this report. You have helped make Perl better. With the release today of Perl 5.26.0, this and 210 other issues have been Perl 5.26.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket. |
@khwilliamson - Status changed from 'pending release' to 'resolved' |
Migrated from rt.perl.org#126203 (status was 'resolved')
Searchable as RT126203$
The text was updated successfully, but these errors were encountered: