diff options
author | Tonko SabolĨec <tsabolcec@google.com> | 2021-07-08 19:23:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-08 18:23:07 +0100 |
commit | 3b5f88cbf17bbf6fc91408b1f5ae844ca243fc74 (patch) | |
tree | 8558ebce26b592094033a1fc3a86426aef52614f /projects/lldb-eval | |
parent | a2562cfa203e5b571b9145a710ceb9bf6d0e2cb6 (diff) | |
download | oss-fuzz-3b5f88cbf17bbf6fc91408b1f5ae844ca243fc74.tar.gz |
Add lldb vs lldb-eval fuzz target (#6013)
Diffstat (limited to 'projects/lldb-eval')
-rw-r--r-- | projects/lldb-eval/build.sh | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/projects/lldb-eval/build.sh b/projects/lldb-eval/build.sh index 95195c9e5..f21af7d60 100644 --- a/projects/lldb-eval/build.sh +++ b/projects/lldb-eval/build.sh @@ -54,25 +54,38 @@ then CXXFLAGS="$CXXFLAGS -fno-sanitize=function,vptr" fi +# Undefine NDEBUG to enable asserts. +export BAZEL_EXTRA_BUILD_FLAGS="--copt=-UNDEBUG" + # Run the build! bazel_build_fuzz_tests # OSS-Fuzz rule doesn't build data dependencies bazel build //testdata:fuzzer_binary_gen -# OSS-Fuzz rule doesn't package runfiles yet: -# https://github.com/bazelbuild/rules_fuzzing/issues/100 -mkdir -p $OUT/lldb_eval_libfuzzer_test.runfiles -# fuzzer_binary -mkdir -p $OUT/lldb_eval_libfuzzer_test.runfiles/lldb_eval/testdata -cp $SRC/lldb-eval/bazel-bin/testdata/fuzzer_binary $OUT/lldb_eval_libfuzzer_test.runfiles/lldb_eval/testdata/ -cp $SRC/lldb-eval/testdata/fuzzer_binary.cc $OUT/lldb_eval_libfuzzer_test.runfiles/lldb_eval/testdata/ -# lldb-server -mkdir -p $OUT/lldb_eval_libfuzzer_test.runfiles/llvm_project/bin -cp $SRC/llvm/bin/lldb-server $OUT/lldb_eval_libfuzzer_test.runfiles/llvm_project/bin/lldb-server - # OSS-Fuzz rule doesn't handle dynamic dependencies -# Copy liblldb.so and path RPATH of the fuzz target +# Copy liblldb.so mkdir -p $OUT/lib cp $SRC/llvm/lib/liblldb.so* $OUT/lib -patchelf --set-rpath '$ORIGIN/lib' $OUT/lldb_eval_libfuzzer_test + +# List of targets to fuzz. +TARGETS=( + lldb_eval_libfuzzer_test + lldb_vs_lldb_eval_libfuzzer_test +) + +# Preparation of each target. +for target in ${TARGETS[@]}; do + # OSS-Fuzz rule doesn't package runfiles yet: + # https://github.com/bazelbuild/rules_fuzzing/issues/100 + mkdir -p $OUT/$target.runfiles + # fuzzer_binary + mkdir -p $OUT/$target.runfiles/lldb_eval/testdata + cp $SRC/lldb-eval/bazel-bin/testdata/fuzzer_binary $OUT/$target.runfiles/lldb_eval/testdata/ + cp $SRC/lldb-eval/testdata/fuzzer_binary.cc $OUT/$target.runfiles/lldb_eval/testdata/ + # lldb-server + mkdir -p $OUT/$target.runfiles/llvm_project/bin + cp $SRC/llvm/bin/lldb-server $OUT/$target.runfiles/llvm_project/bin/lldb-server + # Patch RPATH of the fuzz target + patchelf --set-rpath '$ORIGIN/lib' $OUT/$target +done |