Remove now unnecessary <openssl/arm_arch.h> includes from assembly

This header used to supply CPU capability constants and things like
__ARM_MAX_ARCH__. The latter is now part of asm_base.h, automatically
included by everything, and assembly files no longer do capability
checks.

The immediate motivation was that there were a few misspelled includes
that used "openssl/arm_arch.h" instead of <openssl/arm_arch.h> (see
https://boringssl-review.googlesource.com/c/boringssl/+/76247), but
given we can just remove them anyway, may as well clear this out.

This now also means we don't pollute another prefix in the global
namespace (though external callers shouldn't have been using this header
anyway).

I've kept the header around, but a no-op, because some bindings
libraries have explicitly listed the header and it's probably not worth
the trouble to clear those out.

Bug: 42290548
Change-Id: I24f36cd48b0e3b6498ecbdc70fecc36961a8b9fe
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/76248
Auto-Submit: David Benjamin <davidben@google.com>
Reviewed-by: Bob Beck <bbe@google.com>
Commit-Queue: Bob Beck <bbe@google.com>
diff --git a/crypto/chacha/asm/chacha-armv4.pl b/crypto/chacha/asm/chacha-armv4.pl
index 1520c6f..700da12 100755
--- a/crypto/chacha/asm/chacha-armv4.pl
+++ b/crypto/chacha/asm/chacha-armv4.pl
@@ -176,8 +176,6 @@
 }
 
 $code.=<<___;
-#include <openssl/arm_arch.h>
-
 @ Silence ARMv8 deprecated IT instruction warnings. This file is used by both
 @ ARMv7 and ARMv8 processors and does not use ARMv8 instructions.
 .arch  armv7-a
diff --git a/crypto/chacha/asm/chacha-armv8.pl b/crypto/chacha/asm/chacha-armv8.pl
index 87be369..8f2fe30 100755
--- a/crypto/chacha/asm/chacha-armv8.pl
+++ b/crypto/chacha/asm/chacha-armv8.pl
@@ -125,8 +125,6 @@
 }
 
 $code.=<<___;
-#include <openssl/arm_arch.h>
-
 .section .rodata
 
 .align	5
