diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/armcap.c | 14 | ||||
-rw-r--r-- | src/lib/libcrypto/armv4cpuid.S | 2 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/armcap.c | 14 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/armv4cpuid.S | 2 |
4 files changed, 28 insertions, 4 deletions
diff --git a/src/lib/libcrypto/armcap.c b/src/lib/libcrypto/armcap.c index f40993c1d5..0476f5a4f5 100644 --- a/src/lib/libcrypto/armcap.c +++ b/src/lib/libcrypto/armcap.c | |||
@@ -9,6 +9,7 @@ | |||
9 | 9 | ||
10 | unsigned int OPENSSL_armcap_P; | 10 | unsigned int OPENSSL_armcap_P; |
11 | 11 | ||
12 | #if __ARM_ARCH__ >= 7 | ||
12 | static sigset_t all_masked; | 13 | static sigset_t all_masked; |
13 | 14 | ||
14 | static sigjmp_buf ill_jmp; | 15 | static sigjmp_buf ill_jmp; |
@@ -20,6 +21,7 @@ static sigjmp_buf ill_jmp; | |||
20 | * ARM compilers support inline assembler... | 21 | * ARM compilers support inline assembler... |
21 | */ | 22 | */ |
22 | void _armv7_neon_probe(void); | 23 | void _armv7_neon_probe(void); |
24 | #endif | ||
23 | 25 | ||
24 | #if defined(__GNUC__) && __GNUC__>=2 | 26 | #if defined(__GNUC__) && __GNUC__>=2 |
25 | void OPENSSL_cpuid_setup(void) __attribute__((constructor)); | 27 | void OPENSSL_cpuid_setup(void) __attribute__((constructor)); |
@@ -28,20 +30,29 @@ void OPENSSL_cpuid_setup(void) __attribute__((constructor)); | |||
28 | void | 30 | void |
29 | OPENSSL_cpuid_setup(void) | 31 | OPENSSL_cpuid_setup(void) |
30 | { | 32 | { |
33 | #ifndef __OpenBSD__ | ||
31 | char *e; | 34 | char *e; |
35 | #endif | ||
36 | #if __ARM_ARCH__ >= 7 | ||
32 | struct sigaction ill_oact, ill_act; | 37 | struct sigaction ill_oact, ill_act; |
33 | sigset_t oset; | 38 | sigset_t oset; |
39 | #endif | ||
34 | static int trigger = 0; | 40 | static int trigger = 0; |
35 | 41 | ||
36 | if (trigger) | 42 | if (trigger) |
37 | return; | 43 | return; |
38 | trigger = 1; | 44 | trigger = 1; |
39 | 45 | ||
46 | #ifndef __OpenBSD__ | ||
40 | if ((e = getenv("OPENSSL_armcap"))) { | 47 | if ((e = getenv("OPENSSL_armcap"))) { |
41 | OPENSSL_armcap_P = strtoul(e, NULL, 0); | 48 | OPENSSL_armcap_P = strtoul(e, NULL, 0); |
42 | return; | 49 | return; |
43 | } | 50 | } |
51 | #endif | ||
44 | 52 | ||
53 | OPENSSL_armcap_P = 0; | ||
54 | |||
55 | #if __ARM_ARCH__ >= 7 | ||
45 | sigfillset(&all_masked); | 56 | sigfillset(&all_masked); |
46 | sigdelset(&all_masked, SIGILL); | 57 | sigdelset(&all_masked, SIGILL); |
47 | sigdelset(&all_masked, SIGTRAP); | 58 | sigdelset(&all_masked, SIGTRAP); |
@@ -49,8 +60,6 @@ OPENSSL_cpuid_setup(void) | |||
49 | sigdelset(&all_masked, SIGBUS); | 60 | sigdelset(&all_masked, SIGBUS); |
50 | sigdelset(&all_masked, SIGSEGV); | 61 | sigdelset(&all_masked, SIGSEGV); |
51 | 62 | ||
52 | OPENSSL_armcap_P = 0; | ||
53 | |||
54 | memset(&ill_act, 0, sizeof(ill_act)); | 63 | memset(&ill_act, 0, sizeof(ill_act)); |
55 | ill_act.sa_handler = ill_handler; | 64 | ill_act.sa_handler = ill_handler; |
56 | ill_act.sa_mask = all_masked; | 65 | ill_act.sa_mask = all_masked; |
@@ -65,4 +74,5 @@ OPENSSL_cpuid_setup(void) | |||
65 | 74 | ||
66 | sigaction (SIGILL, &ill_oact, NULL); | 75 | sigaction (SIGILL, &ill_oact, NULL); |
67 | sigprocmask(SIG_SETMASK, &oset, NULL); | 76 | sigprocmask(SIG_SETMASK, &oset, NULL); |
77 | #endif | ||
68 | } | 78 | } |
diff --git a/src/lib/libcrypto/armv4cpuid.S b/src/lib/libcrypto/armv4cpuid.S index 2354b39a55..5ca979f3b3 100644 --- a/src/lib/libcrypto/armv4cpuid.S +++ b/src/lib/libcrypto/armv4cpuid.S | |||
@@ -4,12 +4,14 @@ | |||
4 | .code 32 | 4 | .code 32 |
5 | 5 | ||
6 | .align 5 | 6 | .align 5 |
7 | #if __ARM_ARCH__>=7 | ||
7 | .global _armv7_neon_probe | 8 | .global _armv7_neon_probe |
8 | .type _armv7_neon_probe,%function | 9 | .type _armv7_neon_probe,%function |
9 | _armv7_neon_probe: | 10 | _armv7_neon_probe: |
10 | .word 0xf26ee1fe @ vorr q15,q15,q15 | 11 | .word 0xf26ee1fe @ vorr q15,q15,q15 |
11 | .word 0xe12fff1e @ bx lr | 12 | .word 0xe12fff1e @ bx lr |
12 | .size _armv7_neon_probe,.-_armv7_neon_probe | 13 | .size _armv7_neon_probe,.-_armv7_neon_probe |
14 | #endif | ||
13 | 15 | ||
14 | .global OPENSSL_atomic_add | 16 | .global OPENSSL_atomic_add |
15 | .type OPENSSL_atomic_add,%function | 17 | .type OPENSSL_atomic_add,%function |
diff --git a/src/lib/libssl/src/crypto/armcap.c b/src/lib/libssl/src/crypto/armcap.c index f40993c1d5..0476f5a4f5 100644 --- a/src/lib/libssl/src/crypto/armcap.c +++ b/src/lib/libssl/src/crypto/armcap.c | |||
@@ -9,6 +9,7 @@ | |||
9 | 9 | ||
10 | unsigned int OPENSSL_armcap_P; | 10 | unsigned int OPENSSL_armcap_P; |
11 | 11 | ||
12 | #if __ARM_ARCH__ >= 7 | ||
12 | static sigset_t all_masked; | 13 | static sigset_t all_masked; |
13 | 14 | ||
14 | static sigjmp_buf ill_jmp; | 15 | static sigjmp_buf ill_jmp; |
@@ -20,6 +21,7 @@ static sigjmp_buf ill_jmp; | |||
20 | * ARM compilers support inline assembler... | 21 | * ARM compilers support inline assembler... |
21 | */ | 22 | */ |
22 | void _armv7_neon_probe(void); | 23 | void _armv7_neon_probe(void); |
24 | #endif | ||
23 | 25 | ||
24 | #if defined(__GNUC__) && __GNUC__>=2 | 26 | #if defined(__GNUC__) && __GNUC__>=2 |
25 | void OPENSSL_cpuid_setup(void) __attribute__((constructor)); | 27 | void OPENSSL_cpuid_setup(void) __attribute__((constructor)); |
@@ -28,20 +30,29 @@ void OPENSSL_cpuid_setup(void) __attribute__((constructor)); | |||
28 | void | 30 | void |
29 | OPENSSL_cpuid_setup(void) | 31 | OPENSSL_cpuid_setup(void) |
30 | { | 32 | { |
33 | #ifndef __OpenBSD__ | ||
31 | char *e; | 34 | char *e; |
35 | #endif | ||
36 | #if __ARM_ARCH__ >= 7 | ||
32 | struct sigaction ill_oact, ill_act; | 37 | struct sigaction ill_oact, ill_act; |
33 | sigset_t oset; | 38 | sigset_t oset; |
39 | #endif | ||
34 | static int trigger = 0; | 40 | static int trigger = 0; |
35 | 41 | ||
36 | if (trigger) | 42 | if (trigger) |
37 | return; | 43 | return; |
38 | trigger = 1; | 44 | trigger = 1; |
39 | 45 | ||
46 | #ifndef __OpenBSD__ | ||
40 | if ((e = getenv("OPENSSL_armcap"))) { | 47 | if ((e = getenv("OPENSSL_armcap"))) { |
41 | OPENSSL_armcap_P = strtoul(e, NULL, 0); | 48 | OPENSSL_armcap_P = strtoul(e, NULL, 0); |
42 | return; | 49 | return; |
43 | } | 50 | } |
51 | #endif | ||
44 | 52 | ||
53 | OPENSSL_armcap_P = 0; | ||
54 | |||
55 | #if __ARM_ARCH__ >= 7 | ||
45 | sigfillset(&all_masked); | 56 | sigfillset(&all_masked); |
46 | sigdelset(&all_masked, SIGILL); | 57 | sigdelset(&all_masked, SIGILL); |
47 | sigdelset(&all_masked, SIGTRAP); | 58 | sigdelset(&all_masked, SIGTRAP); |
@@ -49,8 +60,6 @@ OPENSSL_cpuid_setup(void) | |||
49 | sigdelset(&all_masked, SIGBUS); | 60 | sigdelset(&all_masked, SIGBUS); |
50 | sigdelset(&all_masked, SIGSEGV); | 61 | sigdelset(&all_masked, SIGSEGV); |
51 | 62 | ||
52 | OPENSSL_armcap_P = 0; | ||
53 | |||
54 | memset(&ill_act, 0, sizeof(ill_act)); | 63 | memset(&ill_act, 0, sizeof(ill_act)); |
55 | ill_act.sa_handler = ill_handler; | 64 | ill_act.sa_handler = ill_handler; |
56 | ill_act.sa_mask = all_masked; | 65 | ill_act.sa_mask = all_masked; |
@@ -65,4 +74,5 @@ OPENSSL_cpuid_setup(void) | |||
65 | 74 | ||
66 | sigaction (SIGILL, &ill_oact, NULL); | 75 | sigaction (SIGILL, &ill_oact, NULL); |
67 | sigprocmask(SIG_SETMASK, &oset, NULL); | 76 | sigprocmask(SIG_SETMASK, &oset, NULL); |
77 | #endif | ||
68 | } | 78 | } |
diff --git a/src/lib/libssl/src/crypto/armv4cpuid.S b/src/lib/libssl/src/crypto/armv4cpuid.S index 2354b39a55..5ca979f3b3 100644 --- a/src/lib/libssl/src/crypto/armv4cpuid.S +++ b/src/lib/libssl/src/crypto/armv4cpuid.S | |||
@@ -4,12 +4,14 @@ | |||
4 | .code 32 | 4 | .code 32 |
5 | 5 | ||
6 | .align 5 | 6 | .align 5 |
7 | #if __ARM_ARCH__>=7 | ||
7 | .global _armv7_neon_probe | 8 | .global _armv7_neon_probe |
8 | .type _armv7_neon_probe,%function | 9 | .type _armv7_neon_probe,%function |
9 | _armv7_neon_probe: | 10 | _armv7_neon_probe: |
10 | .word 0xf26ee1fe @ vorr q15,q15,q15 | 11 | .word 0xf26ee1fe @ vorr q15,q15,q15 |
11 | .word 0xe12fff1e @ bx lr | 12 | .word 0xe12fff1e @ bx lr |
12 | .size _armv7_neon_probe,.-_armv7_neon_probe | 13 | .size _armv7_neon_probe,.-_armv7_neon_probe |
14 | #endif | ||
13 | 15 | ||
14 | .global OPENSSL_atomic_add | 16 | .global OPENSSL_atomic_add |
15 | .type OPENSSL_atomic_add,%function | 17 | .type OPENSSL_atomic_add,%function |