From 0c6012521164fdf4db13ee5d98517f8837e944f9 Mon Sep 17 00:00:00 2001 From: Eric Haszlakiewicz Date: Thu, 9 Apr 2020 02:34:59 +0000 Subject: [PATCH] Update the oss-fuzz build script to try to get it to work with cmake. --- fuzz/build.sh | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/fuzz/build.sh b/fuzz/build.sh index 30c3f77..b6a5cc7 100755 --- a/fuzz/build.sh +++ b/fuzz/build.sh @@ -15,16 +15,38 @@ # ################################################################################ -./autogen.sh -./configure --enable-static --disable-shared -make -j$(nproc) all -ar rc json_c.a *.o +# This should be run from the top of the json-c source tree. -cp $SRC/*.dict $OUT/ +mkdir build +cd build +cmake -DBUILD_SHARED_LIBS=OFF .. +make -j$(nproc) +LIB=$(pwd)/libjson-c.a +cd .. + +# These seem to be set externally, but let's assign defaults to +# make it possible to at least partially test this standalone. +: ${SRC:=$(dirname "$0")} +: ${OUT:=$SRC/out} +: ${CXX:=gcc} +: ${CXXFLAGS:=} + +[ -d "$OUT" ] || mkdir "$OUT" +cp $SRC/*.dict $OUT/. + +# XXX this doesn't seem to make much sense, since $SRC is presumably +# the "fuzz" directory, which is _inside_ the json-c repo, rather than +# the other way around, but I'm just preserving existing behavior. -erh +INCS=$SRC/json-c +# Compat when testing standalone +[ -e "${INCS}" ] || ln -s .. "${INCS}" + +set -x +set -v for f in $SRC/*_fuzzer.cc; do fuzzer=$(basename "$f" _fuzzer.cc) - $CXX $CXXFLAGS -std=c++11 -I$SRC/json-c \ + $CXX $CXXFLAGS -std=c++11 -I$INCS \ $SRC/${fuzzer}_fuzzer.cc -o $OUT/${fuzzer}_fuzzer \ - -lFuzzingEngine $SRC/json-c/json_c.a + -lFuzzingEngine $LIB done -- 2.50.1