Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

クローズ 初心者向け
#20,704 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
72/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
c

調査の方向性

まず arch/xtensa/src/esp32s3/Make.defs に固定されたハッシュ(ESP_HAL_3RDPARTY_VERSION)を確認し、次に arch/xtensa/src/esp32s3/esp-hal-3rdparty/components/esp_hw_support/ 内の esp_gpio_reserve.c で失敗している13行目を見てください。GCC 15 で esp32s3-devkit:nsh をビルドして再現します。ビルドが通れば完了です。ATOMIC_VAR_INIT を直接初期化に置き換えるか、既にそうしているコミットへピンを更新することで対応できます。

索引モデルが issue の本文から書いたものです。

説明

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.
主要言語
C
スター
4.1k
フォーク
1.7k
平均マージ
1日 12時間
マージ済み PR(30日)
570

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/nuttx のほかの issue

apache/nuttx の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。