forked from OSchip/llvm-project
libcxx: Stop providing a definition of __GLIBC_PREREQ.
An application may determine whether the C standard library is glibc by testing whether __GLIBC_PREREQ is defined. This breaks if libc++ provides its own definition. Instead, define our own macro in our namespace with the desired semantics. Differential Revision: https://reviews.llvm.org/D41892 llvm-svn: 322201
This commit is contained in:
parent
b42ffa1283
commit
4566d827a1
|
@ -184,9 +184,11 @@
|
||||||
// Need to detect which libc we're using if we're on Linux.
|
// Need to detect which libc we're using if we're on Linux.
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
#if !defined(__GLIBC_PREREQ)
|
#if defined(__GLIBC_PREREQ)
|
||||||
#define __GLIBC_PREREQ(a, b) 0
|
#define _LIBCPP_GLIBC_PREREQ(a, b) __GLIBC_PREREQ(a, b)
|
||||||
#endif // !defined(__GLIBC_PREREQ)
|
#else
|
||||||
|
#define _LIBCPP_GLIBC_PREREQ(a, b) 0
|
||||||
|
#endif // defined(__GLIBC_PREREQ)
|
||||||
#endif // defined(__linux__)
|
#endif // defined(__linux__)
|
||||||
|
|
||||||
#ifdef __LITTLE_ENDIAN__
|
#ifdef __LITTLE_ENDIAN__
|
||||||
|
@ -416,10 +418,10 @@ typedef __char32_t char32_t;
|
||||||
#define _LIBCPP_HAS_C11_FEATURES
|
#define _LIBCPP_HAS_C11_FEATURES
|
||||||
#elif defined(__linux__)
|
#elif defined(__linux__)
|
||||||
#if !defined(_LIBCPP_HAS_MUSL_LIBC)
|
#if !defined(_LIBCPP_HAS_MUSL_LIBC)
|
||||||
#if __GLIBC_PREREQ(2, 15) || defined(__BIONIC__)
|
#if _LIBCPP_GLIBC_PREREQ(2, 15) || defined(__BIONIC__)
|
||||||
#define _LIBCPP_HAS_QUICK_EXIT
|
#define _LIBCPP_HAS_QUICK_EXIT
|
||||||
#endif
|
#endif
|
||||||
#if __GLIBC_PREREQ(2, 17)
|
#if _LIBCPP_GLIBC_PREREQ(2, 17)
|
||||||
#define _LIBCPP_HAS_C11_FEATURES
|
#define _LIBCPP_HAS_C11_FEATURES
|
||||||
#endif
|
#endif
|
||||||
#else // defined(_LIBCPP_HAS_MUSL_LIBC)
|
#else // defined(_LIBCPP_HAS_MUSL_LIBC)
|
||||||
|
|
Loading…
Reference in New Issue