Add CFGuard options to build scripts (disabled by default)

This commit is contained in:
Alvin Wong authored and Martin Storsjö committed 2022-10-01 13:25:52 +03:00
1 parent 0af177bf4f
commit e9401c8bfe
10 files changed
+122 -34

No files matched your search

+14 -1
View File
@@ -19,6 +19,8 @@ set -e
SRC_DIR=../lib/builtins
BUILD_SUFFIX=
BUILD_BUILTINS=TRUE
ENABLE_CFGUARD=
CFGUARD_CFLAGS=
while [ $# -gt 0 ]; do
if [ "$1" = "--build-sanitizers" ]; then
@@ -26,15 +28,24 @@ while [ $# -gt 0 ]; do
BUILD_SUFFIX=-sanitizers
SANITIZERS=1
BUILD_BUILTINS=FALSE
elif [ "$1" = "--enable-cfguard" ]; then
CFGUARD_CFLAGS="-mguard=cf"
ENABLE_CFGUARD=1
elif [ "$1" = "--disable-cfguard" ]; then
CFGUARD_CFLAGS=
ENABLE_CFGUARD=
else
PREFIX="$1"
fi
shift
done
if [ -z "$PREFIX" ]; then
echo $0 [--build-sanitizers] dest
echo "$0 [--build-sanitizers] [--enable-cfguard|--disable-cfguard] dest"
exit 1
fi
if [ -n "$SANITIZERS" ] && [ -n "$ENABLE_CFGUARD" ]; then
echo "warning: Sanitizers may not work correctly with Control Flow Guard enabled." 1>&2
fi
mkdir -p "$PREFIX"
PREFIX="$(cd "$PREFIX" && pwd)"
@@ -100,6 +111,8 @@ for arch in $ARCHS; do
-DCOMPILER_RT_BUILD_BUILTINS=$BUILD_BUILTINS \
-DLLVM_CONFIG_PATH="" \
-DSANITIZER_CXX_ABI=libc++ \
-DCMAKE_C_FLAGS_INIT="$CFGUARD_CFLAGS" \
-DCMAKE_CXX_FLAGS_INIT="$CFGUARD_CFLAGS" \
$SRC_DIR
$BUILDCMD ${CORES+-j$CORES}
$BUILDCMD install