1
0
Fork 0

[Core] RISC-V toolchain and picolibc fixes (#15109)

* [Core] Fix RISC-V toolchain installation

The risc-v toolchain is only available on distributions based on Debian 11+
so we check for their availability before installing them.

* [Core] Fix heap symbols and syscalls for picolibc

picolibc internally uses __heap_start and __heap_end instead of the
defacto chibios linker script standard __heap_base__ and __heap_end__
therefore we introduce these symbols as an alias. Usually all memory
used within QMK is statically allocated, but some algorithms make usage
of malloc and friends.

Also the timeval struct is not defined by picolibc for syscalls, therefore it
is declared as stub.
This commit is contained in:
Stefan Kerkmann 2021-11-20 21:04:16 +01:00 committed by GitHub
parent 32215d5bff
commit 5c2052fd47
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 12 deletions

View file

@ -11,12 +11,18 @@ _qmk_install_prepare() {
_qmk_install() {
echo "Installing dependencies"
sudo apt-get -yq install \
sudo apt-get --quiet --yes install \
build-essential clang-format diffutils gcc git unzip wget zip \
python3-pip binutils-avr gcc-avr avr-libc binutils-arm-none-eabi \
gcc-arm-none-eabi libnewlib-arm-none-eabi avrdude dfu-programmer \
dfu-util teensy-loader-cli libhidapi-hidraw0 libusb-dev \
picolibc-riscv64-unknown-elf gcc-riscv64-unknown-elf binutils-riscv64-unknown-elf
dfu-util teensy-loader-cli libhidapi-hidraw0 libusb-dev
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
# RISC-V toolchains with picolibc support are only available for distributions based on Debian 11+.
if sudo apt-get install --simulate --quiet --yes picolibc-riscv64-unknown-elf gcc-riscv64-unknown-elf binutils-riscv64-unknown-elf > /dev/null 2>&1; then
sudo apt-get --quiet --yes install picolibc-riscv64-unknown-elf \
gcc-riscv64-unknown-elf \
binutils-riscv64-unknown-elf
fi
python3 -m pip install --user -r "$QMK_FIRMWARE_DIR"/requirements.txt
}