mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-22 07:57:57 +00:00
8a6d43bcd3
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
71 lines
1.8 KiB
Bash
Executable File
71 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
INSTALL_DIR="${PWD}/llvm18.0"
|
|
mkdir -p $INSTALL_DIR
|
|
|
|
|
|
# Clone LLVM 18 (any revision after commit bd32aaa is supposed to work)
|
|
if [ ! -d "llvm-project" ]; then
|
|
git clone --depth 1 --branch release/18.x https://github.com/llvm/llvm-project.git
|
|
fi
|
|
|
|
|
|
# Build LLVM, clang
|
|
cd llvm-project
|
|
|
|
mkdir -p build
|
|
cd build
|
|
cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On \
|
|
-DLLVM_ENABLE_TERMINFO=Off \
|
|
-DLLVM_ENABLE_LIBXML2=Off \
|
|
-DLLVM_ENABLE_ZLIB=Off \
|
|
-DLLVM_ENABLE_PROJECTS='clang;lld' \
|
|
-DLLVM_TARGETS_TO_BUILD='RISCV' \
|
|
-DLLVM_ENABLE_ZSTD=Off \
|
|
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
|
-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
|
|
../llvm
|
|
|
|
ninja
|
|
ninja install
|
|
|
|
|
|
# Build compiler builtins
|
|
cd ../compiler-rt
|
|
mkdir -p build
|
|
cd build
|
|
|
|
CFLAGS="--target=riscv32 -march=rv32em -mabi=ilp32e -nostdlib -nodefaultlibs -mcpu=generic-rv32"
|
|
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
|
|
-DCOMPILER_RT_BUILD_BUILTINS=ON \
|
|
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
|
|
-DCOMPILER_RT_BUILD_MEMPROF=OFF \
|
|
-DCOMPILER_RT_BUILD_PROFILE=OFF \
|
|
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
|
|
-DCOMPILER_RT_BUILD_XRAY=OFF \
|
|
-DCMAKE_C_COMPILER=$INSTALL_DIR/bin/clang \
|
|
-DCMAKE_C_COMPILER_TARGET="riscv32" \
|
|
-DCMAKE_ASM_COMPILER_TARGET="riscv32" \
|
|
-DCMAKE_AR=$INSTALL_DIR/bin/llvm-ar \
|
|
-DCMAKE_NM=$INSTALL_DIR/bin/llvm-nm \
|
|
-DCMAKE_RANLIB=$INSTALL_DIR/bin/llvm-ranlib \
|
|
-DCOMPILER_RT_BAREMETAL_BUILD=ON \
|
|
-DLLVM_CONFIG_PATH=$INSTALL_DIR/bin/llvm-config \
|
|
-DCMAKE_C_FLAGS="$CFLAGS" \
|
|
-DCMAKE_ASM_FLAGS="$CFLAGS" \
|
|
-DCOMPILER_RT_TEST_COMPILER=$INSTALL_DIR/bin/clang \
|
|
-DCMAKE_CXX_FLAGS="$CFLAGS" \
|
|
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
|
|
-DCMAKE_SYSTEM_NAME=Linux \
|
|
..
|
|
|
|
ninja
|
|
ninja install
|
|
|
|
|
|
echo ""
|
|
echo "success"
|
|
echo "add this directory to your PATH: ${INSTALL_DIR}/bin/"
|