From d61ed91ece9664bb57afe5766fef573a9a2d9944 Mon Sep 17 00:00:00 2001 From: Maxim Ostapenko Date: Wed, 30 Nov 2016 12:31:07 +0000 Subject: [PATCH] re PR sanitizer/78532 (libsanitizer fails to build on sparc64-linux-gnu) PR sanitizer/78532 * sanitizer_common/sanitizer_platform_limits_posix.h (__sanitizer_sigaction): Adjust for sparc targets and various Glibc versions. From-SVN: r243014 --- libsanitizer/ChangeLog | 7 +++++++ .../sanitizer_platform_limits_posix.h | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index 5fe324af3b1..e691f67b483 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,3 +1,10 @@ +2016-11-30 Maxim Ostapenko + + PR sanitizer/78532 + * sanitizer_common/sanitizer_platform_limits_posix.h + (__sanitizer_sigaction): Adjust for sparc targets and various Glibc + versions. + 2016-11-29 Markus Trippelsdorf * LOCAL_PATCHES: Remove r242480. diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h index d1a30516997..066bf41ffef 100644 --- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h @@ -25,6 +25,10 @@ # define GET_LINK_MAP_BY_DLOPEN_HANDLE(handle) ((link_map*)(handle)) #endif // !SANITIZER_FREEBSD +#ifndef __GLIBC_PREREQ +#define __GLIBC_PREREQ(x, y) 0 +#endif + namespace __sanitizer { extern unsigned struct_utsname_sz; extern unsigned struct_stat_sz; @@ -628,7 +632,14 @@ namespace __sanitizer { #endif #ifndef __mips__ #if defined(__sparc__) +#if __GLIBC_PREREQ (2, 20) + // On sparc glibc 2.19 and earlier sa_flags was unsigned long, and + // __glibc_reserved0 didn't exist. + int __glibc_reserved0; + int sa_flags; +#else unsigned long sa_flags; +#endif #else int sa_flags; #endif -- 2.30.2