From 24d1a4562b36ecfcd7a6b3b843921d553332a0f0 Mon Sep 17 00:00:00 2001 From: Arseny Kapoulkine Date: Mon, 3 Apr 2017 21:09:37 -0700 Subject: Move libFuzzer build to Makefile Now the only thing fuzz_setup.sh does is installing new clang; if system clang supports -fsanitize-coverage then fuzz_setup.sh is not required. --- Makefile | 9 +++++++-- tests/fuzz_setup.sh | 3 --- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 75528fe..edc3c42 100644 --- a/Makefile +++ b/Makefile @@ -86,9 +86,14 @@ build/pugixml-%: .FORCE | $(RELEASE) $(EXECUTABLE): $(OBJECTS) $(CXX) $(OBJECTS) $(LDFLAGS) -o $@ -$(BUILD)/fuzz_%: tests/fuzz_%.cpp src/pugixml.cpp +build/libFuzzer.o: + svn co http://llvm.org/svn/llvm-project/llvm/trunk/lib/Fuzzer build/Fuzzer + ls build/Fuzzer/*.cpp | xargs printf '#include "%s"\n' >build/libFuzzer.cpp + clang++ build/libFuzzer.cpp -c -g -O2 -fno-omit-frame-pointer -std=c++11 -I . -o build/libFuzzer.o + +$(BUILD)/fuzz_%: tests/fuzz_%.cpp src/pugixml.cpp build/libFuzzer.o @mkdir -p $(BUILD) - clang++ $(CXXFLAGS) -fsanitize=address -fsanitize-coverage=trace-pc-guard $^ libFuzzer.a -o $@ + clang++ $(CXXFLAGS) -fsanitize=address -fsanitize-coverage=trace-pc-guard $^ -o $@ $(BUILD)/%.o: % @mkdir -p $(dir $@) diff --git a/tests/fuzz_setup.sh b/tests/fuzz_setup.sh index 5ff8be0..b8ba32d 100755 --- a/tests/fuzz_setup.sh +++ b/tests/fuzz_setup.sh @@ -9,6 +9,3 @@ cd .. clang/clang/scripts/update.py sudo cp -rf third_party/llvm-build/Release+Asserts/lib/* /usr/local/lib/ sudo cp -rf third_party/llvm-build/Release+Asserts/bin/* /usr/local/bin - -svn co http://llvm.org/svn/llvm-project/llvm/trunk/lib/Fuzzer -Fuzzer/build.sh -- cgit v1.2.3