tools/espressif: add esp_libc platform_include shim for C23 ATOMIC_VAR_INIT#18808
Closed
MukundaKatta wants to merge 1 commit intoapache:masterfrom
Closed
tools/espressif: add esp_libc platform_include shim for C23 ATOMIC_VAR_INIT#18808MukundaKatta wants to merge 1 commit intoapache:masterfrom
MukundaKatta wants to merge 1 commit intoapache:masterfrom
Conversation
…ic shim.
The Make-based Espressif chip configs only added
${ESP_HAL_3RDPARTY_REPO}/nuttx/src/components/esp_libc/platform_include
to the preprocessor search path. At the pinned esp-hal-3rdparty commit
(d41c921a), that directory only contains esp_newlib.h.
The C23-compatibility stdatomic.h shim that re-defines ATOMIC_VAR_INIT
when __STDC_VERSION__ > 201710L lives at
${ESP_HAL_3RDPARTY_REPO}/components/esp_libc/platform_include/stdatomic.h
(no nuttx/src/ prefix). Without that path on -I, GCC 15 building any
esp-hal-3rdparty source that uses ATOMIC_VAR_INIT (e.g.
components/esp_hw_support/esp_gpio_reserve.c) fails with:
error: implicit declaration of function 'ATOMIC_VAR_INIT'
Add the missing include directory to all esp32 chip hal*.mk files so
Make-based builds (e.g. ./tools/configure.sh esp32c3-xiao:nimble && make)
pick up the shim and compile with C17/C23 toolchains.
The equivalent CMake hal_esp32*.cmake files reference the same legacy
path; they may need the same follow-up if anyone hits this on the
CMake build path.
Fixes apache#18805.
Signed-off-by: Mukunda Rao Katta <mukunda.vjcs6@gmail.com>
xiaoxiang781216
approved these changes
Apr 26, 2026
acassis
approved these changes
Apr 26, 2026
Contributor
|
Hi, Thanks for contributing. Please add same changes to |
linguini1
requested changes
Apr 28, 2026
Contributor
linguini1
left a comment
There was a problem hiding this comment.
Hi,
When I checked out to this patch and performed the reproduction from #18805, I get this error:
Create version.h
Cloning Espressif HAL for 3rd Party Platforms
Clone: chip/esp-hal-3rdparty LN: platform/board to /home/linguini/coding/nuttx-space/apps/platform/dummy
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 0
100 1.77M 0 1.77M 0 0 1.52M 0 00:01 0
Register: hello
Register: dd
Register: dumpstack
Register: nimble
Register: nsh
Register: sh
Espressif HAL for 3rd Party Platforms: cleaning current repository...
Espressif HAL for 3rd Party Platforms: d41c921a724da2b4955832ca9d4b117b004b61c6
Espressif HAL for 3rd Party Platforms: initializing submodules...
Applying patches...
In file included from /home/linguini/coding/nuttx-space/nuttx/include/netinet/arp.h:33,
from ./common/espressif/esp_wifi_utils.c:32:
/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_libc/platform_include/net/if.h:13:10: fatal error: lwip/sockets.h: No such file or directory
13 | #include "lwip/sockets.h"
| ^~~~~~~~~~~~~~~~
compilation terminated.
ERROR: riscv-none-elf-gcc failed: 1
command: riscv-none-elf-gcc -MT ./esp_wifi_utils.o -M '-fno-common' '-Wall' '-Wstrict-prototypes' '-Wshadow' '-Wundef' '-Wno-attributes' '-Wno-unknown-pragmas' '-Wno-psabi' '-Os' '-fno-strict-aliasing' '-fomit-frame-pointer' '-ffunction-sections' '-fdata-sections' '-nostdlib' '-march=rv32imc_zicsr_zifencei' '-mabi=ilp32' '-isystem' '/home/linguini/coding/nuttx-space/nuttx/include' '-D__NuttX__' '-DNDEBUG' '-D__KERNEL__' '-Werror=return-type' '-Wno-shadow' '-Wno-undef' '-Wno-unused-variable' '-fno-jump-tables' '-fno-tree-switch-conversion' '-Wno-deprecated-declarations' '-D_RETARGETABLE_LOCKING' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/nuttx/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/nuttx/include/mbedtls' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/nuttx/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/nuttx/src/components/esp_driver_uart/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/bootloader_support/bootloader_flash/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/bootloader_support/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/bootloader_support/private_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/driver/twai/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/driver/spi/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/efuse/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/efuse/private_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/efuse/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/efuse/esp32c3/private_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_adc/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_adc/interface' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_adc/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_blockdev/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_common/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_event/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_ana_conv/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_ana_conv/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_clock/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_clock/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_dma/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_dma/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_gpio/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_gpio/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_gpspi/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_gpspi/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_i2c/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_i2c/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_i2s/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_i2s/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_ledc/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_ledc/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_mcpwm/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_mcpwm/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_mspi/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_mspi/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_parlio/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_parlio/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_pcnt/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_pcnt/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_pmu/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_pmu/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_rmt/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_rmt/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_rtc_timer/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_rtc_timer/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_security/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_security/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_timg/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_timg/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_touch_sens/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_touch_sens/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_twai/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_twai/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_uart/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_uart/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_usb/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_usb/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_wdt/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hal_wdt/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/dma/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/etm/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/include/esp_private' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/include/soc' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/include/soc/esp32c3' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/mspi/mspi_intr/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/mspi/mspi_timing_tuning/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/ldo/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/port/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/port/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/port/esp32c3/private_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/power_supply/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_mm/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_hw_support/mspi_timing_tuning/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_mm' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_mm/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_phy/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_phy/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_pm' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_pm/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_rom' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_rom/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_rom/esp32c3' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_rom/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_rom/esp32c3/include/esp32c3' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_security/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_system/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_system/port/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_system/port/include/private' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_system/port/public_compat' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_timer/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_timer/private_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_wifi/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/hal/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/hal/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/hal/platform_port/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/heap/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/log' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/log/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/log/src/log_level/tag_log_level' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/mbedtls/port/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/mbedtls/port/include/aes' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/mbedtls/port/psa_driver/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/mbedtls/mbedtls/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/mbedtls/mbedtls/tf-psa-crypto/core' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/mbedtls/mbedtls/tf-psa-crypto/drivers/builtin/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/mbedtls/mbedtls/tf-psa-crypto/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_libc/priv_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/riscv/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/soc/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/soc/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/soc/esp32c3/register' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/spi_flash/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/spi_flash/include/esp_flash_chips' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/heap/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/upper_hal_dma/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/upper_hal_dma/src' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/upper_hal_gpio/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/upper_hal_rmt/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/upper_hal_rmt/src' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/upper_hal_uart/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/nuttx/src/components/esp_libc/platform_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_libc/platform_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_app_format/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/bt/include/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_coex/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/esp_wifi//wifi_apps/roaming_app/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/components/soc/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/nuttx/esp32c3/include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip/esp-hal-3rdparty/nuttx/include/esp_wifi' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/common/espressif' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/common/espressif/platform_include' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/chip' '-I' '/home/linguini/coding/nuttx-space/nuttx/arch/risc-v/src/common' '-I' '/home/linguini/coding/nuttx-space/nuttx/sched' ./common/espressif/esp_wifi_utils.c
make[2]: *** [/home/linguini/coding/nuttx-space/nuttx/tools/Config.mk:232: esp_wifi_utils.ddc] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:235: .depend] Error 2
make: *** [tools/Unix.mk:678: pass2dep] Error 2This issue does not occur on master.
Please put your build logs from the testing in the "tests" section so I can compare my error against your environment/toolchain
Contributor
|
Actually closing due to slop; this account has had almost no activity for the last two years, but has had upwards of 500 PRs per day to many different repos in the last several weeks. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #18805.
Summary
The Make-based Espressif chip configs add
${ESP_HAL_3RDPARTY_REPO}/nuttx/src/components/esp_libc/platform_includeto the preprocessor search path, but at the pinned esp-hal-3rdparty commit (d41c921a) that directory only containsesp_newlib.h. The ESP-IDF C23-compatibilitystdatomic.hshim that re-definesATOMIC_VAR_INITwhen__STDC_VERSION__ > 201710Lactually lives at${ESP_HAL_3RDPARTY_REPO}/components/esp_libc/platform_include/stdatomic.h(without thenuttx/src/prefix).Without that path on
-I, building any esp-hal-3rdparty source that callsATOMIC_VAR_INIT(currentlycomponents/esp_hw_support/esp_gpio_reserve.c) fails on toolchains that default to a C standard newer than C17 (e.g.riscv-none-elf-gcc 15.x):This adds the missing include directory (
components/esp_libc/platform_include, alongside the existing legacy entry) to everyhal*.mkfor the seven affected chips so the shim is visible to the preprocessor.Impact
-Iflag per esp32* chip Make build.arch/xtensa/src/esp32/hal.mk,arch/xtensa/src/esp32s2/hal.mk,arch/xtensa/src/esp32s3/hal.mk,arch/risc-v/src/esp32c3/hal_esp32c3.mk,arch/risc-v/src/esp32c6/hal_esp32c6.mk,arch/risc-v/src/esp32h2/hal_esp32h2.mk,arch/risc-v/src/esp32p4/hal_esp32p4.mk.arch/risc-v/src/esp32*/hal_esp32*.cmakefiles contain the same legacy include path; they likely need the same one-line fix if anyone hits this on the CMake build path. Kept out of scope of this PR to match the reproduction in [BUG] ESP32C3 implicit declaration ofATOMIC_VAR_INIT#18805.Testing
ATOMIC_VAR_INIT#18805):./tools/configure.sh esp32c3-xiao:nimble && make -jon Linux withriscv-none-elf-gcc 15.2.0fails onesp_gpio_reserve.cwith the diagnostic above.-Iadds the shim header, so__STDC_VERSION__ > 201710Lis allowed to redefineATOMIC_VAR_INIT(val) (val)and the file compiles.