From bcfd36c3a1ae94f90a48909e41d16c7a50eb117b Mon Sep 17 00:00:00 2001 From: DavidKorczynski Date: Thu, 18 Nov 2021 16:03:30 +0000 Subject: [PATCH] rustls: fix coverage build (#6852) * rustls: fix coverage build * rustls: copy over the py script --- projects/rustls/Dockerfile | 8 ++++++++ projects/rustls/build.sh | 8 ++++++++ projects/rustls/rustc.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 projects/rustls/rustc.py diff --git a/projects/rustls/Dockerfile b/projects/rustls/Dockerfile index 361e30a3d..26d56771c 100644 --- a/projects/rustls/Dockerfile +++ b/projects/rustls/Dockerfile @@ -16,9 +16,17 @@ FROM gcr.io/oss-fuzz-base/base-builder-rust RUN apt-get update && apt-get install -y make autoconf automake libtool curl cmake python llvm-dev libclang-dev clang +RUN apt-get --yes update \ + && apt-get install --no-install-recommends --yes \ + libssl-dev \ + pkg-config \ + python \ + && apt-get clean \ + && rm --recursive --force /var/lib/apt/lists/* RUN git clone https://github.com/ctz/rustls WORKDIR $SRC COPY build.sh $SRC/ +COPY *.py $SRC/ diff --git a/projects/rustls/build.sh b/projects/rustls/build.sh index 1f16177d2..3e05fe4d0 100755 --- a/projects/rustls/build.sh +++ b/projects/rustls/build.sh @@ -15,6 +15,14 @@ # ################################################################################ +if [ "$SANITIZER" = "coverage" ] +then + export RUSTFLAGS="$RUSTFLAGS -C debug-assertions=no" + chmod +x $SRC/rustc.py + export RUSTC="$SRC/rustc.py" + export CFLAGS="" +fi + cd $SRC/rustls cargo fuzz build -O cp fuzz/target/x86_64-unknown-linux-gnu/release/client $OUT/ diff --git a/projects/rustls/rustc.py b/projects/rustls/rustc.py new file mode 100644 index 000000000..55ce4c40a --- /dev/null +++ b/projects/rustls/rustc.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +# Copyright 2021 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import subprocess + +#Disable coverage for troubling crates. +sys.argv[0] = "rustc" +if "tokio_util" in sys.argv or "hyper" in sys.argv: + try: + sys.argv.remove("-Zinstrument-coverage") + except: + pass + print(sys.argv) +subprocess.call(sys.argv)