build-compiler-rt: Add an option for compiling runtimes for the native OS

This commit is contained in:
Martin Storsjö committed 2025-06-25 11:51:06 +03:00
1 parent 19f1c90a15
commit 454962132a
1 file changed
+33 -3
+33 -3
View File
@@ -40,13 +40,16 @@ while [ $# -gt 0 ]; do
elif [ "$1" = "--disable-cfguard" ]; then
CFGUARD_CFLAGS=
ENABLE_CFGUARD=
elif [ "$1" = "--native" ]; then
NATIVE=1
SRC_DIR=..
else
PREFIX="$1"
fi
shift
done
if [ -z "$PREFIX" ]; then
echo "$0 [--build-sanitizers] [--enable-cfguard|--disable-cfguard] dest"
echo "$0 [--build-sanitizers] [--enable-cfguard|--disable-cfguard] [--native] dest"
exit 1
fi
if [ -n "$SANITIZERS" ] && [ -n "$ENABLE_CFGUARD" ]; then
@@ -59,8 +62,7 @@ export PATH="$PREFIX/bin:$PATH"
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}}
ANY_ARCH=$(echo $ARCHS | awk '{print $1}')
CLANG_RESOURCE_DIR="$("$PREFIX/bin/$ANY_ARCH-w64-mingw32-clang" --print-resource-dir)"
CLANG_RESOURCE_DIR="$("$PREFIX/bin/clang" --print-resource-dir)"
if [ ! -d llvm-project/compiler-rt ] || [ -n "$SYNC" ]; then
CHECKOUT_ONLY=1 ./build-llvm.sh
@@ -91,6 +93,34 @@ if [ -h "$CLANG_RESOURCE_DIR/include" ]; then
INSTALL_PREFIX="$WORKDIR/install"
fi
if [ -n "$NATIVE" ]; then
[ -z "$CLEAN" ] || rm -rf build-native
mkdir -p build-native
cd build-native
[ -n "$NO_RECONF" ] || rm -rf CMake*
cmake \
${CMAKE_GENERATOR+-G} "$CMAKE_GENERATOR" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$CLANG_RESOURCE_DIR" \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_CONFIG_PATH="" \
-DCMAKE_FIND_ROOT_PATH=$PREFIX \
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY \
-DCOMPILER_RT_USE_LIBCXX=OFF \
$SRC_DIR
cmake --build . ${CORES:+-j${CORES}}
cmake --install . --prefix "$INSTALL_PREFIX"
if [ "$INSTALL_PREFIX" != "$CLANG_RESOURCE_DIR" ]; then
# symlink to system headers - skip copy
rm -rf "$INSTALL_PREFIX/include"
cp -r "$INSTALL_PREFIX/." $CLANG_RESOURCE_DIR
fi
exit 0
fi
for arch in $ARCHS; do
[ -z "$CLEAN" ] || rm -rf build-$arch$BUILD_SUFFIX