Add support for x32 ABIs.
authorMike Frysinger <vapier@gentoo.org>
Wed, 7 Dec 2011 16:03:05 +0000 (16:03 +0000)
committerMike Frysinger <vapier@gentoo.org>
Wed, 7 Dec 2011 16:03:05 +0000 (16:03 +0000)
Package-Manager: portage-2.2.0_alpha79/cvs/Linux x86_64

dev-libs/openssl/ChangeLog
dev-libs/openssl/Manifest
dev-libs/openssl/files/gentoo.config-1.0.0
dev-libs/openssl/files/openssl-1.0.0e-x32.patch [new file with mode: 0644]
dev-libs/openssl/openssl-1.0.0e-r1.ebuild

index 141f8362377465377acdebf53ed6987de1cb76c1..37d8d99d0447826997f1ceb36600fb53f9eea3a4 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for dev-libs/openssl
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/ChangeLog,v 1.411 2011/12/01 05:35:47 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/ChangeLog,v 1.412 2011/12/07 16:03:05 vapier Exp $
+
+  07 Dec 2011; Mike Frysinger <vapier@gentoo.org> files/gentoo.config-1.0.0,
+  openssl-1.0.0e-r1.ebuild, +files/openssl-1.0.0e-x32.patch:
+  Add support for x32 ABIs.
 
 *openssl-1.0.0e-r1 (01 Dec 2011)
 
index 7c7df1475a4e2b22df6e96018a6f996a3355ebed..ad52598e0137961c0dde25a95711d03cfc9b4355 100644 (file)
@@ -2,7 +2,7 @@
 Hash: SHA256
 
 AUX gentoo.config-0.9.8 4249 RMD160 a63c08a30dd294429c562b8e24bf2b13ba220f63 SHA1 737dbd27e39726c49e44f5e92e46bdf8a8ff9b4d SHA256 c14ff861759f4ebaeb57f37ae7df63af4dea1767eae07ef0eb42abd43cebc4a1
-AUX gentoo.config-1.0.0 4699 RMD160 d0ec1c6aed0f0282d273532de68f53548dd78186 SHA1 faeca9aba6223d4ea71251beb83ba01081fab07a SHA256 7e7251bb0f97a8b28870b5fb28d54af9ee2997639d91cb90810333d4a9668407
+AUX gentoo.config-1.0.0 4750 RMD160 2a6cf1e6be4b118ae27f2e6e24876e00a739c21a SHA1 cc79b4c1bb53d0fe9d30999d4f2c102f9d9b25e8 SHA256 de30cfb4034e4b4f4cdb7ff04ec67e3a604210a9818d2e31a1ce403be90b7b7c
 AUX openssl-0.9.8e-bsd-sparc64.patch 1484 RMD160 dd3d18caccd8167673a438cc83fa44f2e993949b SHA1 d07542663f934d5dc2f8f8b8985bde9b033aafdb SHA256 8a79f022a17a7fadb4eb708538b41a7a034e21ad84162beb1f7fa7cff5eb487e
 AUX openssl-0.9.8h-ldflags.patch 1000 RMD160 1e87b16d841360d790f06d714ea5f0111e83ca97 SHA1 72e7ccca848425d7cfc3f58f4476fb8fda4ec2d1 SHA256 00179ad3dc3fecc9193658202d7bb5c81169bbb2be59e8a90201ed43eacec805
 AUX openssl-0.9.8m-binutils.patch 684 RMD160 78ee10d906423a77aff91aac2166bb5f58c386e6 SHA1 b7514556196a730541b0c99754b4ef79484e27fe SHA256 1e4475f7183ec237d129b686d4ca5265bf7eb34642e7d9e77cbe8ad9a97b4876
@@ -13,20 +13,21 @@ AUX openssl-1.0.0d-fbsd-amd64.patch 417 RMD160 a75ca3b792caa64e32732598f97872153
 AUX openssl-1.0.0d-windres.patch 2890 RMD160 7f417ba76046478d65f350f87244a081cf6b700b SHA1 f00001d9424780454ff16e05906ba4ba622da806 SHA256 27664cfab4852f1a301c4020375eba029c8a1728d58829c831a36d3aa2fbe9f4
 AUX openssl-1.0.0e-parallel-build.patch 9055 RMD160 1e53f831e736e313e82d08d05eff93c9cd9d7093 SHA1 de21c3218662666930388ae1f761e4f3098d39f7 SHA256 dc7b14a29d4efc26bf14c5c37e9c3696448826a639ebf9c8485f9f2ddd7efc9b
 AUX openssl-1.0.0e-pkg-config.patch 1702 RMD160 5c8ba1cbe7b90b1994e45130443932c6f29977e8 SHA1 f8cc517d1c9b38ffae4a1ddc69bb5292f3679fe2 SHA256 f506d94ee240776e3f5d93ecdaa010539aa264ec4553b09fa8093074401fe98b
+AUX openssl-1.0.0e-x32.patch 4113 RMD160 535959621135fb0f9c98295064a2eaf08e31d488 SHA1 f212b1041fa9070bac29313944e153341c53e70e SHA256 e3c5118541d580d3cac2fe9f8af54059f81518b9bec0f07aaa1b77e03b85b1c9
 DIST openssl-0.9.8r.tar.gz 3773698 RMD160 9bc8024bf7af229c5024887d6f6a368cd8b93728 SHA1 a02411e5f4d463cac4a2a4a357a4a0b93bf65e72 SHA256 42b2368f786b05ed3be846838dce126b4e8e3dba8fb2e0ce83102df28c102fad
 DIST openssl-1.0.0d.tar.gz 4025484 RMD160 0c6cdf0659d88bf4dbc6d0394059a47a01fe6846 SHA1 32ca934f380a547061ddab7221b1a34e4e07e8d5 SHA256 92511d1f0caaa298dba250426f8e7d5d00b271847886d1adc62422778d6320db
 DIST openssl-1.0.0e.tar.gz 4040229 RMD160 f7b7c8146592bb0924f145b1e3382b5a1d9283e4 SHA1 235eb68e5a31b0f7a23bc05f52d7a39c596e2e69 SHA256 e361dc2775733fb84de7b5bf7b504778b772869e8f7bfac0b28b935cbf7380f7
 DIST openssl-c_rehash.sh.1.7 4167 RMD160 c87f12c5421593d160f0cc650921c2e3412869ab SHA1 54493c80be245f2da9b7d303e49d613d376d9609 SHA256 4999ee79892f52bd6a4a7baba9fac62262454d573bbffd72685d3aae9e48cee0
 EBUILD openssl-0.9.8r.ebuild 4333 RMD160 d5e1a4a4faedf3e68e20761cb2468ddcf8121f5d SHA1 cc345cc8e8bd9e9ed814d507fe4e28293bf13aa5 SHA256 a0dcfa504c84f50b4f6dfa23516050ff5b6f2d021e1ec1235fb351d7ff8089b0
 EBUILD openssl-1.0.0d.ebuild 6003 RMD160 4cb7181c77cdc21ddbfb3a60d77e68b7d8f8124a SHA1 526d04deaf20e0996b8631ace4d2a31a3d0ada46 SHA256 fbba52f0436c9ec4d30d878a7be80a58e9a52adea2de309632643e38c392c4bc
-EBUILD openssl-1.0.0e-r1.ebuild 6880 RMD160 bd69bd2f8290a6b0f85fa3bb46c387144b9cbf88 SHA1 296ebd6a963c30e7c04dcb45cdefcb2cee1d697f SHA256 98ec7ad58bfd9ab4fcc27a838c412e4255ba4f5a50f42b2d184c4f935a197c2e
+EBUILD openssl-1.0.0e-r1.ebuild 6925 RMD160 5d251388f5983672c41129a2bbe731aa67e91b69 SHA1 0892e7b7339149d6ad71f39b1c1491fca9ad3633 SHA256 cd2abb82067530d26ac77511b9e18fcb0e0e4374e60e5ae56f6e17c176c5e643
 EBUILD openssl-1.0.0e.ebuild 5921 RMD160 f211cdbd3cd7ce275abfe77453c514a968a6cc82 SHA1 e7a8dfb4a6e273eddc492a89017ab0120d34694f SHA256 99cd020f77ab655b566faf79271411aa8400717dca6bdf4fd5bd6e5c3727e642
