Adjust libsanitizer to ABI change in glibc 2.31.
Adapted to 3.x from this upstream commit:
https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
@@ -1139,8 +1139,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
+#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
+/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
+ on many architectures. */
CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
#endif
diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -194,17 +194,16 @@ namespace __sanitizer {
unsigned __seq;
u64 __unused1;
u64 __unused2;
-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
- unsigned int mode;
- unsigned short __seq;
- unsigned short __pad1;
- unsigned long __unused1;
- unsigned long __unused2;
+#elif defined(__sparc__)
+ unsigned mode;
+ unsigned short __pad2;
+ unsigned short __seq;
+ unsigned long long __unused1;
+ unsigned long long __unused2;
#else
- unsigned short mode;
- unsigned short __pad1;
- unsigned short __seq;
- unsigned short __pad2;
+ unsigned int mode;
+ unsigned short __seq;
+ unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)
u64 __unused1;
u64 __unused2;
m>
Age | Commit message (Expand) | Author |
2024-08-31 | gnu: Do not eagerly load (gnu packages commencement)....As its top comment says, this module is not meant to be imported to avoid
circular module dependencies.
* gnu/packages/chicken.scm (chicken) [propagated-inputs]: Resolve
gcc-toolchain lazily.
* gnu/packages/plan9.scm (plan9port): Likewise.
* gnu/packages/raspberry-pi.scm (raspi-arm64-chainloader)
[native-inputs]: Resolve ld-wrapper lazily.
Change-Id: Ie9859046ed32b67dc53bcc5444d6ae162e5d4022
| Maxim Cournoyer |
2024-07-22 | Revert "gnu: chicken: Update to 5.4.0."...This reverts commit 9c3c2293fdc22a6b032bf41d09a6ebe4442324cb.
| jgart |
2024-07-19 | gnu: chicken: Update to 5.4.0....* gnu/packages/chicken.scm (chicken): Update to 5.4.0.
Change-Id: I448bdc25a5cb11e55c7ebb9d9e0cf1876ca958d8
Signed-off-by: jgart <jgart@dismail.de>
| Ashish SHUKLA |