mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-06-15 12:41:08 +00:00
llvm build script: build compiler-rt for 64bit
Signed-off-by: xermicus <cyrill@parity.io>
This commit is contained in:
+42
-27
@@ -3,7 +3,7 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
INSTALL_DIR="${PWD}/llvm18.0"
|
INSTALL_DIR="${PWD}/llvm18.0"
|
||||||
mkdir -p $INSTALL_DIR
|
mkdir -p ${INSTALL_DIR}
|
||||||
|
|
||||||
|
|
||||||
# Clone LLVM 18 (any revision after commit bd32aaa is supposed to work)
|
# Clone LLVM 18 (any revision after commit bd32aaa is supposed to work)
|
||||||
@@ -25,7 +25,7 @@ cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On \
|
|||||||
-DLLVM_TARGETS_TO_BUILD='RISCV' \
|
-DLLVM_TARGETS_TO_BUILD='RISCV' \
|
||||||
-DLLVM_ENABLE_ZSTD=Off \
|
-DLLVM_ENABLE_ZSTD=Off \
|
||||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||||
-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
|
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
|
||||||
../llvm
|
../llvm
|
||||||
|
|
||||||
ninja
|
ninja
|
||||||
@@ -37,33 +37,48 @@ cd ../compiler-rt
|
|||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
CFLAGS="--target=riscv32 -march=rv32em -mabi=ilp32e -nostdlib -nodefaultlibs -mcpu=generic-rv32"
|
build_compiler_rt() {
|
||||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
|
case "$1" in
|
||||||
-DCOMPILER_RT_BUILD_BUILTINS=ON \
|
64) TARGET_ABI=lp64e ;;
|
||||||
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
|
32) TARGET_ABI=ilp32e ;;
|
||||||
-DCOMPILER_RT_BUILD_MEMPROF=OFF \
|
*) exit -1
|
||||||
-DCOMPILER_RT_BUILD_PROFILE=OFF \
|
esac
|
||||||
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
|
CFLAGS="--target=riscv${1} -march=rv${1}em -mabi=${TARGET_ABI} -mcpu=generic-rv${1} -nostdlib -nodefaultlibs"
|
||||||
-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
|
cmake -G Ninja \
|
||||||
ninja install
|
-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=riscv${1} \
|
||||||
|
-DCMAKE_ASM_COMPILER_TARGET=riscv${1} \
|
||||||
|
-DCMAKE_CXX_COMPILER_TARGET=riscv${1} \
|
||||||
|
-DCMAKE_C_TARGET_BITS=riscv${1} \
|
||||||
|
-DCMAKE_ASM_TARGET_BITS=riscv${1} \
|
||||||
|
-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}" \
|
||||||
|
-DCMAKE_SYSTEM_NAME=unknown \
|
||||||
|
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
|
||||||
|
..
|
||||||
|
|
||||||
|
ninja
|
||||||
|
ninja install
|
||||||
|
}
|
||||||
|
|
||||||
|
build_compiler_rt 32
|
||||||
|
build_compiler_rt 64
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "success"
|
echo "success"
|
||||||
|
|||||||
@@ -10,10 +10,7 @@ pub const LLVM_VERSION: semver::Version = semver::Version::new(18, 1, 4);
|
|||||||
pub const ZKEVM_VERSION: semver::Version = semver::Version::new(1, 3, 2);
|
pub const ZKEVM_VERSION: semver::Version = semver::Version::new(1, 3, 2);
|
||||||
|
|
||||||
/// The register width sized type
|
/// The register width sized type
|
||||||
#[cfg(not(feature = "riscv-64"))]
|
|
||||||
pub static XLEN: usize = revive_common::BIT_LENGTH_X32;
|
pub static XLEN: usize = revive_common::BIT_LENGTH_X32;
|
||||||
#[cfg(feature = "riscv-64")]
|
|
||||||
pub static XLEN: usize = revive_common::BIT_LENGTH_X64;
|
|
||||||
|
|
||||||
/// The heap memory pointer pointer global variable name.
|
/// The heap memory pointer pointer global variable name.
|
||||||
pub static GLOBAL_HEAP_MEMORY_POINTER: &str = "memory_pointer";
|
pub static GLOBAL_HEAP_MEMORY_POINTER: &str = "memory_pointer";
|
||||||
|
|||||||
Reference in New Issue
Block a user