Plus we should use "depends on" instead "select" right? :-)

--
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info

On Fri, Feb 20, 2026 at 6:52 PM Alan C. Assis <[email protected]> wrote:
>
> 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