Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
aircrack-ng: Fix 32-bit build
- Loading branch information
1 parent
b7185d5
commit 384410a
Showing
2 changed files
with
217 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,215 @@ | ||
Fix assembly on 32-bit macOS. | ||
https://github.com/aircrack-ng/aircrack-ng/issues/1850 | ||
https://github.com/aircrack-ng/aircrack-ng/pull/1853 | ||
--- src/sha1-sse2.S.orig | ||
+++ src/sha1-sse2.S | ||
@@ -31,34 +31,47 @@ | ||
#endif | ||
|
||
#if defined(USE_PIC) | ||
-#define PRELOAD(x) | ||
-#define MANGLE(x) x(%rip) | ||
-#define INIT_PIC() | ||
-#define END_PIC() | ||
+#define PRELOAD(x,f) | ||
+#define MANGLE(x,f) x(%rip) | ||
+#define INIT_PIC(f) | ||
+#define END_PIC(f) | ||
#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 | ||
+#define PRELOAD(x,f) movq x@GOTPCREL(%rip), %rbx; | ||
+#define MANGLE(x,f) (%rbx) | ||
+#define INIT_PIC(f) pushq %rbx | ||
+#define END_PIC(f) popq %rbx | ||
+#else | ||
+ | ||
+#if __APPLE__ | ||
+#define PRELOAD(x,f) leal x-L0## f ##$pb(%ebx), %esi; | ||
+#define MANGLE(x,f) (%esi) | ||
+#define INIT_PIC(x) \ | ||
+ push %ebx; \ | ||
+ call L0## x ##$pb; \ | ||
+ L0## x ##$pb:; \ | ||
+ pop %ebx; | ||
+#define END_PIC(x) pop %ebx | ||
#else | ||
#undef __i686 /* gcc builtin define gets in our way */ | ||
-#define PRELOAD(x) | ||
-#define MANGLE(x) x ## @GOTOFF(%ebx) | ||
-#define INIT_PIC() \ | ||
+#define PRELOAD(x,f) | ||
+#define MANGLE(x,f) x ## @GOTOFF(%ebx) | ||
+#define INIT_PIC(f) \ | ||
call __i686.get_pc_thunk.bx ; \ | ||
addl $_GLOBAL_OFFSET_TABLE_, %ebx | ||
-#define END_PIC() | ||
+#define END_PIC(f) | ||
+#endif | ||
+ | ||
#endif | ||
|
||
#else | ||
|
||
-#define PRELOAD(x) | ||
-#define MANGLE(x) x | ||
-#define INIT_PIC() | ||
-#define END_PIC() | ||
+#define PRELOAD(x,f) | ||
+#define MANGLE(x,f) x | ||
+#define INIT_PIC(f) | ||
+#define END_PIC(f) | ||
|
||
#endif | ||
#endif | ||
@@ -196,13 +209,13 @@ const_00ff: | ||
paddd tmp2, e; \ | ||
movdqa b, tmp2; \ | ||
pslld $30, b; \ | ||
- paddd MANGLE(k), e; \ | ||
+ paddd MANGLE(k,shasse2_data), e; \ | ||
psrld $2, tmp2; \ | ||
por tmp2, b; \ | ||
movdqa (data*16)(edx_rsi), tmp1; \ | ||
movdqa tmp1, tmp2; \ | ||
- pand MANGLE(const_ff00), tmp1; \ | ||
- pand MANGLE(const_00ff), tmp2; \ | ||
+ pand MANGLE(const_ff00,shasse2_data), tmp1; \ | ||
+ pand MANGLE(const_00ff,shasse2_data), tmp2; \ | ||
psrld $8, tmp1; \ | ||
pslld $8, tmp2; \ | ||
por tmp2, tmp1; \ | ||
@@ -224,16 +237,16 @@ const_00ff: | ||
paddd tmp2, e; \ | ||
movdqa b, tmp2; \ | ||
pslld $30, b; \ | ||
- PRELOAD(k) \ | ||
- paddd MANGLE(k), e; \ | ||
+ PRELOAD(k,shasse2_data) \ | ||
+ paddd MANGLE(k,shasse2_data), 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; \ | ||
+ PRELOAD(const_ff00,shasse2_data) \ | ||
+ pand MANGLE(const_ff00,shasse2_data), tmp1; \ | ||
+ PRELOAD(const_00ff,shasse2_data) \ | ||
+ pand MANGLE(const_00ff,shasse2_data), tmp2; \ | ||
psrld $8, tmp1; \ | ||
pslld $8, tmp2; \ | ||
por tmp2, tmp1; \ | ||
@@ -267,7 +280,7 @@ const_00ff: | ||
paddd tmp2, e; \ | ||
movdqa b, tmp2; \ | ||
pslld $30, b; \ | ||
- paddd MANGLE(k), e; \ | ||
+ paddd MANGLE(k,shasse2_data), e; \ | ||
psrld $2, tmp2; \ | ||
por tmp2, b; | ||
#else | ||
@@ -292,8 +305,8 @@ const_00ff: | ||
paddd tmp2, e; \ | ||
movdqa b, tmp2; \ | ||
pslld $30, b; \ | ||
- PRELOAD(k) \ | ||
- paddd MANGLE(k), e; \ | ||
+ PRELOAD(k,shasse2_data) \ | ||
+ paddd MANGLE(k,shasse2_data), e; \ | ||
psrld $2, tmp2; \ | ||
por tmp2, b; | ||
#endif | ||
@@ -304,17 +317,17 @@ const_00ff: | ||
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 | ||
+ INIT_PIC(shasse2_init) | ||
+ PRELOAD(const_init_a,shasse2_init) | ||
+ movdqa MANGLE(const_init_a,shasse2_init), ctxa | ||
+ PRELOAD(const_init_b,shasse2_init) | ||
+ movdqa MANGLE(const_init_b,shasse2_init), ctxb | ||
+ PRELOAD(const_init_c,shasse2_init) | ||
+ movdqa MANGLE(const_init_c,shasse2_init), ctxc | ||
+ PRELOAD(const_init_d,shasse2_init) | ||
+ movdqa MANGLE(const_init_d,shasse2_init), ctxd | ||
+ PRELOAD(const_init_e,shasse2_init) | ||
+ movdqa MANGLE(const_init_e,shasse2_init), ctxe | ||
|
||
movdqa ctxa, 0(eax_rdi) | ||
movdqa ctxb, 16(eax_rdi) | ||
@@ -331,21 +344,21 @@ _shasse2_init: | ||
shasse2_ends: | ||
_shasse2_ends: | ||
|
||
- INIT_PIC() | ||
+ INIT_PIC(shasse2_ends) | ||
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 | ||
+ PRELOAD(const_ff00,shasse2_ends) | ||
+ movdqa MANGLE(const_ff00,shasse2_ends), tmp3 | ||
movdqa ctxa, tmp1 | ||
movdqa ctxb, tmp2 | ||
pand tmp3, ctxa | ||
pand tmp3, ctxb | ||
- PRELOAD(const_00ff) | ||
- movdqa MANGLE(const_00ff), tmp3 | ||
+ PRELOAD(const_00ff,shasse2_ends) | ||
+ movdqa MANGLE(const_00ff,shasse2_ends), tmp3 | ||
pand tmp3, tmp1 | ||
pand tmp3, tmp2 | ||
psrld $8, ctxa | ||
@@ -365,16 +378,16 @@ _shasse2_ends: | ||
movdqa ctxa, 0(edx_rsi) | ||
movdqa ctxb, 16(edx_rsi) | ||
|
||
- PRELOAD(const_ff00) | ||
- movdqa MANGLE(const_ff00), tmp5 | ||
+ PRELOAD(const_ff00,shasse2_ends) | ||
+ movdqa MANGLE(const_ff00,shasse2_ends), tmp5 | ||
movdqa ctxc, tmp1 | ||
movdqa ctxd, tmp2 | ||
movdqa ctxe, tmp3 | ||
pand tmp5, ctxc | ||
pand tmp5, ctxd | ||
pand tmp5, ctxe | ||
- PRELOAD(const_00ff) | ||
- movdqa MANGLE(const_00ff), tmp5 | ||
+ PRELOAD(const_00ff,shasse2_ends) | ||
+ movdqa MANGLE(const_00ff,shasse2_ends), tmp5 | ||
pand tmp5, tmp1 | ||
pand tmp5, tmp2 | ||
pand tmp5, tmp3 | ||
@@ -414,7 +427,7 @@ _shasse2_ends: | ||
shasse2_data: | ||
_shasse2_data: | ||
|
||
- INIT_PIC() | ||
+ INIT_PIC(shasse2_data) | ||
movdqa 0(eax_rdi), ctxa | ||
movdqa 16(eax_rdi), ctxb | ||
movdqa 32(eax_rdi), ctxc |