backport: re PR sanitizer/92154 (new glibc breaks arm bootstrap due to libsanitizer)

Backported from mainline
	2019-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/92154
	* sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick
	llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce.
	* sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.

From-SVN: r279653
This commit is contained in:
Jakub Jelinek 2019-12-20 17:58:35 +01:00 committed by Jakub Jelinek
parent 3981df84e9
commit 75003cdd23
3 changed files with 14 additions and 20 deletions

View File

@ -1,3 +1,13 @@
2019-12-20 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2019-11-26 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/92154
* sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick
llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce.
* sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise.
2019-11-08 Jakub Jelinek <jakub@redhat.com>
Backported from mainline

View File

@ -1156,12 +1156,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)) && \
!defined(__arm__)
/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
/* On Arm glibc 2.31 and later provide a different mode field, this field is
never used by libsanitizer so we can simply ignore this assert for all glibc
versions. */
#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

View File

@ -211,26 +211,13 @@ namespace __sanitizer {
u64 __unused1;
u64 __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;
#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
unsigned int mode;
unsigned short __seq;
unsigned short __pad1;
unsigned long __unused1;
unsigned long __unused2;
#else
unsigned short mode;
unsigned short __pad1;
unsigned int mode;
unsigned short __seq;
unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)