diff --git a/crypto/cipher/asm/chacha20_poly1305_armv8.pl b/crypto/cipher/asm/chacha20_poly1305_armv8.pl
index b5715c9..06a35e0 100644
--- a/crypto/cipher/asm/chacha20_poly1305_armv8.pl
+++ b/crypto/cipher/asm/chacha20_poly1305_armv8.pl
@@ -309,7 +309,6 @@
 
 {
 $code.=<<___;
-#include <openssl/arm_arch.h>
 .section .rodata
 
 .align 7
diff --git a/crypto/cpu_aarch64_apple.cc b/crypto/cpu_aarch64_apple.cc
index d1de963..8a8183e 100644
--- a/crypto/cpu_aarch64_apple.cc
+++ b/crypto/cpu_aarch64_apple.cc
@@ -20,8 +20,6 @@
 #include <sys/sysctl.h>
 #include <sys/types.h>
 
-#include <openssl/arm_arch.h>
-
 
 static int has_hw_feature(const char *name) {
   int value;
diff --git a/crypto/cpu_aarch64_fuchsia.cc b/crypto/cpu_aarch64_fuchsia.cc
index 326d5d8..f8bbd17 100644
--- a/crypto/cpu_aarch64_fuchsia.cc
+++ b/crypto/cpu_aarch64_fuchsia.cc
@@ -21,8 +21,6 @@
 #include <zircon/syscalls.h>
 #include <zircon/types.h>
 
-#include <openssl/arm_arch.h>
-
 
 void OPENSSL_cpuid_setup(void) {
   uint32_t hwcap;
diff --git a/crypto/cpu_aarch64_linux.cc b/crypto/cpu_aarch64_linux.cc
index 6201c2e..c3e6c8e 100644
--- a/crypto/cpu_aarch64_linux.cc
+++ b/crypto/cpu_aarch64_linux.cc
@@ -19,8 +19,6 @@
 
 #include <sys/auxv.h>
 
-#include <openssl/arm_arch.h>
-
 
 void OPENSSL_cpuid_setup(void) {
   unsigned long hwcap = getauxval(AT_HWCAP);
diff --git a/crypto/cpu_aarch64_openbsd.cc b/crypto/cpu_aarch64_openbsd.cc
index 69a9e13..51e7058 100644
--- a/crypto/cpu_aarch64_openbsd.cc
+++ b/crypto/cpu_aarch64_openbsd.cc
@@ -21,8 +21,6 @@
 #include <machine/cpu.h>
 #include <sys/sysctl.h>
 
-#include <openssl/arm_arch.h>
-
 #include "internal.h"
 
 
diff --git a/crypto/cpu_aarch64_sysreg.cc b/crypto/cpu_aarch64_sysreg.cc
index 2968502..8bcb506 100644
--- a/crypto/cpu_aarch64_sysreg.cc
+++ b/crypto/cpu_aarch64_sysreg.cc
@@ -21,8 +21,6 @@
     (defined(ANDROID_BAREMETAL) || defined(OPENSSL_FREEBSD)) &&    \
     !defined(OPENSSL_NO_ASM)
 
-#include <openssl/arm_arch.h>
-
 #define ID_AA64PFR0_EL1_ADVSIMD 5
 
 #define ID_AA64ISAR0_EL1_AES 1
diff --git a/crypto/cpu_aarch64_win.cc b/crypto/cpu_aarch64_win.cc
index 54037b8..7dee0fd 100644
--- a/crypto/cpu_aarch64_win.cc
+++ b/crypto/cpu_aarch64_win.cc
@@ -20,8 +20,6 @@
 
 #include <windows.h>
 
-#include <openssl/arm_arch.h>
-
 
 void OPENSSL_cpuid_setup(void) {
   // We do not need to check for the presence of NEON, as Armv8-A always has it
diff --git a/crypto/cpu_arm_freebsd.cc b/crypto/cpu_arm_freebsd.cc
index b9e65c6..793e5b6 100644
--- a/crypto/cpu_arm_freebsd.cc
+++ b/crypto/cpu_arm_freebsd.cc
@@ -19,7 +19,6 @@
 #include <sys/auxv.h>
 #include <sys/types.h>
 
-#include <openssl/arm_arch.h>
 #include <openssl/mem.h>
 
 
diff --git a/crypto/cpu_arm_linux.cc b/crypto/cpu_arm_linux.cc
index 0623f80..42ceecd 100644
--- a/crypto/cpu_arm_linux.cc
+++ b/crypto/cpu_arm_linux.cc
@@ -22,7 +22,6 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include <openssl/arm_arch.h>
 #include <openssl/mem.h>
 
 #include "cpu_arm_linux.h"
diff --git a/crypto/crypto.cc b/crypto/crypto.cc
index eef6062..5c31c48 100644
--- a/crypto/crypto.cc
+++ b/crypto/crypto.cc
@@ -69,8 +69,6 @@
 
 #elif defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
 
-#include <openssl/arm_arch.h>
-
 #if defined(OPENSSL_STATIC_ARMCAP)
 
 // See ARM ACLE for the definitions of these macros. Note |__ARM_FEATURE_AES|
diff --git a/crypto/fipsmodule/aes/asm/aesv8-armx.pl b/crypto/fipsmodule/aes/asm/aesv8-armx.pl
index d0bb4dc..337aaea 100644
--- a/crypto/fipsmodule/aes/asm/aesv8-armx.pl
+++ b/crypto/fipsmodule/aes/asm/aesv8-armx.pl
@@ -58,8 +58,6 @@
 $prefix="aes_hw";
 
 $code=<<___;
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 ___
diff --git a/crypto/fipsmodule/aes/asm/aesv8-gcm-armv8.pl b/crypto/fipsmodule/aes/asm/aesv8-gcm-armv8.pl
index c258464..4f862a9 100644
--- a/crypto/fipsmodule/aes/asm/aesv8-gcm-armv8.pl
+++ b/crypto/fipsmodule/aes/asm/aesv8-gcm-armv8.pl
@@ -195,7 +195,6 @@
 *STDOUT=*OUT;
 
 $code=<<___;
-#include <openssl/arm_arch.h>
 #if __ARM_MAX_ARCH__ >= 8
 
 .arch armv8-a+crypto
diff --git a/crypto/fipsmodule/aes/asm/bsaes-armv7.pl b/crypto/fipsmodule/aes/asm/bsaes-armv7.pl
index 2cb2213..53da1eb 100644
--- a/crypto/fipsmodule/aes/asm/bsaes-armv7.pl
+++ b/crypto/fipsmodule/aes/asm/bsaes-armv7.pl
@@ -712,8 +712,6 @@
 
 $code.=<<___;
 #ifndef __KERNEL__
-# include <openssl/arm_arch.h>
-
 # define VFP_ABI_PUSH	vstmdb	sp!,{d8-d15}
 # define VFP_ABI_POP	vldmia	sp!,{d8-d15}
 # define VFP_ABI_FRAME	0x40
diff --git a/crypto/fipsmodule/aes/asm/ghash-armv4.pl b/crypto/fipsmodule/aes/asm/ghash-armv4.pl
index e3be1de..c16ed37 100644
--- a/crypto/fipsmodule/aes/asm/ghash-armv4.pl
+++ b/crypto/fipsmodule/aes/asm/ghash-armv4.pl
@@ -109,8 +109,6 @@
 $len="r3";
 
 $code=<<___;
-#include <openssl/arm_arch.h>
-
 @ Silence ARMv8 deprecated IT instruction warnings. This file is used by both
 @ ARMv7 and ARMv8 processors and does not use ARMv8 instructions. (ARMv8 PMULL
 @ instructions are in aesv8-armx.pl.)
diff --git a/crypto/fipsmodule/aes/asm/ghash-neon-armv8.pl b/crypto/fipsmodule/aes/asm/ghash-neon-armv8.pl
index 0adbe56..b4ae1db 100644
--- a/crypto/fipsmodule/aes/asm/ghash-neon-armv8.pl
+++ b/crypto/fipsmodule/aes/asm/ghash-neon-armv8.pl
@@ -162,8 +162,6 @@
 }
 
 $code .= <<___;
-#include <openssl/arm_arch.h>
-
 .text
 
 .global	gcm_init_neon
diff --git a/crypto/fipsmodule/aes/asm/ghashv8-armx.pl b/crypto/fipsmodule/aes/asm/ghashv8-armx.pl
index ac64438..d1355e0 100644
--- a/crypto/fipsmodule/aes/asm/ghashv8-armx.pl
+++ b/crypto/fipsmodule/aes/asm/ghashv8-armx.pl
@@ -73,8 +73,6 @@
 my ($t0,$t1,$t2,$xC2,$H,$Hhl,$H2)=map("q$_",(8..14));
 
 $code=<<___;
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 ___
diff --git a/crypto/fipsmodule/aes/asm/vpaes-armv8.pl b/crypto/fipsmodule/aes/asm/vpaes-armv8.pl
index 6a54065..04ada10 100755
--- a/crypto/fipsmodule/aes/asm/vpaes-armv8.pl
+++ b/crypto/fipsmodule/aes/asm/vpaes-armv8.pl
@@ -56,8 +56,6 @@
 *STDOUT=*OUT;
 
 $code.=<<___;
-#include <openssl/arm_arch.h>
-
 .section	.rodata
 
 .type	_vpaes_consts,%object
diff --git a/crypto/fipsmodule/bn/asm/armv4-mont.pl b/crypto/fipsmodule/bn/asm/armv4-mont.pl
index 2b9a773..acae4e5 100644
--- a/crypto/fipsmodule/bn/asm/armv4-mont.pl
+++ b/crypto/fipsmodule/bn/asm/armv4-mont.pl
@@ -102,8 +102,6 @@
 $_num="$num,#15*4";	$_bpend=$_num;
 
 $code=<<___;
-#include <openssl/arm_arch.h>
-
 @ Silence ARMv8 deprecated IT instruction warnings. This file is used by both
 @ ARMv7 and ARMv8 processors and does not use ARMv8 instructions.
 .arch  armv7-a
diff --git a/crypto/fipsmodule/bn/asm/armv8-mont.pl b/crypto/fipsmodule/bn/asm/armv8-mont.pl
index e47f6a1..1ce02ee 100644
--- a/crypto/fipsmodule/bn/asm/armv8-mont.pl
+++ b/crypto/fipsmodule/bn/asm/armv8-mont.pl
@@ -69,8 +69,6 @@
 $num="x5";	# size_t num);
 
 $code.=<<___;
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	bn_mul_mont
diff --git a/crypto/fipsmodule/bn/asm/bn-armv8.pl b/crypto/fipsmodule/bn/asm/bn-armv8.pl
index 6aa1bb4..49379ea 100755
--- a/crypto/fipsmodule/bn/asm/bn-armv8.pl
+++ b/crypto/fipsmodule/bn/asm/bn-armv8.pl
@@ -32,8 +32,6 @@
 my ($rp, $ap, $bp, $num) = ("x0", "x1", "x2", "x3");
 my ($a0, $a1, $b0, $b1, $num_pairs) = ("x4", "x5", "x6", "x7", "x8");
 my $code = <<____;
-#include <openssl/arm_arch.h>
-
 .text
 
 // BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,
diff --git a/crypto/fipsmodule/ec/asm/p256-armv8-asm.pl b/crypto/fipsmodule/ec/asm/p256-armv8-asm.pl
index 372fd3a..a15d7e1 100644
--- a/crypto/fipsmodule/ec/asm/p256-armv8-asm.pl
+++ b/crypto/fipsmodule/ec/asm/p256-armv8-asm.pl
@@ -59,8 +59,6 @@
 my ($acc6,$acc7)=($ap,$bp);	# used in __ecp_nistz256_sqr_mont
 
 $code.=<<___;
-#include "openssl/arm_arch.h"
-
 .section .rodata
 .align	5
 .Lpoly:
diff --git a/crypto/fipsmodule/ec/asm/p256_beeu-armv8-asm.pl b/crypto/fipsmodule/ec/asm/p256_beeu-armv8-asm.pl
index 8dfb488..66fb286 100644
--- a/crypto/fipsmodule/ec/asm/p256_beeu-armv8-asm.pl
+++ b/crypto/fipsmodule/ec/asm/p256_beeu-armv8-asm.pl
@@ -217,8 +217,6 @@
 }
 
 $code.=<<___;
-#include "openssl/arm_arch.h"
-
 .text
 .globl  beeu_mod_inverse_vartime
 .type   beeu_mod_inverse_vartime, %function
diff --git a/crypto/fipsmodule/sha/asm/sha1-armv4-large.pl b/crypto/fipsmodule/sha/asm/sha1-armv4-large.pl
index ac49b5b..576d565 100644
--- a/crypto/fipsmodule/sha/asm/sha1-armv4-large.pl
+++ b/crypto/fipsmodule/sha/asm/sha1-armv4-large.pl
@@ -192,8 +192,6 @@
 }
 
 $code=<<___;
-#include <openssl/arm_arch.h>
-
 .text
 #if defined(__thumb2__)
 .syntax	unified
diff --git a/crypto/fipsmodule/sha/asm/sha1-armv8.pl b/crypto/fipsmodule/sha/asm/sha1-armv8.pl
index 497321e..b81d5b4 100644
--- a/crypto/fipsmodule/sha/asm/sha1-armv8.pl
+++ b/crypto/fipsmodule/sha/asm/sha1-armv8.pl
@@ -176,8 +176,6 @@
 }
 
 $code.=<<___;
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	sha1_block_data_order_nohw
diff --git a/crypto/fipsmodule/sha/asm/sha256-armv4.pl b/crypto/fipsmodule/sha/asm/sha256-armv4.pl
index 8e25025..ab1e511 100644
--- a/crypto/fipsmodule/sha/asm/sha256-armv4.pl
+++ b/crypto/fipsmodule/sha/asm/sha256-armv4.pl
@@ -179,9 +179,7 @@
 }
 
 $code=<<___;
-#ifndef __KERNEL__
-# include <openssl/arm_arch.h>
-#else
+#ifdef __KERNEL__
 # define __ARM_ARCH __LINUX_ARM_ARCH__
 # define __ARM_MAX_ARCH__ 7
 #endif
diff --git a/crypto/fipsmodule/sha/asm/sha512-armv4.pl b/crypto/fipsmodule/sha/asm/sha512-armv4.pl
index 0add8aa..b1fa016 100644
--- a/crypto/fipsmodule/sha/asm/sha512-armv4.pl
+++ b/crypto/fipsmodule/sha/asm/sha512-armv4.pl
@@ -203,7 +203,6 @@
 }
 $code=<<___;
 #ifndef __KERNEL__
-# include <openssl/arm_arch.h>
 # define VFP_ABI_PUSH	vstmdb	sp!,{d8-d15}
 # define VFP_ABI_POP	vldmia	sp!,{d8-d15}
 #else
diff --git a/crypto/fipsmodule/sha/asm/sha512-armv8.pl b/crypto/fipsmodule/sha/asm/sha512-armv8.pl
index e078e9b..0754cb8 100644
--- a/crypto/fipsmodule/sha/asm/sha512-armv8.pl
+++ b/crypto/fipsmodule/sha/asm/sha512-armv8.pl
@@ -177,10 +177,6 @@
 }
 
 $code.=<<___;
