Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

riotbuild: bump esp32x toolchains to gcc version 12.2 #227

Merged
merged 1 commit into from
May 10, 2023

Conversation

gschorcht
Copy link
Contributor

@gschorcht gschorcht commented Apr 4, 2023

This PR upgrades ESP32x toolchains to GCC version 12.2. Since ESP-IDF 5.1 requires this compiler version, this PR has to be merged before we can start with RIOT upgrade to ESP-IDF 5.1.

This PR depends on RIOT-OS/RIOT#19450.

bors bot added a commit to RIOT-OS/RIOT that referenced this pull request Apr 17, 2023
19411: cpu/gd32v: add riotboot support r=benpicco a=gschorcht

### Contribution description

This PR provides `riotboot` support for GD32V.

### Testing procedure

Use any GD32V board with a JTAG adapter and flash the bootloader:
```python
PROGRAMMER=openocd BOARD=sipeed-longan-nano make -C bootloaders/riotboot flash
```
Flash slot 0 and set `RIOT_VERSION` to 1
```python
USEMODULE=stdio_uart FEATURES_REQUIRED=riotboot RIOT_VERSION=1 \
PROGRAMMER=openocd BOARD=sipeed-longan-nano make -C tests/shell riotboot/flash-slot0
...
### Flashing Target ###
Binfile detected, adding ROM base address: 0x08000000
Flashing with IMAGE_OFFSET: 0x08001000
```
```python
> main(): This is RIOT! (Version: 1)
test_shell.
```
Flash slot 1 and set `RIOT_VERSION` to 2
```python
USEMODULE=stdio_uart FEATURES_REQUIRED=riotboot RIOT_VERSION=2 \
PROGRAMMER=openocd BOARD=sipeed-longan-nano make -C tests/shell riotboot/flash-slot1
...
### Flashing Target ###
Binfile detected, adding ROM base address: 0x08000000
Flashing with IMAGE_OFFSET: 0x08010800
```
```python
> main(): This is RIOT! (Version: 2)
test_shell.
```

### Issues/PRs references


19436: cpp11-compat: thread::sleep_for in microseconds r=benpicco a=kfessel

### Contribution description

after reviewing #19369  i found that there is a conversion to nanoseconds just to convert it to microseconds some instrunctions later for ztimer64_usec to handle it this removes one of the conversions (convert once direct to microseconds)

### Testing procedure

run the cpp tests

### Issues/PRs references

#19369

19450: cpu/esp32: fix compilation issues with GCC 12.2 r=benpicco a=gschorcht

### Contribution description

This PR provides the changes in `cpu/esp32` and `cpu/esp_common` to fix the compilation issues with GCC v12.2.  It is required as the first step in the preparation of the upgrade to ESP-IDF version 5.1.

**Please note**: Insead of fixing the ESP-IDF 4.4 code itself by a big bunch of patches to fix the compilation problems with GCC v12.2, it temporarily disables some warnings. The reason is that the ESP-IDF 5.1 requires GCC v12.2 and should be fixed for this compiler version by the vendor.

### Testing procedure

Green CI

The change were already tested with all ESP-specific modules like `esp_now`, `esp_wifi`, `esp_spi`  and `esp_ble` for all supported ESP platforms.

### Issues/PRs references

Prerequisite for RIOT-OS/riotdocker#227
Fixes issue #19421

19476: native/syscalls: rename real_clock_gettime to clock_gettime r=benpicco a=Teufelchen1

### Contribution description

When compiling RIOT for native using a recent LLVM and enabling ASAN, one might encounter "Duplicated symbol".

This is due to a name clash with `real_clock_gettime()` in compiler-rt from [LLVM](llvm/llvm-project@f50246d), I renamed RIOTs `real_clock_gettime` and just default to the posix function `clock_gettime`. The wrapper existed, most likely, for consistency only.

(The best solution would probably to convince the LLVM folks to declare their symbol as `static` and refactor a bit)

### Testing procedure

Passing CI should be enough.


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Co-authored-by: Karl Fessel <karl.fessel@ovgu.de>
Co-authored-by: Teufelchen1 <bennet.blischke@haw-hamburg.de>
bors bot added a commit to RIOT-OS/RIOT that referenced this pull request Apr 17, 2023
19450: cpu/esp32: fix compilation issues with GCC 12.2 r=benpicco a=gschorcht

### Contribution description

This PR provides the changes in `cpu/esp32` and `cpu/esp_common` to fix the compilation issues with GCC v12.2.  It is required as the first step in the preparation of the upgrade to ESP-IDF version 5.1.

**Please note**: Insead of fixing the ESP-IDF 4.4 code itself by a big bunch of patches to fix the compilation problems with GCC v12.2, it temporarily disables some warnings. The reason is that the ESP-IDF 5.1 requires GCC v12.2 and should be fixed for this compiler version by the vendor.

### Testing procedure

Green CI

The change were already tested with all ESP-specific modules like `esp_now`, `esp_wifi`, `esp_spi`  and `esp_ble` for all supported ESP platforms.

### Issues/PRs references

Prerequisite for RIOT-OS/riotdocker#227
Fixes issue #19421

19476: native/syscalls: rename real_clock_gettime to clock_gettime r=benpicco a=Teufelchen1

### Contribution description

When compiling RIOT for native using a recent LLVM and enabling ASAN, one might encounter "Duplicated symbol".

This is due to a name clash with `real_clock_gettime()` in compiler-rt from [LLVM](llvm/llvm-project@f50246d), I renamed RIOTs `real_clock_gettime` and just default to the posix function `clock_gettime`. The wrapper existed, most likely, for consistency only.

(The best solution would probably to convince the LLVM folks to declare their symbol as `static` and refactor a bit)

### Testing procedure

Passing CI should be enough.


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Co-authored-by: Teufelchen1 <bennet.blischke@haw-hamburg.de>
@gschorcht gschorcht requested a review from kaspar030 April 19, 2023 11:04
@gschorcht
Copy link
Contributor Author

@kaspar030 The build test had to fail when I pushed the PR because RIOT-OS/RIOT#19450 was not merged. Now it should succeed. How can we restart the build test?

@gschorcht gschorcht requested a review from benpicco April 19, 2023 11:11
@kaspar030
Copy link
Contributor

@kaspar030 The build test had to fail when I pushed the PR because RIOT-OS/RIOT#19450 was not merged. Now it should succeed. How can we restart the build test?

I guess someone restarted it?

Anyhow, it probably still won't succeed. This repository doesn't build RIOT master but some older branch as defined here.

That needs to be bumped first. (Which we usually rather not do during final release testing ...)

Can this wait until after the release?

@gschorcht
Copy link
Contributor Author

That needs to be bumped first. (Which we usually rather not do during final release testing ...)

👍

Can this wait until after the release?

Yeah, of course. After the release we should not wait too long before inconsistencies happen between the last state of ESP32 code and the new compiler version. I compiled all the apps for all ESP32x plattforms with current master locally two weeks ago.

@kaspar030
Copy link
Contributor

After the release we should not wait too long before inconsistencies happen between the last state of ESP32 code and the new compiler version.

I PR'ed the version bump, we can rerun this.

@kaspar030
Copy link
Contributor

Pls rebase!

@gschorcht gschorcht force-pushed the riotbuild/esp32x_gcc_12_2 branch from c20f4ad to 3c0b46f Compare April 29, 2023 15:53
@gschorcht
Copy link
Contributor Author

Rebased, but it seems that the compile test still used the old code base. When you look for example on the first error in the log, this problem was changed with PR 19450.

bors bot added a commit to RIOT-OS/RIOT that referenced this pull request May 9, 2023
19561: cpu/esp32: fix compilation issues with GCC 12.2 [backport 2023.04] r=MrKevinWeiss a=kaspar030

# Backport of #19450

### Contribution description

This PR provides the changes in `cpu/esp32` and `cpu/esp_common` to fix the compilation issues with GCC v12.2.  It is required as the first step in the preparation of the upgrade to ESP-IDF version 5.1.

**Please note**: Insead of fixing the ESP-IDF 4.4 code itself by a big bunch of patches to fix the compilation problems with GCC v12.2, it temporarily disables some warnings. The reason is that the ESP-IDF 5.1 requires GCC v12.2 and should be fixed for this compiler version by the vendor.

### Testing procedure

Green CI

The change were already tested with all ESP-specific modules like `esp_now`, `esp_wifi`, `esp_spi`  and `esp_ble` for all supported ESP platforms.

### Issues/PRs references

Prerequisite for RIOT-OS/riotdocker#227
Fixes issue #19421

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
bors bot added a commit to RIOT-OS/RIOT that referenced this pull request May 10, 2023
19561: cpu/esp32: fix compilation issues with GCC 12.2 [backport 2023.04] r=maribu a=kaspar030

# Backport of #19450

### Contribution description

This PR provides the changes in `cpu/esp32` and `cpu/esp_common` to fix the compilation issues with GCC v12.2.  It is required as the first step in the preparation of the upgrade to ESP-IDF version 5.1.

**Please note**: Insead of fixing the ESP-IDF 4.4 code itself by a big bunch of patches to fix the compilation problems with GCC v12.2, it temporarily disables some warnings. The reason is that the ESP-IDF 5.1 requires GCC v12.2 and should be fixed for this compiler version by the vendor.

### Testing procedure

Green CI

The change were already tested with all ESP-specific modules like `esp_now`, `esp_wifi`, `esp_spi`  and `esp_ble` for all supported ESP platforms.

### Issues/PRs references

Prerequisite for RIOT-OS/riotdocker#227
Fixes issue #19421

19563: treewide: fix typos and false positives found by codespell [backport 2023.04] r=maribu a=MrKevinWeiss

# Backport of #19528

### Contribution description

This fixes some typos and adds one correctly used abbreviation to the ignore list.



Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
@kaspar030
Copy link
Contributor

  • triggered a re-run

Copy link
Contributor

@kaspar030 kaspar030 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK.

@kaspar030
Copy link
Contributor

bors merge

@bors
Copy link
Contributor

bors bot commented May 10, 2023

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot merged commit 3b18ad8 into RIOT-OS:master May 10, 2023
bors bot added a commit to RIOT-OS/RIOT that referenced this pull request May 11, 2023
19577: cpu/esp32: fix remaining compilation errors for GCC 12.2 r=maribu a=gschorcht

### Contribution description

This PR fixes one problem of CI compilation.

With [PR #227](RIOT-OS/riotdocker#227) `riotdocker` was updated to GCC 12.2 . Obviously, following parts were not covered by compilation test before:

- [ ] `esp_eth`
- [ ] `esp_hw_counter`
- [ ] `esp_can`

### Testing procedure

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
bors bot added a commit to RIOT-OS/RIOT that referenced this pull request May 11, 2023
19577: cpu/esp32: fix remaining compilation errors for GCC 12.2 r=maribu a=gschorcht

### Contribution description

This PR fixes one problem of CI compilation.

With [PR #227](RIOT-OS/riotdocker#227) `riotdocker` was updated to GCC 12.2 . Obviously, following parts were not covered by compilation test before:

- [ ] `esp_eth`
- [ ] `esp_hw_counter`
- [ ] `esp_can`

### Testing procedure

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants