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 >
