Fix assertion failure in libsanitizer when using glibc 2.31 and later. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92154 https://reviews.llvm.org/D69104 Adapted from these upstream revision: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=277981 https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=279653 diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc index 069d8d557de..c49c28c6e07 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +++ b/libsanitizer/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/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h index 304d04e3935..6dee89c97e1 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h @@ -207,20 +207,13 @@ namespace __sanitizer { unsigned long __unused1; unsigned long __unused2; #elif defined(__sparc__) -# if defined(__arch64__) unsigned mode; - unsigned short __pad1; -# else - unsigned short __pad1; - unsigned short mode; unsigned short __pad2; -# endif unsigned short __seq; unsigned long long __unused1; unsigned long long __unused2; #else - unsigned short mode; - unsigned short __pad1; + unsigned int mode; unsigned short __seq; unsigned short __pad2; #if defined(__x86_64__) && !defined(_LP64) 15dda0e02fb6'>root/build-aux/hydra
AgeCommit message (Expand)Author
2019-01-06hydra: Compute jobs in an inferior....Previously we would rely on auto-compilation of all the Guix modules. The complete evaluation would take ~15mn on berlin.guixsd.org and require lots of RAM. This approach should be faster since potentially only part of the modules are rebuilt. Furthermore, as a side-effect, it builds the derivations that 'guix pull' uses. * build-aux/hydra/gnu-system.scm: Remove 'eval-when' form. (hydra-jobs): New procedure. * gnu/ci.scm (package->alist, qemu-jobs, system-test-jobs) (tarball-jobs): Return strings for the 'license' field. * guix/self.scm (compiled-guix)[*cli-modules*]: Add (gnu ci). Ludovic Courtès
2019-01-06hydra: evaluate: Add the checkout to the store....* build-aux/hydra/evaluate.scm <top level>: Add call to 'add-to-store'. Use that as the 'file-name' attribute. Call 'primitive-load' in a directory excursion to SOURCE. Ludovic Courtès
2019-01-06hydra: Move job definitions to (gnu ci)....* build-aux/hydra/gnu-system.scm: Move code to... * gnu/ci.scm: ... here. New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Ludovic Courtès
2018-12-29hydra: Use short timeouts for the QEMU jobs and system tests....These builds shouldn't take too long. Sometimes the guest kernel crashes and the VM gets stuck; we should be able to terminate those jobs quickly. * build-aux/hydra/gnu-system.scm (qemu-jobs)[->alist]: Add 'max-silent-time' and 'timeout'. (system-test-jobs)[test->thunk]: Likewise. Ludovic Courtès
2018-12-09hydra: Increase image sizes for USB image and Flash image....* build-aux/hydra/gnu-system.scm (qemu-jobs) <usb-image>: Increase from 1024 MiB to 1500 MiB. <flash-image>: Increase from 1024 MiB to 1500 MiB. Danny Milosavljevic