mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-24 20:29:39 +08:00
[libcxx] Fix gcc builds.
Step around a gcc pre-processor defect which causes it to fail to parse the __has_include macro check. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@281310 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -19,9 +19,20 @@
|
|||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_THREADS
|
#ifndef _LIBCPP_HAS_NO_THREADS
|
||||||
|
|
||||||
#if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL) && (!defined(__has_include) || __has_include(<__external_threading>))
|
// These checks are carefully arranged so as not to trigger a gcc pre-processor
|
||||||
|
// defect which causes it to fail to parse the __has_include check below, the
|
||||||
|
// redundancy is intentional.
|
||||||
|
#if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL)
|
||||||
|
#if !defined(__clang__) && (_GNUC_VER < 500)
|
||||||
#include <__external_threading>
|
#include <__external_threading>
|
||||||
#else
|
#define _LIBCPP_EXTERNAL_THREADING
|
||||||
|
#elif !defined(__has_include) || __has_include(<__external_threading>)
|
||||||
|
#include <__external_threading>
|
||||||
|
#define _LIBCPP_EXTERNAL_THREADING
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(_LIBCPP_EXTERNAL_THREADING)
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <sched.h>
|
#include <sched.h>
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user