Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_getauxval.h =================================================================== --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_getauxval.h +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_getauxval.h @@ -17,15 +17,10 @@ #define SANITIZER_GETAUXVAL_H #include "sanitizer_platform.h" +#include "sanitizer_glibc_version.h" #if SANITIZER_LINUX || SANITIZER_FUCHSIA -# include - -# ifndef __GLIBC_PREREQ -# define __GLIBC_PREREQ(x, y) 0 -# endif - # if __GLIBC_PREREQ(2, 16) || (SANITIZER_ANDROID && __ANDROID_API__ >= 21) || \ SANITIZER_FUCHSIA # define SANITIZER_USE_GETAUXVAL 1 Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_glibc_version.h =================================================================== --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_glibc_version.h +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_glibc_version.h @@ -0,0 +1,26 @@ +//===-- sanitizer_glibc_version.h -----------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file is a part of Sanitizer common code. +// +//===----------------------------------------------------------------------===// + +#ifndef SANITIZER_GLIBC_VERSION_H +#define SANITIZER_GLIBC_VERSION_H + +#include "sanitizer_platform.h" + +#if SANITIZER_LINUX || SANITIZER_FUCHSIA +#include +#endif + +#ifndef __GLIBC_PREREQ +#define __GLIBC_PREREQ(x, y) 0 +#endif + +#endif Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cpp =================================================================== --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cpp +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux_libcdep.cpp @@ -23,6 +23,7 @@ #include "sanitizer_flags.h" #include "sanitizer_freebsd.h" #include "sanitizer_getauxval.h" +#include "sanitizer_glibc_version.h" #include "sanitizer_linux.h" #include "sanitizer_placement_new.h" #include "sanitizer_procmaps.h" @@ -188,11 +189,7 @@ static uptr g_tls_size; #ifdef __i386__ -# ifndef __GLIBC_PREREQ -# define CHECK_GET_TLS_STATIC_INFO_VERSION 1 -# else -# define CHECK_GET_TLS_STATIC_INFO_VERSION (!__GLIBC_PREREQ(2, 27)) -# endif +# define CHECK_GET_TLS_STATIC_INFO_VERSION (!__GLIBC_PREREQ(2, 27)) #else # define CHECK_GET_TLS_STATIC_INFO_VERSION 0 #endif Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h =================================================================== --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h @@ -19,12 +19,13 @@ #include "sanitizer_internal_defs.h" #include "sanitizer_platform.h" -# define GET_LINK_MAP_BY_DLOPEN_HANDLE(handle) ((link_map*)(handle)) - -#ifndef __GLIBC_PREREQ -#define __GLIBC_PREREQ(x, y) 0 +#if defined(__sparc__) +// FIXME: This can't be included from tsan which does not support sparc yet. +#include "sanitizer_glibc_version.h" #endif +# define GET_LINK_MAP_BY_DLOPEN_HANDLE(handle) ((link_map*)(handle)) + namespace __sanitizer { extern unsigned struct_utsname_sz; extern unsigned struct_stat_sz; Index: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp =================================================================== --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp @@ -22,6 +22,10 @@ #ifdef _FILE_OFFSET_BITS #undef _FILE_OFFSET_BITS #endif + +// Must go after undef _FILE_OFFSET_BITS. +#include "sanitizer_glibc_version.h" + #include #include #include @@ -1005,10 +1009,6 @@ CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_level); CHECK_SIZE_AND_OFFSET(cmsghdr, cmsg_type); -#ifndef __GLIBC_PREREQ -#define __GLIBC_PREREQ(x, y) 0 -#endif - #if SANITIZER_LINUX && (__ANDROID_API__ >= 21 || __GLIBC_PREREQ (2, 14)) CHECK_TYPE_SIZE(mmsghdr); CHECK_SIZE_AND_OFFSET(mmsghdr, msg_hdr);