-#ifndef	__KERNEL__
-# include <openssl/arm_arch.h>
-#endif
-
 .text
 
 .globl	$func
diff --git a/crypto/internal.h b/crypto/internal.h
index 0d9b0a6..4b14217 100644
--- a/crypto/internal.h
+++ b/crypto/internal.h
@@ -15,7 +15,6 @@
 #ifndef OPENSSL_HEADER_CRYPTO_INTERNAL_H
 #define OPENSSL_HEADER_CRYPTO_INTERNAL_H
 
-#include <openssl/arm_arch.h>
 #include <openssl/crypto.h>
 #include <openssl/ex_data.h>
 #include <openssl/stack.h>
@@ -1290,8 +1289,26 @@
 
 #if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
 
-// OPENSSL_armcap_P contains ARM CPU capabilities. From C, this should only be
-// accessed with |OPENSSL_get_armcap|.
+// ARMV7_NEON indicates support for NEON.
+#define ARMV7_NEON (1 << 0)
+
+// ARMV8_AES indicates support for hardware AES instructions.
+#define ARMV8_AES (1 << 2)
+
+// ARMV8_SHA1 indicates support for hardware SHA-1 instructions.
+#define ARMV8_SHA1 (1 << 3)
+
+// ARMV8_SHA256 indicates support for hardware SHA-256 instructions.
+#define ARMV8_SHA256 (1 << 4)
+
+// ARMV8_PMULL indicates support for carryless multiplication.
+#define ARMV8_PMULL (1 << 5)
+
+// ARMV8_SHA512 indicates support for hardware SHA-512 instructions.
+#define ARMV8_SHA512 (1 << 6)
+
+// OPENSSL_armcap_P contains ARM CPU capabilities as a bitmask of the above
+// constants. This should only be accessed with |OPENSSL_get_armcap|.
 extern uint32_t OPENSSL_armcap_P;
 
 // OPENSSL_get_armcap initializes the library if needed and returns ARM CPU
diff --git a/crypto/test/asm/trampoline-armv8.pl b/crypto/test/asm/trampoline-armv8.pl
index d36160d..5ad3d04 100755
--- a/crypto/test/asm/trampoline-armv8.pl
+++ b/crypto/test/asm/trampoline-armv8.pl
@@ -45,8 +45,6 @@
 
 my ($func, $state, $argv, $argc) = ("x0", "x1", "x2", "x3");
 my $code = <<____;
-#include <openssl/arm_arch.h>
-
 .text
 
 // abi_test_trampoline loads callee-saved registers from |state|, calls |func|
diff --git a/crypto/test/gtest_main.cc b/crypto/test/gtest_main.cc
index 62b2484..441e333 100644
--- a/crypto/test/gtest_main.cc
+++ b/crypto/test/gtest_main.cc
@@ -24,12 +24,6 @@
 #include "gtest_main.h"
 #include "../internal.h"
 
-#if (defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)) &&       \
-    !defined(OPENSSL_STATIC_ARMCAP)
-#include <openssl/arm_arch.h>
-#define TEST_ARM_CPUS
-#endif
-
 
 int main(int argc, char **argv) {
   testing::InitGoogleMock(&argc, argv);
@@ -43,7 +37,8 @@
     }
 #endif
 
-#if defined(TEST_ARM_CPUS)
+#if (defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)) && \
+    !defined(OPENSSL_STATIC_ARMCAP)
     if (strncmp(argv[i], "--cpu=", 6) == 0) {
       const char *cpu = argv[i] + 6;
       uint32_t armcap;
@@ -68,7 +63,7 @@
       printf("Simulating CPU '%s'\n", cpu);
       *armcap_ptr = armcap;
     }
-#endif  // TEST_ARM_CPUS
+#endif  // (ARM || AARCH64) && !STATIC_ARMCAP
 
     if (strcmp(argv[i], "--no_unwind_tests") == 0) {
       unwind_tests = false;
diff --git a/gen/bcm/aesv8-armv7-linux.S b/gen/bcm/aesv8-armv7-linux.S
index 97d56c7..2b3929a 100644
--- a/gen/bcm/aesv8-armv7-linux.S
+++ b/gen/bcm/aesv8-armv7-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_ARM) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 .arch	armv7-a	@ don't confuse not-so-latest binutils with argv8 :-)
diff --git a/gen/bcm/aesv8-armv8-apple.S b/gen/bcm/aesv8-armv8-apple.S
index ef64244..f502d14 100644
--- a/gen/bcm/aesv8-armv8-apple.S
+++ b/gen/bcm/aesv8-armv8-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 
diff --git a/gen/bcm/aesv8-armv8-linux.S b/gen/bcm/aesv8-armv8-linux.S
index 23d78f2..cbf5c0a 100644
--- a/gen/bcm/aesv8-armv8-linux.S
+++ b/gen/bcm/aesv8-armv8-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 .arch	armv8-a+crypto
diff --git a/gen/bcm/aesv8-armv8-win.S b/gen/bcm/aesv8-armv8-win.S
index 48bf2fd..54bd1c5 100644
--- a/gen/bcm/aesv8-armv8-win.S
+++ b/gen/bcm/aesv8-armv8-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 .arch	armv8-a+crypto
diff --git a/gen/bcm/aesv8-gcm-armv8-apple.S b/gen/bcm/aesv8-gcm-armv8-apple.S
index 13be797..97f2379 100644
--- a/gen/bcm/aesv8-gcm-armv8-apple.S
+++ b/gen/bcm/aesv8-gcm-armv8-apple.S
@@ -4,7 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
 #if __ARM_MAX_ARCH__ >= 8
 
 
