Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 1 | Upstream-Status: Backport |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 2 | |
| 3 | When building on x32 systems where the default type is 32bit, make sure |
| 4 | we can transparently represent 64bit integers. Otherwise we end up with |
| 5 | build errors like: |
| 6 | /usr/bin/perl asm/ghash-x86_64.pl elf > ghash-x86_64.s |
| 7 | Integer overflow in hexadecimal number at asm/../../perlasm/x86_64-xlate.pl line 201, <> line 890. |
| 8 | ... |
| 9 | ghash-x86_64.s: Assembler messages: |
| 10 | ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression |
| 11 | |
| 12 | We don't enable this globally as there are some cases where we'd get |
| 13 | 32bit values interpreted as unsigned when we need them as signed. |
| 14 | |
| 15 | Reported-by: Bertrand Jacquin <bertrand@jacquin.bzh> |
| 16 | URL: https://bugs.gentoo.org/542618 |
| 17 | |
| 18 | Signed-off-By: Armin Kuster <akuster@mvista.com> |
| 19 | |
| 20 | Index: openssl-1.0.2a/crypto/perlasm/x86_64-xlate.pl |
| 21 | =================================================================== |
| 22 | --- openssl-1.0.2a.orig/crypto/perlasm/x86_64-xlate.pl |
| 23 | +++ openssl-1.0.2a/crypto/perlasm/x86_64-xlate.pl |
| 24 | @@ -194,7 +194,10 @@ my %globals; |
| 25 | } |
| 26 | sub out { |
| 27 | my $self = shift; |
| 28 | - |
| 29 | + # When building on x32 ABIs, the expanded hex value might be too |
| 30 | + # big to fit into 32bits. Enable transparent 64bit support here |
| 31 | + # so we can safely print it out. |
| 32 | + use bigint; |
| 33 | if ($gas) { |
| 34 | # Solaris /usr/ccs/bin/as can't handle multiplications |
| 35 | # in $self->{value} |