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

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

From-SVN: r278722
This commit is contained in:
Jakub Jelinek 2019-11-26 10:08:31 +01:00 committed by Jakub Jelinek
parent 754f54aa01
commit 4abc46b51a
3 changed files with 11 additions and 19 deletions

View File

@ -1,3 +1,10 @@
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.cpp: Likewise.
2019-11-20 Martin Liska <mliska@suse.cz>
* libtool-version: Remove.

View File

@ -1128,11 +1128,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 newer glibc provide a different mode field, it's hard to detect
so just disable the check. */
#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

@ -207,26 +207,13 @@ struct __sanitizer_ipc_perm {
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)