diff --git a/infra/base-images/base-builder/compile b/infra/base-images/base-builder/compile index a516c45d7..24143a9a7 100755 --- a/infra/base-images/base-builder/compile +++ b/infra/base-images/base-builder/compile @@ -41,6 +41,11 @@ then export COVERAGE_FLAGS="${!COVERAGE_FLAGS_VAR}" fi +# Don't need coverage instrumentation for engine-less builds. +if [[ $FUZZING_ENGINE = "none" ]]; then + export COVERAGE_FLAGS= +fi + export CFLAGS="$CFLAGS $SANITIZER_FLAGS $COVERAGE_FLAGS" export CXXFLAGS="$CFLAGS $CXXFLAGS_EXTRA" diff --git a/projects/chakra/Dockerfile b/projects/chakra/Dockerfile new file mode 100644 index 000000000..27db5dbf6 --- /dev/null +++ b/projects/chakra/Dockerfile @@ -0,0 +1,22 @@ +# Copyright 2017 Google Inc. +# +# 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. +# +################################################################################ + +FROM gcr.io/oss-fuzz-base/base-builder +MAINTAINER ochang@google.com +RUN apt-get update && apt-get install -y build-essential cmake libicu-dev python +RUN git clone --depth 1 https://github.com/Microsoft/ChakraCore.git chakra +WORKDIR chakra +COPY build.sh $SRC/ diff --git a/projects/chakra/build.sh b/projects/chakra/build.sh new file mode 100755 index 000000000..bde4088c8 --- /dev/null +++ b/projects/chakra/build.sh @@ -0,0 +1,32 @@ +#!/bin/bash -eu +# Copyright 2017 Google Inc. +# +# 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. +# +################################################################################ + +DISABLED_WARNINGS='-Wno-everything' + +# Inject additional C/CXXFLAGS +cat < /usr/local/bin/cmake +#!/bin/sh +/usr/bin/cmake \\ + -DCMAKE_C_FLAGS="\$CFLAGS $DISABLED_WARNINGS" \\ + -DCMAKE_CXX_FLAGS="\$CXXFLAGS $DISABLED_WARNINGS" \\ + "\$@" +EOF + +chmod +x /usr/local/bin/cmake + +./build.sh --test-build --static --embed-icu --cc="$(which clang)" --cxx="$(which clang++)" -j -v -y +cp out/Test/ch $OUT diff --git a/projects/chakra/project.yaml b/projects/chakra/project.yaml new file mode 100644 index 000000000..f1afbe03f --- /dev/null +++ b/projects/chakra/project.yaml @@ -0,0 +1,6 @@ +homepage: "https://github.com/Microsoft/ChakraCore" +primary_contact: "ochang@google.com" # temporary +fuzzing_engines: + - none +sanitizers: + - address