mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 03:32:12 +02:00
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:
committed by
Richard Purdie
parent
2c3ae1ed7a
commit
534d2f3a5d
@@ -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}
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user