summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/rng-tools/files/fix-textrels-on-PIC-x86.patch')
-rw-r--r--sys-apps/rng-tools/files/fix-textrels-on-PIC-x86.patch71
1 files changed, 0 insertions, 71 deletions
diff --git a/sys-apps/rng-tools/files/fix-textrels-on-PIC-x86.patch b/sys-apps/rng-tools/files/fix-textrels-on-PIC-x86.patch
deleted file mode 100644
index 5ff34da861b4..000000000000
--- a/sys-apps/rng-tools/files/fix-textrels-on-PIC-x86.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From: Francisco Blas Izquierdo Riera (klondike) <klondike@gentoo.org>
-Subject: [PATCH] Fix assemby textrels on rdrand_asm.S on PIC x86
-
-This patch fixes the assembly in rdrand_asm.S so it won't generate textrels on PIC systems.
-The main fixes are in the use of leal in SETPTR for such systems, the rest is the usual PIC
-support stuff.
-
-This should fix Gentoo bug #469962
-
-This patch is released under the GPLv2 or a higher version license as is the original file
-as long as reference to the author and the tester are included in the final code.
-
-Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=469962
-Upstream-status: Not sent yet
-Signed-off-by: Francisco Blas Izquierdo Riera (klondike) <klondike@gentoo.org>
-Reported-by: cilly <cilly@cilly.mine.nu>
-Tested-by: Anthony Basile <blueness@gentoo.org>
-
---- rng-tools/rdrand_asm.S
-+++ rng-tools/rdrand_asm.S
-@@ -49,6 +49,7 @@
- ret
- ENDPROC(x86_rdrand_nlong)
-
-+#define INIT_PIC()
- #define SETPTR(var,ptr) leaq var(%rip),ptr
- #define PTR0 %rdi
- #define PTR1 %rsi
-@@ -84,7 +85,16 @@
- ret
- ENDPROC(x86_rdrand_nlong)
-
-+#if defined(__PIC__)
-+#undef __i686 /* gcc builtin define gets in our way */
-+#define INIT_PIC() \
-+ call __i686.get_pc_thunk.bx ; \
-+ addl $_GLOBAL_OFFSET_TABLE_, %ebx
-+#define SETPTR(var,ptr) leal (var)@GOTOFF(%ebx),ptr
-+#else
-+#define INIT_PIC()
- #define SETPTR(var,ptr) movl $(var),ptr
-+#endif
- #define PTR0 %eax
- #define PTR1 %edx
- #define PTR2 %ecx
-@@ -101,6 +111,7 @@
- movl 8(%ebp), %eax
- movl 12(%ebp), %edx
- #endif
-+ INIT_PIC()
-
- SETPTR(aes_round_keys, PTR2)
-
-@@ -166,6 +177,17 @@
- #endif
- ret
- ENDPROC(x86_aes_mangle)
-+
-+#if defined(__i386__) && defined(__PIC__)
-+ .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-+.globl __i686.get_pc_thunk.bx
-+ .hidden __i686.get_pc_thunk.bx
-+ .type __i686.get_pc_thunk.bx,@function
-+__i686.get_pc_thunk.bx:
-+ movl (%esp), %ebx
-+ ret
-+#endif
-+
- /*
- * AES round keys for an arbitrary key:
- * 00102030405060708090A0B0C0D0E0F0