diff --git a/gen/bcm/aesv8-gcm-armv8-linux.S b/gen/bcm/aesv8-gcm-armv8-linux.S
index 4283f93..fc07f9a 100644
--- a/gen/bcm/aesv8-gcm-armv8-linux.S
+++ b/gen/bcm/aesv8-gcm-armv8-linux.S
@@ -4,7 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
 #if __ARM_MAX_ARCH__ >= 8
 
 .arch	armv8-a+crypto
diff --git a/gen/bcm/aesv8-gcm-armv8-win.S b/gen/bcm/aesv8-gcm-armv8-win.S
index 1233796..ce27fd3 100644
--- a/gen/bcm/aesv8-gcm-armv8-win.S
+++ b/gen/bcm/aesv8-gcm-armv8-win.S
@@ -4,7 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
 #if __ARM_MAX_ARCH__ >= 8
 
 .arch	armv8-a+crypto
diff --git a/gen/bcm/armv4-mont-linux.S b/gen/bcm/armv4-mont-linux.S
index 0b845b6..704f607 100644
--- a/gen/bcm/armv4-mont-linux.S
+++ b/gen/bcm/armv4-mont-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_ARM) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 @ Silence ARMv8 deprecated IT instruction warnings. This file is used by both
 @ ARMv7 and ARMv8 processors and does not use ARMv8 instructions.
 .arch	armv7-a
diff --git a/gen/bcm/armv8-mont-apple.S b/gen/bcm/armv8-mont-apple.S
index cf798a3..9e39c1d 100644
--- a/gen/bcm/armv8-mont-apple.S
+++ b/gen/bcm/armv8-mont-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	_bn_mul_mont
diff --git a/gen/bcm/armv8-mont-linux.S b/gen/bcm/armv8-mont-linux.S
index 13f045c..168162f 100644
--- a/gen/bcm/armv8-mont-linux.S
+++ b/gen/bcm/armv8-mont-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	bn_mul_mont
diff --git a/gen/bcm/armv8-mont-win.S b/gen/bcm/armv8-mont-win.S
index dcce02c..b521d49 100644
--- a/gen/bcm/armv8-mont-win.S
+++ b/gen/bcm/armv8-mont-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	bn_mul_mont
diff --git a/gen/bcm/bn-armv8-apple.S b/gen/bcm/bn-armv8-apple.S
index 5e3471a..d37c48e 100644
--- a/gen/bcm/bn-armv8-apple.S
+++ b/gen/bcm/bn-armv8-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 .text
 
 // BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,
diff --git a/gen/bcm/bn-armv8-linux.S b/gen/bcm/bn-armv8-linux.S
index 2b8823a..50be088 100644
--- a/gen/bcm/bn-armv8-linux.S
+++ b/gen/bcm/bn-armv8-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 .text
 
 // BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,
diff --git a/gen/bcm/bn-armv8-win.S b/gen/bcm/bn-armv8-win.S
index af97080..6131bd9 100644
--- a/gen/bcm/bn-armv8-win.S
+++ b/gen/bcm/bn-armv8-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 .text
 
 // BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp,
diff --git a/gen/bcm/bsaes-armv7-linux.S b/gen/bcm/bsaes-armv7-linux.S
index 102681b..0117747 100644
--- a/gen/bcm/bsaes-armv7-linux.S
+++ b/gen/bcm/bsaes-armv7-linux.S
@@ -61,8 +61,6 @@
 @ Add CBC, CTR and XTS subroutines and adapt for kernel use; courtesy of Ard.
 
 #ifndef __KERNEL__
-# include <openssl/arm_arch.h>
-
 # define VFP_ABI_PUSH	vstmdb	sp!,{d8-d15}
 # define VFP_ABI_POP	vldmia	sp!,{d8-d15}
 # define VFP_ABI_FRAME	0x40
diff --git a/gen/bcm/ghash-armv4-linux.S b/gen/bcm/ghash-armv4-linux.S
index 7c04f89..397340c 100644
--- a/gen/bcm/ghash-armv4-linux.S
+++ b/gen/bcm/ghash-armv4-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_ARM) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 @ Silence ARMv8 deprecated IT instruction warnings. This file is used by both
 @ ARMv7 and ARMv8 processors and does not use ARMv8 instructions. (ARMv8 PMULL
 @ instructions are in aesv8-armx.pl.)
