summaryrefslogtreecommitdiff
path: root/net-wireless/aircrack-ng/files/pic-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'net-wireless/aircrack-ng/files/pic-fix.patch')
-rw-r--r--net-wireless/aircrack-ng/files/pic-fix.patch175
1 files changed, 175 insertions, 0 deletions
diff --git a/net-wireless/aircrack-ng/files/pic-fix.patch b/net-wireless/aircrack-ng/files/pic-fix.patch
new file mode 100644
index 00000000..20c1c900
--- /dev/null
+++ b/net-wireless/aircrack-ng/files/pic-fix.patch
@@ -0,0 +1,175 @@
+2010-11-10 Francisco Blas Izquierdo Riera <klondike@xiscosoft.es>
+
+ #285703
+ * src/sha1-sse2.S: Add support for x86 and AMD64
+This patch is licensed uder the same LICENSE as aircrack-ng
+
+diff -ru aircrack-ng-1.1.old/src/sha1-sse2.S aircrack-ng-1.1/src/sha1-sse2.S
+--- aircrack-ng-1.1.old/src/sha1-sse2.S 2010-01-22 02:01:28.000000000 +0100
++++ aircrack-ng-1.1/src/sha1-sse2.S 2011-02-26 06:22:37.061208191 +0100
+@@ -8,9 +8,36 @@
+ // input blocks must be (four bytes) interleaved.
+
+ #if defined(__x86_64__) && defined(__APPLE__)
++#define PRELOAD(x)
+ #define MANGLE(x) x(%rip)
++#define INIT_PIC()
++#define END_PIC()
+ #else
++#ifdef __PIC__
++
++#ifdef __x86_64__
++#define PRELOAD(x) movq x@GOTPCREL(%rip), %rbx;
++#define MANGLE(x) (%rbx)
++#define INIT_PIC() pushq %rbx
++#define END_PIC() popq %rbx
++#else
++#undef __i686 /* gcc builtin define gets in our way */
++#define PRELOAD(x)
++#define MANGLE(x) x ## @GOTOFF(%ebx)
++#define INIT_PIC() \
++ call __i686.get_pc_thunk.bx ; \
++ addl $_GLOBAL_OFFSET_TABLE_, %ebx
++#define END_PIC()
++#endif
++
++#else
++
++#define PRELOAD(x)
+ #define MANGLE(x) x
++#define INIT_PIC()
++#define END_PIC()
++
++#endif
+ #endif
+
+ #if defined(__i386__) || defined(__x86_64__)
+@@ -142,12 +169,15 @@
+ paddd tmp2, e; \
+ movdqa b, tmp2; \
+ pslld $30, b; \
++ PRELOAD(k) \
+ paddd MANGLE(k), e; \
+ psrld $2, tmp2; \
+ por tmp2, b; \
+ movdqa (data*16)(edx_rsi), tmp1; \
+ movdqa tmp1, tmp2; \
++ PRELOAD(const_ff00) \
+ pand MANGLE(const_ff00), tmp1; \
++ PRELOAD(const_00ff) \
+ pand MANGLE(const_00ff), tmp2; \
+ psrld $8, tmp1; \
+ pslld $8, tmp2; \
+@@ -181,6 +211,7 @@
+ paddd tmp2, e; \
+ movdqa b, tmp2; \
+ pslld $30, b; \
++ PRELOAD(k) \
+ paddd MANGLE(k), e; \
+ psrld $2, tmp2; \
+ por tmp2, b;
+@@ -192,10 +223,16 @@
+ shasse2_init:
+ _shasse2_init:
+
++ INIT_PIC()
++ PRELOAD(const_init_a)
+ movdqa MANGLE(const_init_a), ctxa
++ PRELOAD(const_init_b)
+ movdqa MANGLE(const_init_b), ctxb
++ PRELOAD(const_init_c)
+ movdqa MANGLE(const_init_c), ctxc
++ PRELOAD(const_init_d)
+ movdqa MANGLE(const_init_d), ctxd
++ PRELOAD(const_init_e)
+ movdqa MANGLE(const_init_e), ctxe
+
+ movdqa ctxa, 0(eax_rdi)
+@@ -203,6 +240,7 @@
+ movdqa ctxc, 32(eax_rdi)
+ movdqa ctxd, 48(eax_rdi)
+ movdqa ctxe, 64(eax_rdi)
++ END_PIC()
+
+ ret
+
+@@ -212,17 +250,20 @@
+ shasse2_ends:
+ _shasse2_ends:
+
+- movdqa 0(eax_rdi), ctxa
++ INIT_PIC()
++ movdqa 0(eax_rdi), ctxa
+ movdqa 16(eax_rdi), ctxb
+ movdqa 32(eax_rdi), ctxc
+ movdqa 48(eax_rdi), ctxd
+ movdqa 64(eax_rdi), ctxe
+
++ PRELOAD(const_ff00)
+ movdqa MANGLE(const_ff00), tmp3
+ movdqa ctxa, tmp1
+ movdqa ctxb, tmp2
+ pand tmp3, ctxa
+ pand tmp3, ctxb
++ PRELOAD(const_00ff)
+ movdqa MANGLE(const_00ff), tmp3
+ pand tmp3, tmp1
+ pand tmp3, tmp2
+@@ -243,6 +284,7 @@
+ movdqa ctxa, 0(edx_rsi)
+ movdqa ctxb, 16(edx_rsi)
+
++ PRELOAD(const_ff00)
+ movdqa MANGLE(const_ff00), tmp5
+ movdqa ctxc, tmp1
+ movdqa ctxd, tmp2
+@@ -250,6 +292,7 @@
+ pand tmp5, ctxc
+ pand tmp5, ctxd
+ pand tmp5, ctxe
++ PRELOAD(const_00ff)
+ movdqa MANGLE(const_00ff), tmp5
+ pand tmp5, tmp1
+ pand tmp5, tmp2
+@@ -279,6 +322,7 @@
+ movdqa ctxc, 32(edx_rsi)
+ movdqa ctxd, 48(edx_rsi)
+ movdqa ctxe, 64(edx_rsi)
++ END_PIC()
+
+ ret
+
+@@ -289,6 +333,7 @@
+ shasse2_data:
+ _shasse2_data:
+
++ INIT_PIC()
+ movdqa 0(eax_rdi), ctxa
+ movdqa 16(eax_rdi), ctxb
+ movdqa 32(eax_rdi), ctxc
+@@ -400,6 +445,7 @@
+ movdqa ctxc, 32(eax_rdi)
+ movdqa ctxd, 48(eax_rdi)
+ movdqa ctxe, 64(eax_rdi)
++ END_PIC()
+
+ ret
+
+@@ -462,6 +508,17 @@
+ pop %ebx
+ #endif
+ ret
++#ifdef __i386__
++#ifdef __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
++#endif
+ #endif
+
+