Hi Maarten,

Seems like someone added the select but forgot to create the config.

And at least for the first symbol from your list, the issue is fallbacken
by the #ifndef ...#define:

$ git grep ARCH_CHIP_AT32UC3A0
arch/avr/src/at32uc3/Kconfig:config ARCH_CHIP_AT32UC3A0512
arch/avr/src/at32uc3/Kconfig:   select ARCH_CHIP_AT32UC3A0
arch/avr/src/at32uc3/chip.h:#if defined (CONFIG_ARCH_CHIP_AT32UC3A0512)
arch/avr/src/at32uc3/chip.h:#  define CONFIG_ARCH_CHIP_AT32UC3A0 1
   /* UC3 A0 (144-pin) series */
boards/Kconfig: depends on ARCH_CHIP_AT32UC3A0512
boards/avr/at32uc3/mizar32a/configs/nsh/defconfig:CONFIG_ARCH_CHIP_AT32UC3A0512=y

Mateusz (raiden00pl) suggested removing this kind of fallback defines,
because the symbol should be defined in the Kconfig anyway.

So, I think what you found is another reason to remove these #defines in
the code, that way the error should be clear.

BR,

Alan

On Fri, Feb 20, 2026 at 2:42 PM Maarten Zanders <[email protected]>
wrote:

> Hi,
>
> After submitting this PR (https://github.com/apache/nuttx/pull/18418),
> I wondered if there were more of these "ghost selects".
>
> So with these commands (thank you Claude) I created a list:
>
> # get all config, menuconfig and choice items
> find . -name 'Kconfig*' | xargs grep -hE
> '^\s*(config|menuconfig|choice)\s+\S' | awk '{print $2}' | sort -u >
> /tmp/kconfig_syms.txt
> # get all select items
> find . -name 'Kconfig*' | xargs grep -h '^\s*select ' | awk '{print
> $2}' | sort -u > /tmp/kconfig_select_syms.txt
> # compare files with some magic option
> comm -23 /tmp/kconfig_select_syms.txt /tmp/kconfig_syms.txt
>
> Results down below.
>
> Searching these items in the code repo confirms they (at least the
> ones I checked) are similar "ghost selects". Ie selected configuration
> items which result in nothing.
> Should we remove them to clear up the clutter? What test approach is
> advised?
>
> Cheers,
> Maarten
>
>
> ARCH_CHIP_AT32UC3A0
> ARCH_CHIP_ESPRESSIF
> ARCH_FAMILY_HPM6300
> ARCH_FAMILY_SAME53
> ARCH_FAMILY_SAME54
> ARCH_HAVE_DFPU
> ARCH_HAVE_DFSDM1
> ARCH_HAVE_EXTSDRAM
> ARCH_HAVE_HASH
> ARCH_HAVE_LPUART1
> ARCH_HAVE_TIMER0
> ARCH_HAVE_TIMER1
> ARCH_HAVE_TIMER2
> ARCH_HAVE_TIMER3
> ARCH_HAVE_UART0
> ARCH_HAVE_UART1
> ARCH_HAVE_UART2
> ARCH_HAVE_UART3
> ARCH_HAVE_UART4
> ARM_HAVE_DPFPU
> ARMV8A_HAVE_GICv2
> ARMV8A_HAVE_GICv3
> AT32_HAVE_FLASH_DCACHE
> AT32_HAVE_FLASH_ICACHE
> AT32_HAVE_IOCOMPENSATION
> AT32_HAVE_SDIO
> AT32_HAVE_SDIO2
> AT32_USART_TXDMA
> C906_UART
> EFM32_TIMER
> ESP_MAC_ADDR_UNIVERSE_BT
> ESP_MAC_ADDR_UNIVERSE_ETH
> ESP_MAC_ADDR_UNIVERSE_WIFI_AP
> ESP_MAC_ADDR_UNIVERSE_WIFI_STA
> ESP_SYSTEM_RTC_EXT_XTAL
> FB
> FE310_HAVE_GPIO
> FE310_UART
> full
> GD32F4_HAVE_ADC0_DMA
> GD32F4_HAVE_ADC1_DMA
> GD32F4_HAVE_ADC2_DMA
> GD32F4_HAVE_SDIO
> GD32F4_USART_TXDMA
> GD32_USART0
> GD32_USART3
> HPM6750_UART
> HPM_HAVE_UART
> K210_UART
> LITEX_SDIO_DMA
> LITEX_UART
> MAX326XX_HAVE_PTENGINE
> MTD_AM29LV
> NRF52_HAVE_BLELR
> NRF91_SERIAL1
> PUART_SERIALDRIVER
> RV32M2_LPUART
> S32k3XX_HAVE_SDHC
> SAMA5D27_JUPITER_NANO_498MHZ
> SAMA5_SDMMC_DMA
> SAMV71XULT_SLOWCLOCK
> SENSORS_LIS3DSH
> STM32F7_FLASH_CONFIG_C
> STM32H5_HAVE_ICACHE_REMAP
> STM32H5_HAVE_SPI4
> STM32H5_STM32H5X3XX
> STM32_HAVE_I2C1
> STM32_HAVE_OTGHS
> STM32_HAVE_SPI1
> STM32_HAVE_USART2
> STM32L5_DFSDM
> STM32U5_DFSDM
> STM32WB_HAVE_HSI48
> STM32WL5_STM32WL5XXX_CPU2
> TMS570_SPI
> XTENSA_HAVE_INTERRUPTS
>

Reply via email to