fune/taskcluster/scripts/misc/build-afl.sh
Mike Hommey f460dc75d5 Bug 1804167 - Use sysroot when building AFL instrumentation toolchain. r=decoder
clang is built using the sysroot, and not using the sysroot to build the
afl-llvm-pass plugin can lead to ABI differences that lead to crashes.

Differential Revision: https://phabricator.services.mozilla.com/D163905
2022-12-11 21:00:01 +00:00

24 lines
632 B
Bash
Executable file

#!/bin/sh
set -e -x
artifact=$(basename "$TOOLCHAIN_ARTIFACT")
dir="${artifact%.tar.*}"
scripts="$(realpath "${0%/*}")"
cd "$MOZ_FETCHES_DIR/AFL"
patch -p1 -i "$scripts/afl-nyx.patch"
make afl-showmap \
CC="$MOZ_FETCHES_DIR/clang/bin/clang"
# -O3 -funroll-loops as per llvm_mode/Makefile
CFLAGS="-O3 -funroll-loops --sysroot $MOZ_FETCHES_DIR/sysroot" \
CXXFLAGS="-O3 -funroll-loops --sysroot $MOZ_FETCHES_DIR/sysroot" \
make -C llvm_mode install \
DESTDIR="../$dir" \
PREFIX=/ \
LLVM_CONFIG="$MOZ_FETCHES_DIR/clang/bin/llvm-config"
tar caf "$artifact" "$dir"
mkdir -p "$UPLOAD_DIR"
mv "$artifact" "$UPLOAD_DIR"