diff options
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.patch | 71 |
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 |