The ARM C Language Extenstion document defines __ARCH_ARM as the integer macro indicating the current ARM instruction set. Let's use it. PR/55778: evbarm64 GENERIC64 kernel fails to build with clang XXX Handle the fact that for an ARM architecture ARMvX.Y then, XXX __ARM_ARCH= X * 100 + Y. E.g. for ARMv8.1 __ARM_ARCH = 801.diff -r1.17 -r1.18 src/sys/arch/arm/include/cdefs.h
(skrll)
--- src/sys/arch/arm/include/cdefs.h 2020/10/11 16:22:02 1.17
+++ src/sys/arch/arm/include/cdefs.h 2020/11/03 08:34:17 1.18
@@ -1,4 +1,4 @@
-/* $NetBSD: cdefs.h,v 1.17 2020/10/11 16:22:02 skrll Exp $ */
+/* $NetBSD: cdefs.h,v 1.18 2020/11/03 08:34:17 skrll Exp $ */
#ifndef _ARM_CDEFS_H_
#define _ARM_CDEFS_H_
@@ -10,7 +10,8 @@
#endif
-#if defined (__ARM_ARCH_8A__) || defined (__ARM_ARCH_8A)
+#if defined (__ARM_ARCH_8A__) || defined (__ARM_ARCH_8A) || \
+ __ARM_ARCH == 8
/* __ARM_ARCH_8A__ is a typo */
#define _ARM_ARCH_8
#endif