blob: 1e5bfa17d679edff32ca3f2095b9fb4bb33a882a [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001https://rt.openssl.org/Ticket/Display.html?id=3759&user=guest&pass=guest
2
3From 6257d59b3a68d2feb9d64317a1c556dc3813ee61 Mon Sep 17 00:00:00 2001
4From: Mike Frysinger <vapier@gentoo.org>
5Date: Sat, 21 Mar 2015 06:01:25 -0400
6Subject: [PATCH] crypto: use bigint in x86-64 perl
7
8Upstream-Status: Pending
9Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
10
11When building on x32 systems where the default type is 32bit, make sure
12we can transparently represent 64bit integers. Otherwise we end up with
13build errors like:
14/usr/bin/perl asm/ghash-x86_64.pl elf > ghash-x86_64.s
15Integer overflow in hexadecimal number at asm/../../perlasm/x86_64-xlate.pl line 201, <> line 890.
16...
17ghash-x86_64.s: Assembler messages:
18ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression
19
20We don't enable this globally as there are some cases where we'd get
2132bit values interpreted as unsigned when we need them as signed.
22
23Reported-by: Bertrand Jacquin <bertrand@jacquin.bzh>
24URL: https://bugs.gentoo.org/542618
25---
26 crypto/perlasm/x86_64-xlate.pl | 4 ++++
27 1 file changed, 4 insertions(+)
28
29diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl
30index aae8288..0bf9774 100755
31--- a/crypto/perlasm/x86_64-xlate.pl
32+++ b/crypto/perlasm/x86_64-xlate.pl
33@@ -195,6 +195,10 @@ my %globals;
34 sub out {
35 my $self = shift;
36
37+ # When building on x32 ABIs, the expanded hex value might be too
38+ # big to fit into 32bits. Enable transparent 64bit support here
39+ # so we can safely print it out.
40+ use bigint;
41 if ($gas) {
42 # Solaris /usr/ccs/bin/as can't handle multiplications
43 # in $self->{value}
44--
452.3.3
46