forked from OSchip/llvm-project
[Fuzzer] Set an explicit libc++ dependency when needed
On targets that don't link internal libc++ (Fuchsia and Linux) but use libc++ as their C++ library and libFuzzer is being built using the just built compiler together with libc++ as part of runtimes, we need an explicit dependency from libFuzzer object library to libc++ to make sure the headers are available by the time we start building libFuzzer. Differential Revision: https://reviews.llvm.org/D48261 llvm-svn: 334928
This commit is contained in:
parent
0d9da88d18
commit
068246886a
|
@ -38,6 +38,8 @@ if(OS_NAME MATCHES "Linux|Fuchsia" AND COMPILER_RT_LIBCXX_PATH)
|
|||
list(APPEND LIBFUZZER_CFLAGS -nostdinc++ -D_LIBCPP_ABI_VERSION=Fuzzer)
|
||||
# Remove -stdlib= which is unused when passing -nostdinc++.
|
||||
string(REGEX REPLACE "-stdlib=[a-zA-Z+]*" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||
elseif(CLANG_DEFAULT_CXX_STDLIB STREQUAL "libc++" AND (TARGET cxx OR HAVE_LIBCXX))
|
||||
set(LIBFUZZER_DEPS cxx)
|
||||
endif()
|
||||
|
||||
append_list_if(COMPILER_RT_HAS_OMIT_FRAME_POINTER_FLAG -fno-omit-frame-pointer LIBFUZZER_CFLAGS)
|
||||
|
@ -56,13 +58,15 @@ add_compiler_rt_object_libraries(RTfuzzer
|
|||
OS ${FUZZER_SUPPORTED_OS}
|
||||
ARCHS ${FUZZER_SUPPORTED_ARCH}
|
||||
SOURCES ${LIBFUZZER_SOURCES}
|
||||
CFLAGS ${LIBFUZZER_CFLAGS})
|
||||
CFLAGS ${LIBFUZZER_CFLAGS}
|
||||
DEPS ${LIBFUZZER_DEPS})
|
||||
|
||||
add_compiler_rt_object_libraries(RTfuzzer_main
|
||||
OS ${FUZZER_SUPPORTED_OS}
|
||||
ARCHS ${FUZZER_SUPPORTED_ARCH}
|
||||
SOURCES FuzzerMain.cpp
|
||||
CFLAGS ${LIBFUZZER_CFLAGS})
|
||||
CFLAGS ${LIBFUZZER_CFLAGS}
|
||||
DEPS ${LIBFUZZER_DEPS})
|
||||
|
||||
add_compiler_rt_runtime(clang_rt.fuzzer
|
||||
STATIC
|
||||
|
|
Loading…
Reference in New Issue