Commit 761a3a95 by Tamar Christina Committed by Tamar Christina

Arm: Fix arm libsanitizer bootstrap failure

Glibc has recently introduced changed to the mode field in ipc_perm
in commit 2f959dfe849e0646e27403f2e4091536496ac0f0. For Arm this
means that the mode field no longer has the same size.

This causes an assert failure against libsanitizer's internal copy
of ipc_perm.  Since this change can't be easily detected I am adding
arm to the list of targets that are excluded from this check.  libsanitizer
doesn't use this field (and others, it in fact uses only 1 field) so this check
can be ignored.

Padding bits were used by glibc when the field was changed so sizeof and offsets
of the remaining fields should be the same.

libsanitizer/ChangeLog:

	PR sanitizer/92154
	* sanitizer_common/sanitizer_platform_limits_posix.cpp (defined):
	Cherry-pick compiler-rt revision r375220.

From-SVN: r277291
parent 2e30cb83
2019-10-22 Tamar Christina <tamar.christina@arm.com>
PR sanitizer/92154
* sanitizer_common/sanitizer_platform_limits_posix.cpp:
Cherry-pick compiler-rt revision r375220.
2019-09-27 Maciej W. Rozycki <macro@wdc.com> 2019-09-27 Maciej W. Rozycki <macro@wdc.com>
* configure: Regenerate. * configure: Regenerate.
......
...@@ -1126,8 +1126,12 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); ...@@ -1126,8 +1126,12 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
CHECK_SIZE_AND_OFFSET(ipc_perm, gid); CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) #if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \
!defined(__arm__)
/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ /* 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. */
CHECK_SIZE_AND_OFFSET(ipc_perm, mode); CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment