riotdocker icon indicating copy to clipboard operation
riotdocker copied to clipboard

riotbuild: Upgrade ESP32 toolchain to GCC 14.2.0

Open gschorcht opened this issue 10 months ago • 4 comments

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

gschorcht avatar Feb 18 '25 15:02 gschorcht

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.

gschorcht avatar Feb 22 '25 14:02 gschorcht

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

gschorcht avatar Feb 22 '25 15:02 gschorcht

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

mguetschow avatar Mar 10 '25 13:03 mguetschow

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

maribu avatar Mar 27 '25 09:03 maribu

Btw: This should pass the CI now.

maribu avatar Apr 05 '25 10:04 maribu

@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.

gschorcht avatar Apr 07 '25 10:04 gschorcht

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.

maribu avatar Apr 07 '25 11:04 maribu

There was still a small compilation problem that was fixed by RIOT-OS/RIOT#21245 which is not part of the 2025.01 release.

That can be fixed easiely

benpicco avatar Apr 07 '25 13:04 benpicco

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:

gschorcht avatar Apr 07 '25 16:04 gschorcht