refactor: remove use of cartesi/toolchain #286
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR completely removes references to
cartesi/toolchain
, instead it build its own toolchain image using the following two toolchains available in Debian Bookworm:The
riscv64-unknown-elf
is used to compile uarch tests, machine tests and uarch ram, this toolchain comes with bothrv64i lp64
andrv64gc lp64d
headers/libraries to be compiled in freestanding mode. However it does not come with libstdc++ headers, to solve this theg++-12-riscv64-linux-gnu
toolchain is installed and used just to add include paths for libstc++ headers when compiling uarch ram.This include additional checks to make sure uarch RAM contains only supported instructions (code borrowed from Perna's PR #108 )