aboutsummaryrefslogtreecommitdiff
path: root/projects/lldb-eval
diff options
context:
space:
mode:
authorAndy Hippo <werat@google.com>2021-06-21 12:08:11 +0200
committerGitHub <noreply@github.com>2021-06-21 11:08:11 +0100
commitf43633e0ec989852cb646163cdaa46896efc7d64 (patch)
tree422d2837fc5eddb8a6c68d748399879f9315ead1 /projects/lldb-eval
parentd1abba28d9da8fb8b0061d802a0677a22663d63b (diff)
downloadoss-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.sh35
-rw-r--r--projects/lldb-eval/project.yaml1
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