Refactoring core parts of toolchain_kelvin_v2 The following changes were made to upgrade dependencies and refactor the build process. * Upgrade RISC-V GNU Toolchian to git-branch `2025.08.29` * Upgrade LLVM project to version `20.1.0` * Simplify the build by removing the separate build step for `riscv-newlib` and update submodules. * Update toolchain url and sha256 in `WORKSPACE` file to support new toolchain * Update c++ toolchain configuration to include paths for GCC 15.1.0 Change-Id: I52b5cc37d47c2d672bd6c2b0f2b280883b37ac42
diff --git a/WORKSPACE b/WORKSPACE index 187ab52..eb26098 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -141,9 +141,9 @@ srcs = glob(["**"]), ) """, - sha256 = "1940ed35120ecf76eec74b85d95b06dedb93771d9974d1647eabdf5931002c41", + sha256 = "c9c85f8361e9d02d64474c51e3b3730ba09807cf4610d6d002c49a270458b49c", urls = [ - "https://storage.googleapis.com/shodan-public-artifacts/toolchain_kelvin_tar_files/toolchain_kelvin_v2-2025-04-01.tar.gz", + "https://storage.googleapis.com/shodan-public-artifacts/toolchain_kelvin_tar_files/toolchain_kelvin_v2-2025-09-11.tar.gz", ], strip_prefix = "toolchain_kelvin_v2", )
diff --git a/toolchain/build_scripts/kelvin_v2_toolchain_build.sh b/toolchain/build_scripts/kelvin_v2_toolchain_build.sh index 370c7e9..5cb2bdc 100644 --- a/toolchain/build_scripts/kelvin_v2_toolchain_build.sh +++ b/toolchain/build_scripts/kelvin_v2_toolchain_build.sh
@@ -7,15 +7,11 @@ TOOLCHAIN_OUT_DIR="$(pwd)"/rv32_out # Build gcc -git clone --branch 2025.01.20 https://github.com/riscv-collab/riscv-gnu-toolchain.git +git clone --branch 2025.08.29 https://github.com/riscv-collab/riscv-gnu-toolchain.git cd riscv-gnu-toolchain/ || exit -git submodule update --init -git submodule update gcc - +git submodule update --init --recursive # Update gcc cd gcc || exit -git fetch -git checkout origin/master contrib/download_prerequisites cd .. || exit @@ -31,7 +27,7 @@ cd .. || exit # Build LLVM + compiler-rt -git clone --depth=1 https://github.com/llvm/llvm-project -b llvmorg-19.1.7 +git clone --depth=1 https://github.com/llvm/llvm-project -b llvmorg-20.1.0 cd llvm-project/ || exit # Build LLVM @@ -89,25 +85,6 @@ exit 1 fi -# Build newlib -git clone --depth=1 https://github.com/riscvarchive/riscv-newlib -b newlib-4.1.0 -cd riscv-newlib/ || exit -./configure \ - --target=riscv32-unknown-elf \ - --prefix="${TOOLCHAIN_OUT_DIR}" \ - --enable-newlib-io-long-double \ - --enable-newlib-io-long-long \ - --enable-newlib-io-float \ - --enable-newlib-io-c99-formats \ - --enable-newlib-register-fini \ - CC_FOR_TARGET=riscv32-unknown-elf-gcc \ - CXX_FOR_TARGET=riscv32-unknown-elf-g++ \ - CFLAGS_FOR_TARGET="-march=rv32im_zve32x_zicsr -O2 -D_POSIX_MODE -mno-relax -Wno-error=implicit-function-declaration -Wno-error=int-conversion" \ - CXXFLAGS_FOR_TARGET="-march=rv32im_zve32x_zicsr -O2 -D_POSIX_MODE -mno-relax -Wno-error=implicit-function-declaration -Wno-error=int-conversion" -make -j 32 -make install -cd .. || exit - git clone --depth=1 https://github.com/ucb-bar/libgloss-htif cd libgloss-htif || exit git checkout 39234a16247ab1fa234821b251f1f1870c3de343
diff --git a/toolchain/cc_toolchain_config.bzl b/toolchain/cc_toolchain_config.bzl index b86d290..b55194b 100644 --- a/toolchain/cc_toolchain_config.bzl +++ b/toolchain/cc_toolchain_config.bzl
@@ -134,13 +134,13 @@ flags = [ "-nostdinc", "-isystem", - "external/toolchain_kelvin_v2/riscv32-unknown-elf/include/c++/15.0.1", + "external/toolchain_kelvin_v2/riscv32-unknown-elf/include/c++/15.1.0", "-isystem", - "external/toolchain_kelvin_v2/riscv32-unknown-elf/include/c++/15.0.1/backward", + "external/toolchain_kelvin_v2/riscv32-unknown-elf/include/c++/15.1.0/backward", "-isystem", - "external/toolchain_kelvin_v2/riscv32-unknown-elf/include/c++/15.0.1/riscv32-unknown-elf", + "external/toolchain_kelvin_v2/riscv32-unknown-elf/include/c++/15.1.0/riscv32-unknown-elf", "-isystem", - "external/toolchain_kelvin_v2/lib/gcc/riscv32-unknown-elf/15.0.1/include", + "external/toolchain_kelvin_v2/lib/gcc/riscv32-unknown-elf/15.1.0/include", "-isystem", "external/toolchain_kelvin_v2/riscv32-unknown-elf/include", ],