Skip to content

Commit

Permalink
Handle aarch64 defines seperate from arm
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Windel Bouwman <[email protected]>
Closes openzfs#10335 
Closes openzfs#13151
  • Loading branch information
windelbouwman authored and andrewc12 committed Sep 23, 2022
1 parent 05231d5 commit a30aaba
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 16 deletions.
23 changes: 15 additions & 8 deletions include/os/linux/spl/sys/isa_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -105,17 +105,11 @@
#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
Expand All @@ -127,6 +121,19 @@
*/
#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__)

Expand Down
25 changes: 17 additions & 8 deletions lib/libspl/include/sys/isa_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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__)

Expand Down

0 comments on commit a30aaba

Please sign in to comment.