build-compiler-rt: Add an option for compiling runtimes for the native OS
This commit is contained in:
1 parent
19f1c90a15
commit
454962132a
1 file changed
+33
-3
+33
-3
@@ -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
|
||||
|
||||
Reference in new issue
Block a user