aboutsummaryrefslogtreecommitdiff
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
@@ -1130,8 +1130,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
 #ifndef __GLIBC_PREREQ
 #define __GLIBC_PREREQ(x, y) 0
 #endif
-#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/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
@@ -188,17 +188,16 @@ namespace __sanitizer {
     unsigned __seq;
     u64 __unused1;
     u64 __unused2;
-#elif defined(__mips__) || defined(__aarch64__)
-    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;
ckages/genimage.scm?id=39754503e83f5f50ee25a2bcbac41d5bc436f7aa'>gnu: genimage: Update to 14....Update genimage from version 11 to 14. A patch is required for the tests due to differences in ext tooling. * gnu/local.mk (dist_patch_DATA): Replace patch reference. * gnu/packages/genimage.scm: Update package source. * gnu/packages/patches/genimage-mke2fs-test.patch: New patch file. * gnu/packages/patches/genimage-signedness.patch: Delete obsolete patch. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Ryan Sundberg 2021-10-21gnu: genimage: Factorise substitutions....* gnu/packages/genimage.scm (genimage)[arguments]: Factorise input substitution for great line savings; also fun. Don't sneakily replace mkdosfs with mkfs.vfat. Remove obsolete fixes. Fix tests in their own 'fix-failing-tests phase. Don't explicitly return #t from any phases. Tobias Geerinckx-Rice