diff options
author | Max Moroz <dor3s1@gmail.com> | 2019-01-24 13:27:15 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-24 13:27:15 -0800 |
commit | e2522df903189a36cc8e886c37aadc18fc238b6e (patch) | |
tree | bbe57f4c557fd9ff518dbeb955698f19ce67c315 /projects | |
parent | e43f9e186f2f5b3270471fc339433b7397d9bb82 (diff) |
[dav1d] Enable ASM code for non-MSan build configurations. (#2109)
Diffstat (limited to 'projects')
-rw-r--r-- | projects/dav1d/Dockerfile | 5 | ||||
-rwxr-xr-x | projects/dav1d/build.sh | 28 |
2 files changed, 30 insertions, 3 deletions
diff --git a/projects/dav1d/Dockerfile b/projects/dav1d/Dockerfile index b62620f7..e8f0cda3 100644 --- a/projects/dav1d/Dockerfile +++ b/projects/dav1d/Dockerfile @@ -16,10 +16,11 @@ FROM gcr.io/oss-fuzz-base/base-builder MAINTAINER janne-vlc@jannau.net -RUN apt-get update && apt-get install -y curl python3-pip && \ +RUN apt-get update && apt-get install -y curl python3-pip wget && \ pip3 install meson ninja +RUN wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.gz RUN curl --silent -O https://storage.googleapis.com/aom-test-data/fuzzer/dec_fuzzer_seed_corpus.zip RUN curl --silent -O https://jannau.net/dav1d_fuzzer_seed_corpus.zip RUN git clone --depth 1 https://code.videolan.org/videolan/dav1d.git dav1d WORKDIR dav1d -COPY build.sh $SRC/ +COPY build.sh fuzzer.options $SRC/ diff --git a/projects/dav1d/build.sh b/projects/dav1d/build.sh index 0fc6ea8c..1f74edf8 100755 --- a/projects/dav1d/build.sh +++ b/projects/dav1d/build.sh @@ -23,7 +23,32 @@ rm -rf ${build} mkdir -p ${build} # build library -meson -Dbuild_asm=false -Dbuild_tools=false -Dfuzzing_engine=oss-fuzz \ +BUILD_ASM="true" + +# MemorySanitizer may report false positives if used with asm code. +if [[ $CFLAGS = *sanitize=memory* ]] +then + BUILD_ASM="false" +else + # Build the specific nasm version without memory instrumentation. + pushd $SRC + + BUILD_DEPS="$SRC/build_deps" + mkdir -p $BUILD_DEPS + + tar xzf nasm-* + cd nasm-* + CFLAGS="" CXXFLAGS="" ./configure --prefix="$BUILD_DEPS" + make clean + make -j$(nproc) + make install + + export PATH="$BUILD_DEPS/bin:$PATH" + export LD_LIBRARY_PATH="$BUILD_DEPS/lib" + popd +fi + +meson -Dbuild_asm=$BUILD_ASM -Dbuild_tools=false -Dfuzzing_engine=oss-fuzz \ -Db_lundef=false -Ddefault_library=static -Dbuildtype=debugoptimized \ ${build} ninja -j $(nproc) -C ${build} @@ -39,4 +64,5 @@ cp $SRC/dec_fuzzer_seed_corpus.zip ${WORK}/tmp/seed_corpus.zip for fuzzer in $(find ${build} -name 'dav1d_fuzzer*'); do cp "${fuzzer}" $OUT/ cp ${WORK}/tmp/seed_corpus.zip $OUT/$(basename "$fuzzer")_seed_corpus.zip + cp $SRC/fuzzer.options $OUT/$(basename "$fuzzer").options done |