This repository contains tools to create toolchains for lowRISC internal use. The toolchains are not supported by lowRISC or recommended to be used outside of lowRISC.
Head over to the GitHub releases for this repository for pre-built toolchains.
- A GCC RV32IMC without hardfloat support, targeting Ibex
- A GCC elf multilib toolchain
- A GCC linux multilib toolchain, with linux user-space Qemu binaries
-
Modify any of the following variables to configure the build:
CROSSTOOL_NG_VERSIONininstall-crosstool-ng.shQEMU_VERSIONinbuild-gcc-with-args.sh
-
Modify any of the
*.configfiles to update the crosstool-ng configurations for a particular toolchain. -
Push the changes or do a pull request, and wait for the pipeline to complete.
The build can be tested by downloading the Azure Pipeline artifacts.
- Go to the lowrisc-toolchains Azure Pipelines page
- Select a build
- Click on "Artifacts" (top right)
- Download the desired artifact, and test it.
-
Tag a release
VERSION=$(date +%Y%m%d)-1 git tag -a -m "Release version $VERSION" $VERSION
-
Push the tag
git push origin $VERSIONNow the release builds on Azure Pipelines, and the resulting binaries will be uploaded to GitHub releases.
-
Generate the binutils patch:
git clone https://github.com/riscv/riscv-binutils-gdb.git cd riscv-binutils-gdb git checkout riscv-bitmanip # 612aac65 is our upstream baseline git diff 612aac65 > $TOP/patches/binutils/git-612aac65/001-bitmanip.patch -
Generate the GCC patch:
git clone https://github.com/riscv/riscv-gcc.git cd riscv-gcc git checkout riscv-bitmanip # 49f75e008c0 is our upstream baseline git diff 49f75e008c0 > $TOP/patches/gcc/git-49f75e00/001-bitmanip.patch