riotbuild: Upgrade ESP32 toolchain to GCC 14.2.0
This PR is required for the upgrade of the ESP-IDF SDK from version 4.4 to version 5.4. It provides the following changes:
- upgrades ESP32 toolchain to GCC v14.2.0
- upgrades GDB to v14.2
- upgrades QEMU for ESP32 Xtensa based SoCs to version 9.0.0
- adds QEMU for ESP32 RISC-V based SoCs
- removes picolibc compilation for ESP32
The picolibc compilation for ESP32 had to be removed since it produces error on buildung the docker image.
The toolchain should work with current master.
Depends on https://github.com/RIOT-OS/riotdocker/pull/257
I don't understand why the compile test for esp32-wroom-32 failed in CI. I built the riotbuild container and it works with the current master and the 2025-01 release as well.
Ah, the compilation test uses the 2024.01 release branch which can't work with this release of the ESP32 toolchain. It requires at least the 2025.01 release branch.
Obviously, it seems to be related to PR https://github.com/RIOT-OS/riotdocker/pull/257
Oh
Update manifest digest to 0993a39a90e0b573637ea488d51fb33ba1cbeacbfbae4a27cca2091d0873d383:
makefiles/docker.inc.mk:8:DOCKER_TESTED_IMAGE_REPO_DIGEST := 045fd7eb54ccba2d5f4c06e8619bb1d5cd20ef96da8c6d4b7c1f9127e70adfff
looks like the build system sanity check complains about the RIOT version tagged with 2025.01 not using the latest docker image :/ @maribu
It is actually using the release branch. So just bumping the tagging in the release branch will fix the issue.
I guess we should make sure to always backport the tagging of the new docker image once it is deployed to the latest release branch.
See https://github.com/RIOT-OS/RIOT/pull/21329
Btw: This should pass the CI now.
@benpicco Don't we have to wait until 2025.04 is released? There was still a small compilation problem that was fixed by https://github.com/RIOT-OS/RIOT/pull/21245 which is not part of the 2025.01 release.
It would be beneficial for the 2025.04 release if it would already use the new docker container.
As of now, Murdock will use the latest version for building both master as well as backports. A CI upgrade after the release has a risk to block backports. Updating now has a chance to break backports to 2025.01, but will make life easier for backports to the 2025.04 branch (including backports before the release is made due to bugs uncovered by the release tests on release candidates).
Either way, it is not optimal and the real fix would be to somehow use the tagged version of riotbuild in the CI for the release branch.
There was still a small compilation problem that was fixed by RIOT-OS/RIOT#21245 which is not part of the
2025.01release.
That can be fixed easiely
BTW, I have working ESP32-H2 locally with this toolchain version, but BLE is a nightmare for this variant. As usual with Espressif, they integrate external packages into their closed low-level binary libraries. For ESP32-H2 they have integrated Nimble into the BLE low-level libraries, which leads to major conflicts with the Nimble package as provided by RIOT :see_no_evil: