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
|
elif [ "$1" = "--disable-cfguard" ]; then
|
||||||
CFGUARD_CFLAGS=
|
CFGUARD_CFLAGS=
|
||||||
ENABLE_CFGUARD=
|
ENABLE_CFGUARD=
|
||||||
|
elif [ "$1" = "--native" ]; then
|
||||||
|
NATIVE=1
|
||||||
|
SRC_DIR=..
|
||||||
else
|
else
|
||||||
PREFIX="$1"
|
PREFIX="$1"
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
if [ -z "$PREFIX" ]; then
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ -n "$SANITIZERS" ] && [ -n "$ENABLE_CFGUARD" ]; then
|
if [ -n "$SANITIZERS" ] && [ -n "$ENABLE_CFGUARD" ]; then
|
||||||
@@ -59,8 +62,7 @@ export PATH="$PREFIX/bin:$PATH"
|
|||||||
|
|
||||||
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}}
|
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}}
|
||||||
|
|
||||||
ANY_ARCH=$(echo $ARCHS | awk '{print $1}')
|
CLANG_RESOURCE_DIR="$("$PREFIX/bin/clang" --print-resource-dir)"
|
||||||
CLANG_RESOURCE_DIR="$("$PREFIX/bin/$ANY_ARCH-w64-mingw32-clang" --print-resource-dir)"
|
|
||||||
|
|
||||||
if [ ! -d llvm-project/compiler-rt ] || [ -n "$SYNC" ]; then
|
if [ ! -d llvm-project/compiler-rt ] || [ -n "$SYNC" ]; then
|
||||||
CHECKOUT_ONLY=1 ./build-llvm.sh
|
CHECKOUT_ONLY=1 ./build-llvm.sh
|
||||||
@@ -91,6 +93,34 @@ if [ -h "$CLANG_RESOURCE_DIR/include" ]; then
|
|||||||
INSTALL_PREFIX="$WORKDIR/install"
|
INSTALL_PREFIX="$WORKDIR/install"
|
||||||
fi
|
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
|
for arch in $ARCHS; do
|
||||||
[ -z "$CLEAN" ] || rm -rf build-$arch$BUILD_SUFFIX
|
[ -z "$CLEAN" ] || rm -rf build-$arch$BUILD_SUFFIX
|
||||||
|
|||||||
Reference in new issue
Block a user