Skip to content

zephyr: Kconfig: Declare SILABS_SISDK_RAIL_MULTIPROTOCOL - #314

Draft
buckleypaul wants to merge 1 commit into
HubbleNetwork:mainfrom
buckleypaul:fix/silabs-kconfig-typeless-symbol
Draft

zephyr: Kconfig: Declare SILABS_SISDK_RAIL_MULTIPROTOCOL#314
buckleypaul wants to merge 1 commit into
HubbleNetwork:mainfrom
buckleypaul:fix/silabs-kconfig-typeless-symbol

Conversation

@buckleypaul

Copy link
Copy Markdown
Collaborator

Kconfig.silabs sets a configdefault on SILABS_SISDK_RAIL_MULTIPROTOCOL, which Zephyr declares in modules/hal_silabs/simplicity_sdk/Kconfig. That glue only exists in trees carrying the Simplicity SDK HAL, so on older trees the configdefault is the symbol's only definition. Kconfig then reports it as typeless and Zephyr turns that warning into an error, failing every build at CMake configure:

warning: SILABS_SISDK_RAIL_MULTIPROTOCOL (defined at
port/zephyr/Kconfig.silabs:11) defined without a type
error: Aborting due to Kconfig warnings

This broke all TI board builds on the simplelink-zephyr v3.7.0 fork. SOC_GECKO_CUSTOM_RADIO_PHY is unaffected: soc/silabs/Kconfig declares it in both old and new trees.

Declare the symbol here so it always has a type. Where the real definition exists, Kconfig merges the two and its prompt and dependencies still apply; where it does not, the symbol is inert because nothing references it.

Verified with both the v3.7.0-ti and v4.4.0 kconfiglib against trees with and without the upstream declaration: the warning is gone in all four combinations and the resulting value is unchanged.

Kconfig.silabs sets a configdefault on SILABS_SISDK_RAIL_MULTIPROTOCOL,
which Zephyr declares in modules/hal_silabs/simplicity_sdk/Kconfig. That
glue only exists in trees carrying the Simplicity SDK HAL, so on older
trees the configdefault is the symbol's only definition. Kconfig then
reports it as typeless and Zephyr turns that warning into an error,
failing every build at CMake configure:

  warning: SILABS_SISDK_RAIL_MULTIPROTOCOL (defined at
    port/zephyr/Kconfig.silabs:11) defined without a type
  error: Aborting due to Kconfig warnings

This broke all TI board builds on the simplelink-zephyr v3.7.0 fork.
SOC_GECKO_CUSTOM_RADIO_PHY is unaffected: soc/silabs/Kconfig declares it
in both old and new trees.

Declare the symbol here so it always has a type. Where the real
definition exists, Kconfig merges the two and its prompt and
dependencies still apply; where it does not, the symbol is inert
because nothing references it.

Verified with both the v3.7.0-ti and v4.4.0 kconfiglib against trees
with and without the upstream declaration: the warning is gone in all
four combinations and the resulting value is unchanged.

Signed-off-by: Paul Buckley <paul@hubble.com>
@ceolin

ceolin commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

I tried to do something else to avoid re-define the symbol because it weakens possible symbol dependencies but there is no proper way.

The problem is not only for TI, it also affects Zephyr's 3.7.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants