From 4df13ba77fc9093a67f57ca2df2c3632d6351cf6 Mon Sep 17 00:00:00 2001 From: Kyle McMartin Date: Mon, 19 May 2014 16:57:04 -0400 Subject: [PATCH] disable rijndael, cast5, camellia ARM assembly as it's non-PIC as presently written, which results in .text relocations in the shared library. Resolves: rhbz#1069792 --- libgcrypt-1.6.1-disable-non-PIC-arm.patch | 98 +++++++++++++++++++++++ libgcrypt.spec | 9 ++- 2 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 libgcrypt-1.6.1-disable-non-PIC-arm.patch diff --git a/libgcrypt-1.6.1-disable-non-PIC-arm.patch b/libgcrypt-1.6.1-disable-non-PIC-arm.patch new file mode 100644 index 0000000..fa96ff5 --- /dev/null +++ b/libgcrypt-1.6.1-disable-non-PIC-arm.patch @@ -0,0 +1,98 @@ +diff --git a/cipher/camellia-arm.S b/cipher/camellia-arm.S +index 255a246..214198b 100644 +--- a/cipher/camellia-arm.S ++++ b/cipher/camellia-arm.S +@@ -22,6 +22,7 @@ + + #if defined(__ARMEL__) + #ifdef HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS ++#ifndef __PIC__ + + .text + +@@ -609,5 +610,6 @@ _gcry_camellia_arm_decrypt_block: + .long 0x80808000, 0x00010101, 0x40004040, 0xc7c700c7 + .long 0x9e9e9e00, 0x003d3d3d, 0x4f004f4f, 0x9e9e009e + +-#endif /*HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS*/ ++#endif /*__PIC__*/ ++#endif /*HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS*/ + #endif /*__ARM_ARCH >= 6*/ +diff --git a/cipher/camellia.h b/cipher/camellia.h +index d0e3c18..c8f9556 100644 +--- a/cipher/camellia.h ++++ b/cipher/camellia.h +@@ -32,7 +32,7 @@ + #include + /* USE_ARM_ASM indicates whether to use ARM assembly code. */ + # undef USE_ARM_ASM +-# if defined(__ARMEL__) ++# if defined(__ARMEL__) && !defined(__PIC__) + # ifdef HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS + # define USE_ARM_ASM 1 + # endif +diff --git a/cipher/cast5-arm.S b/cipher/cast5-arm.S +index 57c89b7..23c1c12 100644 +--- a/cipher/cast5-arm.S ++++ b/cipher/cast5-arm.S +@@ -22,6 +22,7 @@ + + #if defined(__ARMEL__) + #ifdef HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS ++#ifndef __PIC__ + + .text + +@@ -711,5 +712,6 @@ _gcry_cast5_arm_cbc_dec: + .ltorg + .size _gcry_cast5_arm_cbc_dec,.-_gcry_cast5_arm_cbc_dec; + ++#endif /*__PIC__*/ + #endif /*HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS*/ + #endif /*__ARM_ARCH >= 6*/ +diff --git a/cipher/cast5.c b/cipher/cast5.c +index 115e1e6..bf4123e 100644 +--- a/cipher/cast5.c ++++ b/cipher/cast5.c +@@ -54,7 +54,7 @@ + + /* USE_ARM_ASM indicates whether to use ARM assembly code. */ + #undef USE_ARM_ASM +-#if defined(__ARMEL__) ++#if defined(__ARMEL__) && !defined(__PIC__) + # ifdef HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS + # define USE_ARM_ASM 1 + # endif +diff --git a/cipher/rijndael-arm.S b/cipher/rijndael-arm.S +index cea8c51..d5d964f 100644 +--- a/cipher/rijndael-arm.S ++++ b/cipher/rijndael-arm.S +@@ -22,6 +22,7 @@ + + #if defined(__ARMEL__) + #ifdef HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS ++#ifndef __PIC__ + + .text + +@@ -849,5 +850,6 @@ _gcry_aes_arm_decrypt_block: + .long 0x6184cb7b, 0x00000055, 0x70b632d5, 0x00000021 + .long 0x745c6c48, 0x0000000c, 0x4257b8d0, 0x0000007d + +-#endif /*HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS*/ ++#endif /*__PIC__*/ ++#endif /*HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS*/ + #endif /*__ARMEL__ */ +diff --git a/cipher/rijndael.c b/cipher/rijndael.c +index 8019f0a..1ffc559 100644 +--- a/cipher/rijndael.c ++++ b/cipher/rijndael.c +@@ -69,7 +69,7 @@ + + /* USE_ARM_ASM indicates whether to use ARM assembly code. */ + #undef USE_ARM_ASM +-#if defined(__ARMEL__) ++#if defined(__ARMEL__) && !defined(__PIC__) + # ifdef HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS + # define USE_ARM_ASM 1 + # endif diff --git a/libgcrypt.spec b/libgcrypt.spec index 65a5a32..44ba426 100644 --- a/libgcrypt.spec +++ b/libgcrypt.spec @@ -1,6 +1,6 @@ Name: libgcrypt Version: 1.6.1 -Release: 2%{?dist} +Release: 3%{?dist} URL: http://www.gnupg.org/ Source0: libgcrypt-%{version}-hobbled.tar.xz # The original libgcrypt sources now contain potentially patented ECC @@ -33,6 +33,7 @@ Patch11: libgcrypt-1.6.1-use-poll.patch Patch13: libgcrypt-1.6.1-mpicoder-gccopt.patch # fix tests to work with approved ECC Patch14: libgcrypt-1.6.1-ecc-test-fix.patch +Patch15: libgcrypt-1.6.1-disable-non-PIC-arm.patch %define gcrylibdir %{_libdir} @@ -76,6 +77,7 @@ applications using libgcrypt. %patch11 -p1 -b .use-poll %patch13 -p1 -b .gccopt %patch14 -p1 -b .eccfix +%patch15 -p1 -b .pic cp %{SOURCE4} cipher/ cp %{SOURCE5} %{SOURCE6} tests/ @@ -183,6 +185,11 @@ exit 0 %doc COPYING %changelog +* Mon May 19 2014 Kyle McMartin 1.6.1-3 +- Disable rijndael, cast5, camellia ARM assembly, as it's non-PIC as + presently written, which results in .text relocations in the shared + library. (rhbz#1069792) + * Thu Apr 24 2014 Tomáš Mráz 1.6.1-2 - drop the temporary compat shared library version - fix the soname version in -use-fipscheck.patch