Hash :
b7f30bae
Author :
Date :
2024-05-28T22:26:18
fuzz: Fix aarch64 build on OSS-Fuzz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
#!/bin/bash -eu
# OSS-Fuzz integration, see
# https://github.com/google/oss-fuzz/tree/master/projects/libxml2
# Add extra UBSan checks
if [ "$SANITIZER" = undefined ]; then
extra_checks="integer,float-divide-by-zero"
extra_cflags="-fsanitize=$extra_checks -fno-sanitize-recover=$extra_checks"
export CFLAGS="$CFLAGS $extra_cflags"
export CXXFLAGS="$CXXFLAGS $extra_cflags"
fi
# Don't enable zlib and liblzma with MSan
if [ "$SANITIZER" = memory ]; then
CONFIG=''
else
CONFIG='--with-zlib --with-lzma'
fi
# Workaround for a LeakSanitizer crashes,
# see https://github.com/google/oss-fuzz/issues/11798.
if [ "$ARCHITECTURE" = "aarch64" ]; then
export ASAN_OPTIONS=detect_leaks=0
fi
export V=1
./autogen.sh \
--disable-shared \
--without-debug \
--without-http \
--without-python \
$CONFIG
make -j$(nproc)
cd fuzz
make clean-corpus
make fuzz.o
for fuzzer in \
api html lint reader regexp schema uri valid xinclude xml xpath
do
make $fuzzer.o
# Link with $CXX
$CXX $CXXFLAGS \
$fuzzer.o fuzz.o \
-o $OUT/$fuzzer \
$LIB_FUZZING_ENGINE \
../.libs/libxml2.a -Wl,-Bstatic -lz -llzma -Wl,-Bdynamic
if [ $fuzzer != api ]; then
[ -e seed/$fuzzer ] || make seed/$fuzzer.stamp
zip -j $OUT/${fuzzer}_seed_corpus.zip seed/$fuzzer/*
fi
done
cp *.dict *.options $OUT/