forked from OSchip/llvm-project
Fix libstdc++ failure where <atomic> is not able to be imported on Darwin systems.
The adding of <atomic> to test_common.h broke 12 tests on Darwin. We work around this by not including <atomic> when building on darwin for libstdc++ tests. llvm-svn: 269372
This commit is contained in:
parent
a9f3e908bf
commit
ff8e6a763f
|
@ -1,6 +1,7 @@
|
|||
LEVEL = ../../../make
|
||||
|
||||
CXX_SOURCES := main.cpp
|
||||
USE_LIBSTDCPP := 1
|
||||
|
||||
# clang-3.5+ outputs FullDebugInfo by default for Darwin/FreeBSD
|
||||
# targets. Other targets do not, which causes this test to fail.
|
||||
|
@ -12,8 +13,3 @@ endif
|
|||
include $(LEVEL)/Makefile.rules
|
||||
|
||||
CXXFLAGS += -O0
|
||||
|
||||
ifeq (,$(findstring gcc,$(CC)))
|
||||
CXXFLAGS += -stdlib=libstdc++
|
||||
LDFLAGS += -stdlib=libstdc++
|
||||
endif
|
||||
|
|
|
@ -306,7 +306,7 @@ endif
|
|||
ifeq (1,$(USE_LIBSTDCPP))
|
||||
# Clang requires an extra flag: -stdlib=libstdc++
|
||||
ifneq (,$(findstring clang,$(CC)))
|
||||
CXXFLAGS += -stdlib=libstdc++
|
||||
CXXFLAGS += -stdlib=libstdc++ -DLLDB_USING_LIBSTDCPP
|
||||
LDFLAGS += -stdlib=libstdc++
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -43,6 +43,13 @@
|
|||
|
||||
#endif
|
||||
|
||||
#if defined(__APPLE__) && defined(LLDB_USING_LIBSTDCPP)
|
||||
|
||||
// on Darwin, libstdc++ is missing <atomic>, so this would cause any test to fail building
|
||||
// since this header file is being included in every C-family test case, we need to not include it
|
||||
// on Darwin, most tests use libc++ by default, so this will only affect tests that explicitly require libstdc++
|
||||
|
||||
#else
|
||||
#ifdef __cplusplus
|
||||
#include <atomic>
|
||||
|
||||
|
@ -65,3 +72,4 @@ typedef std::atomic<int> pseudo_barrier_t;
|
|||
(barrier) = (count); \
|
||||
} while (0)
|
||||
#endif // __cplusplus
|
||||
#endif // defined(__APPLE__) && defined(LLDB_USING_LIBSTDCPP)
|
||||
|
|
Loading…
Reference in New Issue