Add CFGuard options to build scripts (disabled by default)
This commit is contained in:
1 parent
0af177bf4f
commit
e9401c8bfe
10 files changed
+122
-34
No files matched your search
+14
-1
@@ -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
|
||||
|
||||
Reference in new issue
Block a user