Tue Nov 3 08:34:17 2020 UTC ()
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.


(skrll)
diff -r1.17 -r1.18 src/sys/arch/arm/include/cdefs.h

cvs diff -r1.17 -r1.18 src/sys/arch/arm/include/cdefs.h (expand / switch to unified diff)

--- 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,26 +1,27 @@ @@ -1,26 +1,27 @@
1/* $NetBSD: cdefs.h,v 1.17 2020/10/11 16:22:02 skrll Exp $ */ 1/* $NetBSD: cdefs.h,v 1.18 2020/11/03 08:34:17 skrll Exp $ */
2 2
3#ifndef _ARM_CDEFS_H_ 3#ifndef _ARM_CDEFS_H_
4#define _ARM_CDEFS_H_ 4#define _ARM_CDEFS_H_
5 5
6#ifndef __lint__ 6#ifndef __lint__
7#if (__GNUC__ == 4 && __GNUC_MINOR__ < 1) || __GNUC__ < 4 7#if (__GNUC__ == 4 && __GNUC_MINOR__ < 1) || __GNUC__ < 4
8#error GCC 4.1 or compatible required. 8#error GCC 4.1 or compatible required.
9#endif 9#endif
10#endif 10#endif
11 11
12 12
13#if defined (__ARM_ARCH_8A__) || defined (__ARM_ARCH_8A) 13#if defined (__ARM_ARCH_8A__) || defined (__ARM_ARCH_8A) || \
 14 __ARM_ARCH == 8
14 /* __ARM_ARCH_8A__ is a typo */ 15 /* __ARM_ARCH_8A__ is a typo */
15#define _ARM_ARCH_8 16#define _ARM_ARCH_8
16#endif 17#endif
17 18
18#if defined (_ARM_ARCH_8) || defined (__ARM_ARCH_7__) || \ 19#if defined (_ARM_ARCH_8) || defined (__ARM_ARCH_7__) || \
19 defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__) || \ 20 defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__) || \
20 defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__) 21 defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__)
21 /* 7R, 7M, 7EM are for non MMU arms */ 22 /* 7R, 7M, 7EM are for non MMU arms */
22#define _ARM_ARCH_7 23#define _ARM_ARCH_7
23#endif 24#endif
24 25
25#if defined (_ARM_ARCH_7) || defined (__ARM_ARCH_6T2__) 26#if defined (_ARM_ARCH_7) || defined (__ARM_ARCH_6T2__)
26#define _ARM_ARCH_T2 /* Thumb2 */ 27#define _ARM_ARCH_T2 /* Thumb2 */