mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-30 12:07:34 +00:00
[libc++] Avoid including <semaphore.h> on Apple
It turns out that <semaphore.h> is not well-behaved, as it transitively includes <sys/param.h>, and that one defines several non-reserved macros that clash with some downstream projects in modular builds. For the time being, using <sys/semaphore.h> instead gives us the declarations we need without the macros. rdar://59744472
This commit is contained in:
parent
8594f3d899
commit
3b5530cf96
@ -26,7 +26,15 @@
|
||||
#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD)
|
||||
# include <pthread.h>
|
||||
# include <sched.h>
|
||||
// FIXME: On Apple, <semaphore.h> transitively includes <sys/param.h>, which
|
||||
// is not well behaved because it defines several macros. This causes
|
||||
// name collisions in some downstream projects. Instead, <sys/semaphore.h>
|
||||
// gives us the declarations we need without the bad stuff.
|
||||
#ifdef __APPLE__
|
||||
# include <sys/semaphore.h>
|
||||
#else
|
||||
# include <semaphore.h>
|
||||
#endif
|
||||
# ifdef __APPLE__
|
||||
# define _LIBCPP_NO_NATIVE_SEMAPHORES
|
||||
# endif
|
||||
|
Loading…
Reference in New Issue
Block a user