libgcrypt/libgcrypt-1.6.1-disable-non-PIC-arm.patch
Kyle McMartin 4df13ba77f 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
2014-05-19 16:57:04 -04:00

99 lines
2.7 KiB
Diff

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 <config.h>
/* 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