crypto: use bigint in x86-64 perl

on some hosts openssl fails to build with this error:

ghash-x86_64.s: Assembler messages:
ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression

backported fix from community.

(From OE-Core master rev: 8230f873921d5c16106e3ebf57053a646bc6ad78)

(From OE-Core rev: b981717484c70c6c9bcd6dacb736c2844fa863ed)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Armin Kuster
2015-04-10 10:45:20 -07:00
committed by Richard Purdie
parent 2c3ae1ed7a
commit 534d2f3a5d
2 changed files with 36 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
Upsteram Status: Backport
When building on x32 systems where the default type is 32bit, make sure
we can transparently represent 64bit integers. Otherwise we end up with
build errors like:
/usr/bin/perl asm/ghash-x86_64.pl elf > ghash-x86_64.s
Integer overflow in hexadecimal number at asm/../../perlasm/x86_64-xlate.pl line 201, <> line 890.
...
ghash-x86_64.s: Assembler messages:
ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression
We don't enable this globally as there are some cases where we'd get
32bit values interpreted as unsigned when we need them as signed.
Reported-by: Bertrand Jacquin <bertrand@jacquin.bzh>
URL: https://bugs.gentoo.org/542618
Signed-off-By: Armin Kuster <akuster@mvista.com>
Index: openssl-1.0.2a/crypto/perlasm/x86_64-xlate.pl
===================================================================
--- openssl-1.0.2a.orig/crypto/perlasm/x86_64-xlate.pl
+++ openssl-1.0.2a/crypto/perlasm/x86_64-xlate.pl
@@ -194,7 +194,10 @@ my %globals;
}
sub out {
my $self = shift;
-
+ # When building on x32 ABIs, the expanded hex value might be too
+ # big to fit into 32bits. Enable transparent 64bit support here
+ # so we can safely print it out.
+ use bigint;
if ($gas) {
# Solaris /usr/ccs/bin/as can't handle multiplications
# in $self->{value}

View File

@@ -36,6 +36,7 @@ SRC_URI += "file://configure-targets.patch \
file://Makefiles-ptest.patch \
file://ptest-deps.patch \
file://run-ptest \
file://crypto_use_bigint_in_x86-64_perl.patch \
"
SRC_URI[md5sum] = "a06c547dac9044161a477211049f60ef"