Stop duplicating the OPENSSL_armcap_P declaration

Change-Id: I9ccf1e7442baf84fe8c4aa4c09b69f7289ccd7ba
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/62065
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: Bob Beck <bbe@google.com>
diff --git a/crypto/cpu_aarch64_apple.c b/crypto/cpu_aarch64_apple.c
index de6a8bd..c4fb679 100644
--- a/crypto/cpu_aarch64_apple.c
+++ b/crypto/cpu_aarch64_apple.c
@@ -23,8 +23,6 @@
 #include <openssl/arm_arch.h>
 
 
-extern uint32_t OPENSSL_armcap_P;
-
 static int has_hw_feature(const char *name) {
   int value;
   size_t len = sizeof(value);
diff --git a/crypto/cpu_aarch64_freebsd.c b/crypto/cpu_aarch64_freebsd.c
index 42d8afa..9910261 100644
--- a/crypto/cpu_aarch64_freebsd.c
+++ b/crypto/cpu_aarch64_freebsd.c
@@ -22,7 +22,6 @@
 
 #include <openssl/arm_arch.h>
 
-extern uint32_t OPENSSL_armcap_P;
 
 // ID_AA64ISAR0_*_VAL are defined starting FreeBSD 13.0. When FreeBSD
 // 12.x is out of support, these compatibility macros can be removed.
diff --git a/crypto/cpu_aarch64_fuchsia.c b/crypto/cpu_aarch64_fuchsia.c
index 64bc448..6b2a8c8 100644
--- a/crypto/cpu_aarch64_fuchsia.c
+++ b/crypto/cpu_aarch64_fuchsia.c
@@ -23,7 +23,6 @@
 
 #include <openssl/arm_arch.h>
 
-extern uint32_t OPENSSL_armcap_P;
 
 void OPENSSL_cpuid_setup(void) {
   uint32_t hwcap;
diff --git a/crypto/cpu_aarch64_linux.c b/crypto/cpu_aarch64_linux.c
index 4222711..7b8aa40 100644
--- a/crypto/cpu_aarch64_linux.c
+++ b/crypto/cpu_aarch64_linux.c
@@ -22,8 +22,6 @@
 #include <openssl/arm_arch.h>
 
 
-extern uint32_t OPENSSL_armcap_P;
-
 void OPENSSL_cpuid_setup(void) {
   unsigned long hwcap = getauxval(AT_HWCAP);
 
diff --git a/crypto/cpu_aarch64_openbsd.c b/crypto/cpu_aarch64_openbsd.c
index be271f2..34d9304 100644
--- a/crypto/cpu_aarch64_openbsd.c
+++ b/crypto/cpu_aarch64_openbsd.c
@@ -25,7 +25,6 @@
 
 #include "internal.h"
 
-extern uint32_t OPENSSL_armcap_P;
 
 void OPENSSL_cpuid_setup(void) {
   int isar0_mib[] = { CTL_MACHDEP, CPU_ID_AA64ISAR0 };
diff --git a/crypto/cpu_aarch64_sysreg.c b/crypto/cpu_aarch64_sysreg.c
index 8f85e8a..0750501 100644
--- a/crypto/cpu_aarch64_sysreg.c
+++ b/crypto/cpu_aarch64_sysreg.c
@@ -84,8 +84,6 @@
   return armcap;
 }
 
-extern uint32_t OPENSSL_armcap_P;
-
 void OPENSSL_cpuid_setup(void) { OPENSSL_armcap_P |= read_armcap(); }
 
 #endif  // OPENSSL_AARCH64 && !OPENSSL_STATIC_ARMCAP && ANDROID_BAREMETAL
diff --git a/crypto/cpu_aarch64_win.c b/crypto/cpu_aarch64_win.c
index 0630f96..8acaf29 100644
--- a/crypto/cpu_aarch64_win.c
+++ b/crypto/cpu_aarch64_win.c
@@ -22,7 +22,7 @@
 
 #include <openssl/arm_arch.h>
 
-extern uint32_t OPENSSL_armcap_P;
+
 void OPENSSL_cpuid_setup(void) {
   // We do not need to check for the presence of NEON, as Armv8-A always has it
   OPENSSL_armcap_P |= ARMV7_NEON;
diff --git a/crypto/cpu_arm.c b/crypto/cpu_arm.c
index 3325908..00cf921 100644
--- a/crypto/cpu_arm.c
+++ b/crypto/cpu_arm.c
@@ -20,8 +20,6 @@
 #include <openssl/arm_arch.h>
 
 
-extern uint32_t OPENSSL_armcap_P;
-
 int CRYPTO_is_NEON_capable_at_runtime(void) {
   return (OPENSSL_armcap_P & ARMV7_NEON) != 0;
 }
diff --git a/crypto/cpu_arm_freebsd.c b/crypto/cpu_arm_freebsd.c
index dcc7920..209a49f 100644
--- a/crypto/cpu_arm_freebsd.c
+++ b/crypto/cpu_arm_freebsd.c
@@ -22,7 +22,6 @@
 #include <openssl/arm_arch.h>
 #include <openssl/mem.h>
 
-extern uint32_t OPENSSL_armcap_P;
 
 void OPENSSL_cpuid_setup(void) {
   unsigned long hwcap = 0, hwcap2 = 0;
diff --git a/crypto/cpu_arm_linux.c b/crypto/cpu_arm_linux.c
index d13ac21..e3a2370 100644
--- a/crypto/cpu_arm_linux.c
+++ b/crypto/cpu_arm_linux.c
@@ -95,8 +95,6 @@
   return ret;
 }
 
-extern uint32_t OPENSSL_armcap_P;
-
 static int g_needs_hwcap2_workaround;
 
 void OPENSSL_cpuid_setup(void) {
diff --git a/crypto/cpu_arm_openbsd.c b/crypto/cpu_arm_openbsd.c
index c3463c7..cd11ceb 100644
--- a/crypto/cpu_arm_openbsd.c
+++ b/crypto/cpu_arm_openbsd.c
@@ -19,7 +19,6 @@
 
 #include <openssl/arm_arch.h>
 
-extern uint32_t OPENSSL_armcap_P;
 
 void OPENSSL_cpuid_setup(void) {
   // OpenBSD does not support arm32 machines without NEON
diff --git a/crypto/internal.h b/crypto/internal.h
index 274a0a8..13d3f6f 100644
--- a/crypto/internal.h
+++ b/crypto/internal.h
@@ -1353,6 +1353,8 @@
 
 #if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
 
+extern uint32_t OPENSSL_armcap_P;
+
 #if defined(OPENSSL_APPLE) && defined(OPENSSL_ARM)
 // We do not detect any features at runtime for Apple's 32-bit ARM platforms. On
 // 64-bit ARM, we detect some post-ARMv8.0 features.