Default size of the data model for AArch64 is 8 (64 bits) for long
types, however newlibc ends up defining LONG_MAX as 32 bits.
This issue causes extremely optimized functions, such as memchr (which
parses DTB for apps like SQLite or redis), to crash when compiled for
AArch64.
This commit redefines the size for long types as 64 bits on AArch64.
Signed-off-by: Maria Sfiraiala <maria.sfiraiala@gmail.com>
Reviewed-by: Sergiu Moga <sergiu.moga@protonmail.com>
Reviewed-by: Simon Kuenzer <simon@unikraft.io>
Reviewed-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Approved-by: Razvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #21
#define SHRT_MAX 0x7fff
#define USHRT_MAX 0xffff
-#if defined(__x86_64__)
+#if defined(__x86_64__) || defined(__ARM_64__)
# define LONG_MAX 0x7fffffffffffffffL
# define ULONG_MAX 0xffffffffffffffffUL
#else