forked from OSchip/llvm-project
Revert "[clang-fuzzer] Allow building without coverage instrumentation."
This reverts r315336 due to build breakage with gcc. http://lab.llvm.org:8011/builders/ubuntu-gcc7.1-werror/builds/2173 llvm-svn: 315355
This commit is contained in:
parent
12db383e20
commit
51e4481cfe
|
@ -1,66 +1,60 @@
|
|||
set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} FuzzMutate)
|
||||
set(CXX_FLAGS_NOFUZZ ${CMAKE_CXX_FLAGS})
|
||||
set(DUMMY_MAIN DummyClangFuzzer.cpp)
|
||||
if(LLVM_USE_SANITIZE_COVERAGE)
|
||||
if( LLVM_USE_SANITIZE_COVERAGE )
|
||||
set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD})
|
||||
set(CXX_FLAGS_NOFUZZ "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer-no-link")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer")
|
||||
set(CXX_FLAGS_NOFUZZ "${CXX_FLAGS_NOFUZZ} -fsanitize=fuzzer-no-link")
|
||||
unset(DUMMY_MAIN)
|
||||
endif()
|
||||
|
||||
# Hack to bypass LLVM's cmake sources check and allow multiple libraries and
|
||||
# executables from this directory.
|
||||
set(LLVM_OPTIONAL_SOURCES
|
||||
ClangFuzzer.cpp
|
||||
DummyClangFuzzer.cpp
|
||||
ExampleClangProtoFuzzer.cpp
|
||||
)
|
||||
if(CLANG_ENABLE_PROTO_FUZZER)
|
||||
# Create protobuf .h and .cc files, and put them in a library for use by
|
||||
# clang-proto-fuzzer components.
|
||||
find_package(Protobuf REQUIRED)
|
||||
add_definitions(-DGOOGLE_PROTOBUF_NO_RTTI)
|
||||
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS cxx_proto.proto)
|
||||
# Hack to bypass LLVM's cmake sources check and allow multiple libraries and
|
||||
# executables from this directory.
|
||||
set(LLVM_OPTIONAL_SOURCES
|
||||
ClangFuzzer.cpp
|
||||
ExampleClangProtoFuzzer.cpp
|
||||
${PROTO_SRCS}
|
||||
)
|
||||
add_clang_library(clangCXXProto
|
||||
${PROTO_SRCS}
|
||||
${PROTO_HDRS}
|
||||
|
||||
if(CLANG_ENABLE_PROTO_FUZZER)
|
||||
# Create protobuf .h and .cc files, and put them in a library for use by
|
||||
# clang-proto-fuzzer components.
|
||||
find_package(Protobuf REQUIRED)
|
||||
add_definitions(-DGOOGLE_PROTOBUF_NO_RTTI)
|
||||
include_directories(${PROTOBUF_INCLUDE_DIRS})
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS cxx_proto.proto)
|
||||
set(LLVM_OPTIONAL_SOURCES ${LLVM_OPTIONAL_SOURCES} ${PROTO_SRCS})
|
||||
add_clang_library(clangCXXProto
|
||||
${PROTO_SRCS}
|
||||
${PROTO_HDRS}
|
||||
LINK_LIBS
|
||||
${PROTOBUF_LIBRARIES}
|
||||
)
|
||||
|
||||
LINK_LIBS
|
||||
${PROTOBUF_LIBRARIES}
|
||||
# Build and include libprotobuf-mutator
|
||||
include(ProtobufMutator)
|
||||
include_directories(${ProtobufMutator_INCLUDE_DIRS})
|
||||
|
||||
# Build the protobuf->C++ translation library and driver.
|
||||
add_clang_subdirectory(proto-to-cxx)
|
||||
|
||||
# Build the protobuf fuzzer
|
||||
add_clang_executable(clang-proto-fuzzer ExampleClangProtoFuzzer.cpp)
|
||||
target_link_libraries(clang-proto-fuzzer
|
||||
${ProtobufMutator_LIBRARIES}
|
||||
clangCXXProto
|
||||
clangHandleCXX
|
||||
clangProtoToCXX
|
||||
)
|
||||
else()
|
||||
# Hack to bypass LLVM's cmake sources check and allow multiple libraries and
|
||||
# executables from this directory.
|
||||
set(LLVM_OPTIONAL_SOURCES ClangFuzzer.cpp ExampleClangProtoFuzzer.cpp)
|
||||
endif()
|
||||
|
||||
add_clang_subdirectory(handle-cxx)
|
||||
|
||||
add_clang_executable(clang-fuzzer
|
||||
EXCLUDE_FROM_ALL
|
||||
ClangFuzzer.cpp
|
||||
)
|
||||
|
||||
# Build and include libprotobuf-mutator
|
||||
include(ProtobufMutator)
|
||||
include_directories(${ProtobufMutator_INCLUDE_DIRS})
|
||||
|
||||
# Build the protobuf->C++ translation library and driver.
|
||||
add_clang_subdirectory(proto-to-cxx)
|
||||
|
||||
# Build the protobuf fuzzer
|
||||
add_clang_executable(clang-proto-fuzzer
|
||||
${DUMMY_MAIN}
|
||||
ExampleClangProtoFuzzer.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(clang-proto-fuzzer
|
||||
${ProtobufMutator_LIBRARIES}
|
||||
clangCXXProto
|
||||
target_link_libraries(clang-fuzzer
|
||||
clangHandleCXX
|
||||
clangProtoToCXX
|
||||
)
|
||||
endif()
|
||||
|
||||
add_clang_subdirectory(handle-cxx)
|
||||
|
||||
add_clang_executable(clang-fuzzer
|
||||
EXCLUDE_FROM_ALL
|
||||
${DUMMY_MAIN}
|
||||
ClangFuzzer.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(clang-fuzzer
|
||||
clangHandleCXX
|
||||
)
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
|
||||
using namespace clang_fuzzer;
|
||||
|
||||
extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) { return 0; }
|
||||
|
||||
extern "C" int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) {
|
||||
std::string s((const char *)data, size);
|
||||
HandleCXX(s, {"-O2"});
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
//===-- DummyClangFuzzer.cpp - Entry point to sanity check fuzzers --------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// Provides a main() to build without linking libFuzzer.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
#include "llvm/FuzzMutate/FuzzerCLI.h"
|
||||
|
||||
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size);
|
||||
extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv);
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
return llvm::runFuzzerOnInputs(argc, argv, LLVMFuzzerTestOneInput,
|
||||
LLVMFuzzerInitialize);
|
||||
}
|
Loading…
Reference in New Issue