From: Carlos Eduardo Seo Date: Wed, 26 Jan 2022 19:19:33 +0000 (-0300) Subject: TODO(spec): cheri: __LP64__ is not defined for purecap ABI X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=434271f1321cc78ecf422af73af741b8a59b17f0;p=thirdparty%2Fglibc.git TODO(spec): cheri: __LP64__ is not defined for purecap ABI TODO: there is no good ABI macro to check, for now we assume __CHERI_PURE_CAPABILITY__ implies 64 bit long, 64 bit address and 128 bit pointer. --- diff --git a/bits/typesizes.h b/bits/typesizes.h index fffb6bfb640..186853968d5 100644 --- a/bits/typesizes.h +++ b/bits/typesizes.h @@ -62,7 +62,7 @@ #define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE #define __CPU_MASK_TYPE __ULONGWORD_TYPE -#ifdef __LP64__ +#if defined __LP64__ || defined __CHERI_PURE_CAPABILITY__ /* Tell the libc code that off_t and off64_t are actually the same type for all ABI purposes, even if possibly expressed as different base types for C type-checking purposes. */ diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h index 4635431f0ec..8fbf6503d82 100644 --- a/sysdeps/aarch64/bits/wordsize.h +++ b/sysdeps/aarch64/bits/wordsize.h @@ -17,7 +17,7 @@ License along with the GNU C Library; if not, see . */ -#ifdef __LP64__ +#if defined __LP64__ || defined __CHERI_PURE_CAPABILITY__ # define __WORDSIZE 64 #else # define __WORDSIZE 32 diff --git a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h index 6b13ff315c0..c70dcbccd83 100644 --- a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h +++ b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h @@ -75,7 +75,7 @@ #define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE #define __CPU_MASK_TYPE __ULONGWORD_TYPE -#if defined __LP64__ || (__TIMESIZE == 64 && __WORDSIZE == 32) +#if defined __LP64__ || (__TIMESIZE == 64 && __WORDSIZE == 32) || defined __CHERI_PURE_CAPABILITY__ /* Tell the libc code that off_t and off64_t are actually the same type for all ABI purposes, even if possibly expressed as different base types for C type-checking purposes. */