-MISC ChangeLog 61960 RMD160 7b5b5f145385d0b5bd8d3357d8899aa124b09560 SHA1 d4feee55fdd6d23e9ae9720652676bb91b7e4080 SHA256 f1c42b3baa0cb4babda859a3333641926b0b6c75212ab60af46c1ccf2495de2b
+MISC ChangeLog 62127 RMD160 430d3ddc6445b6d3ca3aa858f6681afc7c7e4ae4 SHA1 1f7c0ec1ce3dc46b4aa6ff5c8d70fcadcc5786bf SHA256 ea9fadd04695a1f159047af94bf4c095a5a56189f5e8d02176c5703713291f0f
 MISC metadata.xml 379 RMD160 97a0177e2e7305dfd73868b18c491fd6b7521715 SHA1 4b2524bfdcccd8edf66d3997c4a630f8f801a00b SHA256 b5da3aee1fe909f620781eed44ce964b2fcb2ec9030d2ad985cdee610c6001b7
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
-iF4EAREIAAYFAk7XEjsACgkQaC/OocHi7Jb/YwD/Q79pqrn2XO1XZuacybQ+ddXp
-dc6H1zhrF8H116FoBqAA/RAMLxIN/5vBVd9eliy00OUWC6XCFRyZLX4K2BeKR4KH
-=AcUE
+iF4EAREIAAYFAk7fjkMACgkQaC/OocHi7JYw/QD/XYCxcyvxqz3QVMLCK8F0QARL
+Pe2HfT60/AjSeO8bxCoA+wdSjY9MRuzCzZPI6rYmVtPpaQ/HGSJ9vad3yBT1GG0B
+=HLtf
 -----END PGP SIGNATURE-----
index 61cf89d84c1a1014a8e7afb72bc2059f2a77550a..73f3a8839e2cdf1dc04c22fc5000b2c10ca087d5 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 # Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/files/gentoo.config-1.0.0,v 1.3 2011/07/12 04:10:48 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/files/gentoo.config-1.0.0,v 1.4 2011/12/07 16:03:05 vapier Exp $
 #
 # Openssl doesn't play along nicely with cross-compiling 
 # like autotools based projects, so let's teach it new tricks.
@@ -79,7 +79,7 @@ machine=""
 chost_machine=${CHOST%%-*}
 case ${system} in
 linux)
-       case ${chost_machine} in
+       case ${chost_machine}:${ABI} in
                alphaev56*)   machine=alpha+bwx-${compiler};;
                alphaev[678]*)machine=alpha+bwx-${compiler};;
                alpha*)       machine=alpha-${compiler};;
@@ -91,7 +91,8 @@ linux)
                bfin*)        machine="generic32 -DL_ENDIAN";;
        #       hppa64*)      machine=parisc64;;
                hppa*)        machine="generic32 -DB_ENDIAN";;
-               i[0-9]86*)    machine=elf;;
+               i[0-9]86*|\
+               x86_64*:x86)  machine=elf;;
                ia64*)        machine=ia64;;
                m68*)         machine="generic32 -DB_ENDIAN";;
                mips*el*)     machine="generic32 -DL_ENDIAN";;
@@ -106,6 +107,7 @@ linux)
                sparc*)       machine=sparcv8;;
                s390x*)       machine=s390x;;
                s390*)        machine="generic32 -DB_ENDIAN";;
+               x86_64*:x32)  machine=x32;;
                x86_64*)      machine=x86_64;;
        esac
        ;;
