Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[BUG] esp32s3: esp-hal-3rdparty fails to build with GCC 15 (ATOMIC_VAR_INIT removed)

Chiusa Adatta ai principianti
#20,704 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
c

Direzione di ricerca

Inizia dall'hash fissato in arch/xtensa/src/esp32s3/Make.defs (ESP_HAL_3RDPARTY_VERSION), poi passa alla riga 13 fallita di esp_gpio_reserve.c in arch/xtensa/src/esp32s3/esp-hal-3rdparty/components/esp_hw_support/. Riproduci il problema compilando esp32s3-devkit:nsh con GCC 15. È completato quando la build passa, sostituendo ATOMIC_VAR_INIT con un'inizializzazione diretta oppure aggiornando il pin a un commit che già lo fa.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Arch: xtensa Area: Board support Area: Build system OS: Linux Type: Bug
Description / Steps to reproduce the issue
Bug Description

NuttX fails to build for ESP32-S3 with GCC 15 due to ATOMIC_VAR_INIT being removed from the toolchain.

ATOMIC_VAR_INIT was deprecated in C17 and removed in GCC 15. The esp-hal-3rdparty code pinned by NuttX 13.1 still uses it.

Toolchain
  • xtensa-esp-elf-gcc (crosstool-NG esp-15.2.0_20251204) 15.2.0
  • ESP-IDF v6.1

NuttX 13.1 pins ESP_HAL_3RDPARTY_VERSION = b90b1837cb5ad24747deb4c895246037cc206ce5 in arch/xtensa/src/esp32s3/Make.defs.

Error

CC: chip/esp-hal-3rdparty/components/esp_hw_support/esp_gpio_reserve.c
chip/esp-hal-3rdparty/components/esp_hw_support/esp_gpio_reserve.c:13:47: error: implicit declaration of function 'ATOMIC_VAR_INIT'; did you mean 'ATOMIC_FLAG_INIT'? [-Wimplicit-function-declaration]
13 | static _Atomic uint64_t s_reserved_pin_mask = ATOMIC_VAR_INIT(~(SOC_GPIO_VALID_GPIO_MASK));
| ^~~~~~~~~~~~~~~
| ATOMIC_FLAG_INIT
chip/esp-hal-3rdparty/components/esp_hw_support/esp_gpio_reserve.c:13:47: error: initializer element is not constant
make[1]: *** [Makefile:146:chip/esp-hal-3rdparty/components/esp_hw_support/esp_gpio_reserve.o] error 1
make: *** [tools/LibTargets.mk:170:arch/xtensa/src/libarch.a] error 2

Temporary Workaround

Modify arch/xtensa/src/esp32s3/esp-hal-3rdparty/components/esp_hw_support/esp_gpio_reserve.c line 13:

// from
static _Atomic uint64_t s_reserved_pin_mask = ATOMIC_VAR_INIT(~(SOC_GPIO_VALID_GPIO_MASK));
// to
static _Atomic uint64_t s_reserved_pin_mask = ~(SOC_GPIO_VALID_GPIO_MASK);

After this change, the build succeeded.
Suggested Fix

Either bump the pinned ESP_HAL_3RDPARTY_VERSION to a commit that already uses direct initialization, or document that GCC ≤ 14 is required for ESP32-S3.

### On which OS does this issue occur?

[OS: Linux]

### What is the version of your OS?

EndeavourOS  Linux 7.2.9-arch1-1

### NuttX Version

releases/13.1

### Issue Architecture

[Arch: xtensa]

### Issue Area

[Area: Board support], [Area: Build System]

### Host information

### Host Info

- OS: Linux x86_64 (Arch)
- Toolchain: `xtensa-esp32s3-elf-gcc (crosstool-NG esp-15.2.0_20251204) 15.2.0`
- ESP-IDF: v6.1
- HAL version: `sync/master.c-nuttx-20260428-24-gb90b1837cb5`
- esptool: 5.6.0
- defconfig: `esp32s3-devkit:nsh`

### Verification

- [x] I have verified before submitting the report.
Lingua principale
C
Stelle
4.1k
Fork
1.7k
Merge medio
1g 9h
PR unite (30g)
533

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/nuttx

Tutte le issue di apache/nuttx

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.