diff --git a/gen/bcm/ghash-neon-armv8-apple.S b/gen/bcm/ghash-neon-armv8-apple.S
index a76b8d1..15b822c 100644
--- a/gen/bcm/ghash-neon-armv8-apple.S
+++ b/gen/bcm/ghash-neon-armv8-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	_gcm_init_neon
diff --git a/gen/bcm/ghash-neon-armv8-linux.S b/gen/bcm/ghash-neon-armv8-linux.S
index 6203bc6..ee57d51 100644
--- a/gen/bcm/ghash-neon-armv8-linux.S
+++ b/gen/bcm/ghash-neon-armv8-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	gcm_init_neon
diff --git a/gen/bcm/ghash-neon-armv8-win.S b/gen/bcm/ghash-neon-armv8-win.S
index d968893..91814da 100644
--- a/gen/bcm/ghash-neon-armv8-win.S
+++ b/gen/bcm/ghash-neon-armv8-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	gcm_init_neon
diff --git a/gen/bcm/ghashv8-armv7-linux.S b/gen/bcm/ghashv8-armv7-linux.S
index fab4c12..6c4b2a9 100644
--- a/gen/bcm/ghashv8-armv7-linux.S
+++ b/gen/bcm/ghashv8-armv7-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_ARM) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 .fpu	neon
diff --git a/gen/bcm/ghashv8-armv8-apple.S b/gen/bcm/ghashv8-armv8-apple.S
index 6bc8a4f..fcf3dff 100644
--- a/gen/bcm/ghashv8-armv8-apple.S
+++ b/gen/bcm/ghashv8-armv8-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 
diff --git a/gen/bcm/ghashv8-armv8-linux.S b/gen/bcm/ghashv8-armv8-linux.S
index de6f712..bb88176 100644
--- a/gen/bcm/ghashv8-armv8-linux.S
+++ b/gen/bcm/ghashv8-armv8-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 .arch	armv8-a+crypto
diff --git a/gen/bcm/ghashv8-armv8-win.S b/gen/bcm/ghashv8-armv8-win.S
index 0be9ac6..d4ad2b8 100644
--- a/gen/bcm/ghashv8-armv8-win.S
+++ b/gen/bcm/ghashv8-armv8-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 #if __ARM_MAX_ARCH__>=7
 .text
 .arch	armv8-a+crypto
diff --git a/gen/bcm/p256-armv8-asm-apple.S b/gen/bcm/p256-armv8-asm-apple.S
index c8469e6..283240f 100644
--- a/gen/bcm/p256-armv8-asm-apple.S
+++ b/gen/bcm/p256-armv8-asm-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include "openssl/arm_arch.h"
-
 .section	__TEXT,__const
 .align	5
 Lpoly:
diff --git a/gen/bcm/p256-armv8-asm-linux.S b/gen/bcm/p256-armv8-asm-linux.S
index 28d9ac9..1d63f02 100644
--- a/gen/bcm/p256-armv8-asm-linux.S
+++ b/gen/bcm/p256-armv8-asm-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include "openssl/arm_arch.h"
-
 .section	.rodata
 .align	5
 .Lpoly:
diff --git a/gen/bcm/p256-armv8-asm-win.S b/gen/bcm/p256-armv8-asm-win.S
index a55d20d..f15b8ab 100644
--- a/gen/bcm/p256-armv8-asm-win.S
+++ b/gen/bcm/p256-armv8-asm-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include "openssl/arm_arch.h"
-
 .section	.rodata
 .align	5
 Lpoly:
diff --git a/gen/bcm/p256_beeu-armv8-asm-apple.S b/gen/bcm/p256_beeu-armv8-asm-apple.S
index 49ea9b8..1689310 100644
--- a/gen/bcm/p256_beeu-armv8-asm-apple.S
+++ b/gen/bcm/p256_beeu-armv8-asm-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include "openssl/arm_arch.h"
-
 .text
 .globl	_beeu_mod_inverse_vartime
 .private_extern	_beeu_mod_inverse_vartime
diff --git a/gen/bcm/p256_beeu-armv8-asm-linux.S b/gen/bcm/p256_beeu-armv8-asm-linux.S
index 8e09b61..7253ad4 100644
--- a/gen/bcm/p256_beeu-armv8-asm-linux.S
+++ b/gen/bcm/p256_beeu-armv8-asm-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include "openssl/arm_arch.h"
-
 .text
 .globl	beeu_mod_inverse_vartime
 .hidden	beeu_mod_inverse_vartime
diff --git a/gen/bcm/p256_beeu-armv8-asm-win.S b/gen/bcm/p256_beeu-armv8-asm-win.S
index ac6eb17..534a81e 100644
--- a/gen/bcm/p256_beeu-armv8-asm-win.S
+++ b/gen/bcm/p256_beeu-armv8-asm-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include "openssl/arm_arch.h"
-
 .text
 .globl	beeu_mod_inverse_vartime
 
diff --git a/gen/bcm/sha1-armv4-large-linux.S b/gen/bcm/sha1-armv4-large-linux.S
index 323e6e6..25a1ea4 100644
--- a/gen/bcm/sha1-armv4-large-linux.S
+++ b/gen/bcm/sha1-armv4-large-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_ARM) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 .text
 #if defined(__thumb2__)
 .syntax	unified
diff --git a/gen/bcm/sha1-armv8-apple.S b/gen/bcm/sha1-armv8-apple.S
index 8f84774..5744697 100644
--- a/gen/bcm/sha1-armv8-apple.S
+++ b/gen/bcm/sha1-armv8-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	_sha1_block_data_order_nohw
diff --git a/gen/bcm/sha1-armv8-linux.S b/gen/bcm/sha1-armv8-linux.S
index f2df2dd..d6fb410 100644
--- a/gen/bcm/sha1-armv8-linux.S
+++ b/gen/bcm/sha1-armv8-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	sha1_block_data_order_nohw
diff --git a/gen/bcm/sha1-armv8-win.S b/gen/bcm/sha1-armv8-win.S
index f8c8b86..b8161b9 100644
--- a/gen/bcm/sha1-armv8-win.S
+++ b/gen/bcm/sha1-armv8-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 .text
 
 .globl	sha1_block_data_order_nohw
diff --git a/gen/bcm/sha256-armv4-linux.S b/gen/bcm/sha256-armv4-linux.S
index 3e67749..b04f463 100644
--- a/gen/bcm/sha256-armv4-linux.S
+++ b/gen/bcm/sha256-armv4-linux.S
@@ -52,9 +52,7 @@
 @
 @ Add ARMv8 code path performing at 2.0 cpb on Apple A7.
 
-#ifndef __KERNEL__
-# include <openssl/arm_arch.h>
-#else
+#ifdef __KERNEL__
 # define __ARM_ARCH __LINUX_ARM_ARCH__
 # define __ARM_MAX_ARCH__ 7
 #endif
diff --git a/gen/bcm/sha256-armv8-apple.S b/gen/bcm/sha256-armv8-apple.S
index 308d152..e129b42 100644
--- a/gen/bcm/sha256-armv8-apple.S
+++ b/gen/bcm/sha256-armv8-apple.S
@@ -47,10 +47,6 @@
 //	generated with -mgeneral-regs-only is significantly faster
 //	and the gap is only 40-90%.
 
-#ifndef	__KERNEL__
-# include <openssl/arm_arch.h>
-#endif
-
 .text
 
 .globl	_sha256_block_data_order_nohw
diff --git a/gen/bcm/sha256-armv8-linux.S b/gen/bcm/sha256-armv8-linux.S
index f29a30d..d73c416 100644
--- a/gen/bcm/sha256-armv8-linux.S
+++ b/gen/bcm/sha256-armv8-linux.S
@@ -47,10 +47,6 @@
 //	generated with -mgeneral-regs-only is significantly faster
 //	and the gap is only 40-90%.
 
-#ifndef	__KERNEL__
-# include <openssl/arm_arch.h>
-#endif
-
 .text
 
 .globl	sha256_block_data_order_nohw
diff --git a/gen/bcm/sha256-armv8-win.S b/gen/bcm/sha256-armv8-win.S
index 99e3d0b..be003a2 100644
--- a/gen/bcm/sha256-armv8-win.S
+++ b/gen/bcm/sha256-armv8-win.S
@@ -47,10 +47,6 @@
 //	generated with -mgeneral-regs-only is significantly faster
 //	and the gap is only 40-90%.
 
-#ifndef	__KERNEL__
-# include <openssl/arm_arch.h>
-#endif
-
 .text
 
 .globl	sha256_block_data_order_nohw
diff --git a/gen/bcm/sha512-armv4-linux.S b/gen/bcm/sha512-armv4-linux.S
index d7976e5..f95fc9a 100644
--- a/gen/bcm/sha512-armv4-linux.S
+++ b/gen/bcm/sha512-armv4-linux.S
@@ -62,7 +62,6 @@
 @ was reflected in below two parameters as 0 and 4. Now caller is
 @ expected to maintain native byte order for whole 64-bit values.
 #ifndef __KERNEL__
-# include <openssl/arm_arch.h>
 # define VFP_ABI_PUSH	vstmdb	sp!,{d8-d15}
 # define VFP_ABI_POP	vldmia	sp!,{d8-d15}
 #else
diff --git a/gen/bcm/sha512-armv8-apple.S b/gen/bcm/sha512-armv8-apple.S
index 67b1ae0..b56252e 100644
--- a/gen/bcm/sha512-armv8-apple.S
+++ b/gen/bcm/sha512-armv8-apple.S
@@ -47,10 +47,6 @@
 //	generated with -mgeneral-regs-only is significantly faster
 //	and the gap is only 40-90%.
 
-#ifndef	__KERNEL__
-# include <openssl/arm_arch.h>
-#endif
-
 .text
 
 .globl	_sha512_block_data_order_nohw
diff --git a/gen/bcm/sha512-armv8-linux.S b/gen/bcm/sha512-armv8-linux.S
index 355e8c9..793e9e6 100644
--- a/gen/bcm/sha512-armv8-linux.S
+++ b/gen/bcm/sha512-armv8-linux.S
@@ -47,10 +47,6 @@
 //	generated with -mgeneral-regs-only is significantly faster
 //	and the gap is only 40-90%.
 
-#ifndef	__KERNEL__
-# include <openssl/arm_arch.h>
-#endif
-
 .text
 
 .globl	sha512_block_data_order_nohw
diff --git a/gen/bcm/sha512-armv8-win.S b/gen/bcm/sha512-armv8-win.S
index 098bd76..7b09813 100644
--- a/gen/bcm/sha512-armv8-win.S
+++ b/gen/bcm/sha512-armv8-win.S
@@ -47,10 +47,6 @@
 //	generated with -mgeneral-regs-only is significantly faster
 //	and the gap is only 40-90%.
 
-#ifndef	__KERNEL__
-# include <openssl/arm_arch.h>
-#endif
-
 .text
 
 .globl	sha512_block_data_order_nohw
diff --git a/gen/bcm/vpaes-armv8-apple.S b/gen/bcm/vpaes-armv8-apple.S
index a108a96..d932f51 100644
--- a/gen/bcm/vpaes-armv8-apple.S
+++ b/gen/bcm/vpaes-armv8-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 .section	__TEXT,__const
 
 
diff --git a/gen/bcm/vpaes-armv8-linux.S b/gen/bcm/vpaes-armv8-linux.S
index c343f00..010ccd2 100644
--- a/gen/bcm/vpaes-armv8-linux.S
+++ b/gen/bcm/vpaes-armv8-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 .section	.rodata
 
 .type	_vpaes_consts,%object
diff --git a/gen/bcm/vpaes-armv8-win.S b/gen/bcm/vpaes-armv8-win.S
index d399d22..6160e9f 100644
--- a/gen/bcm/vpaes-armv8-win.S
+++ b/gen/bcm/vpaes-armv8-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 .section	.rodata
 
 
diff --git a/gen/crypto/chacha-armv4-linux.S b/gen/crypto/chacha-armv4-linux.S
index 2255dd2..6532e00 100644
--- a/gen/crypto/chacha-armv4-linux.S
+++ b/gen/crypto/chacha-armv4-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_ARM) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 @ Silence ARMv8 deprecated IT instruction warnings. This file is used by both
 @ ARMv7 and ARMv8 processors and does not use ARMv8 instructions.
 .arch	armv7-a
diff --git a/gen/crypto/chacha-armv8-apple.S b/gen/crypto/chacha-armv8-apple.S
index 3807631..452bf49 100644
--- a/gen/crypto/chacha-armv8-apple.S
+++ b/gen/crypto/chacha-armv8-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 .section	__TEXT,__const
 
 .align	5
diff --git a/gen/crypto/chacha-armv8-linux.S b/gen/crypto/chacha-armv8-linux.S
index 55fa583..6ecff53 100644
--- a/gen/crypto/chacha-armv8-linux.S
+++ b/gen/crypto/chacha-armv8-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 .section	.rodata
 
 .align	5
diff --git a/gen/crypto/chacha-armv8-win.S b/gen/crypto/chacha-armv8-win.S
index 851ef4d..ea1da28 100644
--- a/gen/crypto/chacha-armv8-win.S
+++ b/gen/crypto/chacha-armv8-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 .section	.rodata
 
 .align	5
diff --git a/gen/crypto/chacha20_poly1305_armv8-apple.S b/gen/crypto/chacha20_poly1305_armv8-apple.S
index 04a1e22..66c538c 100644
--- a/gen/crypto/chacha20_poly1305_armv8-apple.S
+++ b/gen/crypto/chacha20_poly1305_armv8-apple.S
@@ -4,7 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
 .section	__TEXT,__const
 
 .align	7
diff --git a/gen/crypto/chacha20_poly1305_armv8-linux.S b/gen/crypto/chacha20_poly1305_armv8-linux.S
index 7d2db8d..f1f2b67 100644
--- a/gen/crypto/chacha20_poly1305_armv8-linux.S
+++ b/gen/crypto/chacha20_poly1305_armv8-linux.S
@@ -4,7 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
 .section	.rodata
 
 .align	7
diff --git a/gen/crypto/chacha20_poly1305_armv8-win.S b/gen/crypto/chacha20_poly1305_armv8-win.S
index 3314f2c..4c0b967 100644
--- a/gen/crypto/chacha20_poly1305_armv8-win.S
+++ b/gen/crypto/chacha20_poly1305_armv8-win.S
@@ -4,7 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
 .section	.rodata
 
 .align	7
diff --git a/gen/test_support/trampoline-armv8-apple.S b/gen/test_support/trampoline-armv8-apple.S
index 99055e0..b32c707 100644
--- a/gen/test_support/trampoline-armv8-apple.S
+++ b/gen/test_support/trampoline-armv8-apple.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__APPLE__)
-#include <openssl/arm_arch.h>
-
 .text
 
 // abi_test_trampoline loads callee-saved registers from |state|, calls |func|
diff --git a/gen/test_support/trampoline-armv8-linux.S b/gen/test_support/trampoline-armv8-linux.S
index 58b4b93..7bfb906 100644
--- a/gen/test_support/trampoline-armv8-linux.S
+++ b/gen/test_support/trampoline-armv8-linux.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(__ELF__)
-#include <openssl/arm_arch.h>
-
 .text
 
 // abi_test_trampoline loads callee-saved registers from |state|, calls |func|
diff --git a/gen/test_support/trampoline-armv8-win.S b/gen/test_support/trampoline-armv8-win.S
index 14773e3..8b82440 100644
--- a/gen/test_support/trampoline-armv8-win.S
+++ b/gen/test_support/trampoline-armv8-win.S
@@ -4,8 +4,6 @@
 #include <openssl/asm_base.h>
 
 #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
-#include <openssl/arm_arch.h>
-
 .text
 
 // abi_test_trampoline loads callee-saved registers from |state|, calls |func|
diff --git a/include/openssl/arm_arch.h b/include/openssl/arm_arch.h
index 00de651..d89b4bb 100644
--- a/include/openssl/arm_arch.h
+++ b/include/openssl/arm_arch.h
@@ -17,30 +17,8 @@
 
 #include <openssl/target.h>
 
-// arm_arch.h contains symbols used by ARM assembly, and the C code that calls
-// it. It is included as a public header to simplify the build, but is not
-// intended for external use.
-
-#if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
-
-// ARMV7_NEON is true when a NEON unit is present in the current CPU.
-#define ARMV7_NEON (1 << 0)
-
-// ARMV8_AES indicates support for hardware AES instructions.
-#define ARMV8_AES (1 << 2)
-
-// ARMV8_SHA1 indicates support for hardware SHA-1 instructions.
-#define ARMV8_SHA1 (1 << 3)
-
-// ARMV8_SHA256 indicates support for hardware SHA-256 instructions.
-#define ARMV8_SHA256 (1 << 4)
-
-// ARMV8_PMULL indicates support for carryless multiplication.
-#define ARMV8_PMULL (1 << 5)
-
-// ARMV8_SHA512 indicates support for hardware SHA-512 instructions.
-#define ARMV8_SHA512 (1 << 6)
-
-#endif  // ARM || AARCH64
+// This header historically defined constants used by Arm assembly, which was
+// exposed publicly to simplify the build. This is no longer needed, but we
+// retain the header for compatibility.
 
 #endif  // OPENSSL_HEADER_ARM_ARCH_H