diff --git a/dev-libs/openssl/files/openssl-1.0.0e-x32.patch b/dev-libs/openssl/files/openssl-1.0.0e-x32.patch
new file mode 100644 (file)
index 0000000..d73a050
--- /dev/null
@@ -0,0 +1,92 @@
+http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=51bfed2e26fc13a66e8b5710aa2ce1d7a04af721
+
+UpstreamStatus: Pending
+
+Received from H J Liu @ Intel
+Make the assembly syntax compatible with x32 gcc. Othewise x32 gcc throws errors.
+Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/07/13
+
+ported the patch to the 1.0.0e version
+Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/01
+Index: openssl-1.0.0e/Configure
+===================================================================
+--- openssl-1.0.0e.orig/Configure
++++ openssl-1.0.0e/Configure
+@@ -393,6 +393,7 @@ my %table=(
+ "linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "linux-x86_64",       "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
++"linux-x32",  "gcc:-DL_ENDIAN         -DTERMIO -O2 -pipe -g -feliminate-unused-debug-types -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "linux-s390x",        "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
+ #### SPARC Linux setups
+ # Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
+Index: openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c
+===================================================================
+--- openssl-1.0.0e.orig/crypto/bn/asm/x86_64-gcc.c
++++ openssl-1.0.0e/crypto/bn/asm/x86_64-gcc.c
+@@ -55,7 +55,7 @@
+  *    machine.
+  */
+ 
+-#ifdef _WIN64
++#if defined _WIN64 || !defined __LP64__
+ #define BN_ULONG unsigned long long
+ #else
+ #define BN_ULONG unsigned long
+@@ -192,9 +192,9 @@ BN_ULONG bn_add_words (BN_ULONG *rp, con
+       asm (
+       "       subq    %2,%2           \n"
+       ".p2align 4                     \n"
+-      "1:     movq    (%4,%2,8),%0    \n"
+-      "       adcq    (%5,%2,8),%0    \n"
+-      "       movq    %0,(%3,%2,8)    \n"
++      "1:     movq    (%q4,%2,8),%0   \n"
++      "       adcq    (%q5,%2,8),%0   \n"
++      "       movq    %0,(%q3,%2,8)   \n"
+       "       leaq    1(%2),%2        \n"
+       "       loop    1b              \n"
+       "       sbbq    %0,%0           \n"
+@@ -215,9 +215,9 @@ BN_ULONG bn_sub_words (BN_ULONG *rp, con
+       asm (
+       "       subq    %2,%2           \n"
+       ".p2align 4                     \n"
+-      "1:     movq    (%4,%2,8),%0    \n"
+-      "       sbbq    (%5,%2,8),%0    \n"
+-      "       movq    %0,(%3,%2,8)    \n"
++      "1:     movq    (%q4,%2,8),%0   \n"
++      "       sbbq    (%q5,%2,8),%0   \n"
++      "       movq    %0,(%q3,%2,8)   \n"
+       "       leaq    1(%2),%2        \n"
+       "       loop    1b              \n"
+       "       sbbq    %0,%0           \n"
+Index: openssl-1.0.0e/crypto/bn/bn.h
+===================================================================
+--- openssl-1.0.0e.orig/crypto/bn/bn.h
++++ openssl-1.0.0e/crypto/bn/bn.h
+@@ -172,6 +172,13 @@ extern "C" {
+ # endif
+ #endif
+ 
++/* Address type.  */
++#ifdef _WIN64
++#define BN_ADDR unsigned long long
++#else
++#define BN_ADDR unsigned long
++#endif
++
+ /* assuming long is 64bit - this is the DEC Alpha
+  * unsigned long long is only 64 bits :-(, don't define
+  * BN_LLONG for the DEC Alpha */
+Index: openssl-1.0.0e/crypto/bn/bn_exp.c
+===================================================================
+--- openssl-1.0.0e.orig/crypto/bn/bn_exp.c
++++ openssl-1.0.0e/crypto/bn/bn_exp.c
+@@ -561,7 +561,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBU
+ 
+ /* Given a pointer value, compute the next address that is a cache line multiple. */
+ #define MOD_EXP_CTIME_ALIGN(x_) \
+-      ((unsigned char*)(x_) + (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - (((BN_ULONG)(x_)) & (MOD_EXP_CTIME_MIN_CACHE_LINE_MASK))))
++      ((unsigned char*)(x_) + (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - (((BN_ADDR)(x_)) & (MOD_EXP_CTIME_MIN_CACHE_LINE_MASK))))
+ 
+ /* This variant of BN_mod_exp_mont() uses fixed windows and the special
+  * precomputation memory layout to limit data-dependency to a minimum
index 3eec44518f1f79bcab917aa229d289d126699faa..823764bbcc6edc370ae8dddff8e7168342d153af 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-1.0.0e-r1.ebuild,v 1.1 2011/12/01 05:35:47 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-1.0.0e-r1.ebuild,v 1.2 2011/12/07 16:03:05 vapier Exp $
 
 EAPI="2"
 
@@ -45,6 +45,7 @@ src_prepare() {
        epatch "${FILESDIR}"/${PN}-1.0.0d-windres.patch #373743
        epatch "${FILESDIR}"/${PN}-1.0.0e-pkg-config.patch
        epatch "${FILESDIR}"/${PN}-1.0.0e-parallel-build.patch
+       epatch "${FILESDIR}"/${PN}-1.0.0e-x32.patch
        epatch_user #332661
 
        # disable fips in the build