forked from mirrors/gecko-dev
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
24 lines
632 B
Bash
Executable file
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"
|