vapier      15/03/21 11:02:41

  Added:                openssl-1.0.2a-x32-asm.patch
  Log:
  Fix building on x32 ABIs #542618 by Bertrand Jacquin.
  
  (Portage version: 2.2.18/cvs/Linux x86_64, signed Manifest commit with key 
D2E96200)

Revision  Changes    Path
1.1                  dev-libs/openssl/files/openssl-1.0.2a-x32-asm.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/openssl/files/openssl-1.0.2a-x32-asm.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/openssl/files/openssl-1.0.2a-x32-asm.patch?rev=1.1&content-type=text/plain

Index: openssl-1.0.2a-x32-asm.patch
===================================================================
>From 6257d59b3a68d2feb9d64317a1c556dc3813ee61 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <[email protected]>
Date: Sat, 21 Mar 2015 06:01:25 -0400
Subject: [PATCH] crypto: use bigint in x86-64 perl

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 <[email protected]>
URL: https://bugs.gentoo.org/542618
---
 crypto/perlasm/x86_64-xlate.pl | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl
index aae8288..0bf9774 100755
--- a/crypto/perlasm/x86_64-xlate.pl
+++ b/crypto/perlasm/x86_64-xlate.pl
@@ -195,6 +195,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}
-- 
2.3.3





Reply via email to