From: Maria Sfiraiala Date: Wed, 3 Aug 2022 15:53:05 +0000 (+0300) Subject: Fix size for long types on aarch64 X-Git-Tag: RELEASE-0.12.0~1 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=e42e8a700043f04d1822f9915eeb4d4dededd9a5;p=unikraft%2Flibs%2Fnewlib.git Fix size for long types on aarch64 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 Reviewed-by: Sergiu Moga Reviewed-by: Simon Kuenzer Reviewed-by: Razvan Deaconescu Approved-by: Razvan Deaconescu Tested-by: Unikraft CI GitHub-Closes: #21 --- diff --git a/include/limits.h b/include/limits.h index cbe57fa..d654a1d 100644 --- a/include/limits.h +++ b/include/limits.h @@ -51,7 +51,7 @@ #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