diff options
author | Andy Hippo <werat@google.com> | 2021-06-21 12:08:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-21 11:08:11 +0100 |
commit | f43633e0ec989852cb646163cdaa46896efc7d64 (patch) | |
tree | 422d2837fc5eddb8a6c68d748399879f9315ead1 /projects/lldb-eval | |
parent | d1abba28d9da8fb8b0061d802a0677a22663d63b (diff) | |
download | oss-fuzz-f43633e0ec989852cb646163cdaa46896efc7d64.tar.gz |
[lldb-eval] Upgrade to LLVM-12 and enable undefined sanitizer (#5952)
* Upgrade to LLVM-12 and enable undefined sanitizer (#1)
* Upgrade to LLVM-12
* Enable undefined sanitizer
* Fix missing scope
Diffstat (limited to 'projects/lldb-eval')
-rw-r--r-- | projects/lldb-eval/build.sh | 35 | ||||
-rw-r--r-- | projects/lldb-eval/project.yaml | 1 |
2 files changed, 27 insertions, 9 deletions
diff --git a/projects/lldb-eval/build.sh b/projects/lldb-eval/build.sh index 88034525b..95195c9e5 100644 --- a/projects/lldb-eval/build.sh +++ b/projects/lldb-eval/build.sh @@ -17,19 +17,29 @@ ( cd $SRC/ -GITHUB_RELEASE="https://github.com/google/lldb-eval/releases/download/oss-fuzz-llvm-11" - -wget --quiet $GITHUB_RELEASE/llvm-11.1.0-source.tar.gz -tar -xzf llvm-11.1.0-source.tar.gz - -wget --quiet $GITHUB_RELEASE/llvm-11.1.0-x86_64-linux-release-genfiles.tar.gz -tar -xzf llvm-11.1.0-x86_64-linux-release-genfiles.tar.gz +GITHUB_RELEASE="https://github.com/google/lldb-eval/releases/download/oss-fuzz-llvm-12" if [ "$SANITIZER" = "address" ] then - LLVM_ARCHIVE="llvm-11.1.0-x86_64-linux-release-address.tar.gz" + LLVM_ARCHIVE="llvm-12.0.1-x86_64-linux-release-address.tar.gz" +elif [ "$SANITIZER" = "memory" ] +then + LLVM_ARCHIVE="llvm-12.0.1-x86_64-linux-release-memory.tar.gz" +elif [ "$SANITIZER" = "undefined" ] +then + LLVM_ARCHIVE="llvm-12.0.1-x86_64-linux-release.tar.gz" +elif [ "$SANITIZER" = "coverage" ] +then + # For coverage we also need the original source code. + wget --quiet $GITHUB_RELEASE/llvm-12.0.1-source.tar.gz + tar -xzf llvm-12.0.1-source.tar.gz + wget --quiet $GITHUB_RELEASE/llvm-12.0.1-x86_64-linux-release-genfiles.tar.gz + tar -xzf llvm-12.0.1-x86_64-linux-release-genfiles.tar.gz + + LLVM_ARCHIVE="llvm-12.0.1-x86_64-linux-release.tar.gz" else - LLVM_ARCHIVE="llvm-11.1.0-x86_64-linux-release-coverage.tar.gz" + echo "Unknown sanitizer: $SANITIZER" + exit 1 fi wget --quiet $GITHUB_RELEASE/$LLVM_ARCHIVE @@ -37,6 +47,13 @@ mkdir -p llvm && tar -xzf $LLVM_ARCHIVE --strip-components 1 -C llvm ) export LLVM_INSTALL_PATH=$SRC/llvm +if [ "$SANITIZER" = "undefined" ] +then + # Disable vptr because it's not allowed with '-fno-rtti' + CFLAGS="$CFLAGS -fno-sanitize=function,vptr" + CXXFLAGS="$CXXFLAGS -fno-sanitize=function,vptr" +fi + # Run the build! bazel_build_fuzz_tests diff --git a/projects/lldb-eval/project.yaml b/projects/lldb-eval/project.yaml index 63969bc62..8568e7522 100644 --- a/projects/lldb-eval/project.yaml +++ b/projects/lldb-eval/project.yaml @@ -8,3 +8,4 @@ fuzzing_engines: - libfuzzer sanitizers: - address + - undefined |