]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Handle aarch64 defines seperate from arm
authorWindel Bouwman <windel@windel.nl>
Tue, 8 Mar 2022 01:49:34 +0000 (02:49 +0100)
committerGitHub <noreply@github.com>
Tue, 8 Mar 2022 01:49:34 +0000 (17:49 -0800)
aarch64 is a different architecture than arm. Some
compilers might choke when both __arm__ and __aarch64__
are defined.

This change separates the checks for arm and for
aarch64 in the isa_defs.h header files.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Windel Bouwman <windel@windel.nl>
Closes #10335
Closes #13151

include/os/linux/spl/sys/isa_defs.h
lib/libspl/include/sys/isa_defs.h

index 2207ee20256cbe755ea0b993cf3e017f6049699f..a032aae91658c422bb2ae2c08948dfc6e5586f2e 100644 (file)
@@ -95,7 +95,7 @@
 #define        _ALIGNMENT_REQUIRED     1
 
 /* arm arch specific defines */
-#elif defined(__arm) || defined(__arm__) || defined(__aarch64__)
+#elif defined(__arm) || defined(__arm__)
 
 #if !defined(__arm)
 #define        __arm
 #define        __arm__
 #endif
 
-#if defined(__aarch64__)
-#if !defined(_LP64)
-#define        _LP64
-#endif
-#else
 #if !defined(_ILP32)
 #define        _ILP32
 #endif
-#endif
 
-#if defined(__ARMEL__) || defined(__AARCH64EL__)
+#if defined(__ARMEL__)
 #define        _ZFS_LITTLE_ENDIAN
 #else
 #define        _ZFS_BIG_ENDIAN
  */
 #define        _ALIGNMENT_REQUIRED     1
 
+/* aarch64 arch specific defines */
+#elif defined(__aarch64__)
+
+#if !defined(_LP64)
+#define        _LP64
+#endif
+
+#if defined(__AARCH64EL__)
+#define        _ZFS_LITTLE_ENDIAN
+#else
+#define        _ZFS_BIG_ENDIAN
+#endif
+
 /* sparc arch specific defines */
 #elif defined(__sparc) || defined(__sparc__)
 
index 8c0932f576545444977a0929f95f50d229b9659f..3922445db31ce731a1bdf9d26aa7efec6d84ac10 100644 (file)
@@ -126,7 +126,7 @@ extern "C" {
 #endif
 
 /* arm arch specific defines */
-#elif defined(__arm) || defined(__arm__) || defined(__aarch64__)
+#elif defined(__arm) || defined(__arm__)
 
 #if !defined(__arm)
 #define        __arm
@@ -136,17 +136,11 @@ extern "C" {
 #define        __arm__
 #endif
 
-#if defined(__aarch64__)
-#if !defined(_LP64)
-#define        _LP64
-#endif
-#else
 #if !defined(_ILP32)
 #define        _ILP32
 #endif
-#endif
 
-#if defined(__ARMEL__) || defined(__AARCH64EL__)
+#if defined(__ARMEL__)
 #define        _ZFS_LITTLE_ENDIAN
 #else
 #define        _ZFS_BIG_ENDIAN
@@ -158,6 +152,21 @@ extern "C" {
 #define        HAVE_EFFICIENT_UNALIGNED_ACCESS
 #endif
 
+/* aarch64 arch specific defines */
+#elif defined(__aarch64__)
+
+#if !defined(_LP64)
+#define        _LP64
+#endif
+
+#if defined(__AARCH64EL__)
+#define        _ZFS_LITTLE_ENDIAN
+#else
+#define        _ZFS_BIG_ENDIAN
+#endif
+
+#define        _SUNOS_VTOC_16
+
 /* sparc arch specific defines */
 #elif defined(__sparc) || defined(__sparc__)