-
Notifications
You must be signed in to change notification settings - Fork 5.3k
fix: warnings generated by Kconfig. #10643
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📌 Code Review Assignment🏷️ Tag: componentsReviewers: @Maihuanyi Changed Files (Click to expand)
🏷️ Tag: kernelReviewers: @GorrayLi @ReviewSun @hamburger-os @lianux-mm @wdfk-prog @xu18838022837 Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2025-08-28 10:30 CST)
📝 Review Instructions
|
GorrayLi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
wdfk-prog
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR fixes Kconfig warnings generated by kconfiglib by explicitly naming anonymous choice blocks. The warnings occur because anonymous choices create temporary object IDs that can cause reference mismatches during choice sanity checks.
- Adds explicit names to 19 previously anonymous choice blocks across various configuration files
- Resolves warning messages from kconfiglib's choice sanity checking
- Maintains functional behavior while improving Kconfig parsing reliability
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/Kconfig | Names 4 choice blocks for AMP role, thread priority, memheap mode, and heap type |
| libcpu/Kconfig | Names RISC-V vector length choice block |
| components/utilities/rt-link/Kconfig | Names RT-Link CRC choice block |
| components/utilities/Kconfig | Names 2 ULOG output level choice blocks |
| components/net/lwip/Kconfig | Names lwIP version choice block |
| components/legacy/usb/Kconfig | Names USB composite device choice block |
| components/drivers/virtio/Kconfig | Names VirtIO version choice block |
| components/drivers/usb/cherryusb/Kconfig | Names 4 CherryUSB choice blocks for device speed, IP, template, and host IP |
| components/drivers/serial/Kconfig | Names 2 serial version and mode choice blocks |
| components/dfs/Kconfig | Names 3 DFS choice blocks for version, LFN name, and unicode support |
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
没有名字的 choice → 在 Kconfig 里它就是一个匿名 choice,kconfiglib 内部会分配一个临时对象 ID。
这时 default RT_USING_DFS_V1 指向 V1,但在 _check_choice_sanity() 时,它会检查 default.choice is choice,结果可能对不上(匿名 choice 在解析时会生成两个对象副本),于是报 warning。
有名字的 choice RT_USING_DFS_VERSION → 这个 choice 成了一个有名字的 symbol,kconfiglib 会把它注册进符号表,所有地方引用的都是同一个对象。
所以 default.choice 和 choice 指向的就是同一个实例,不会触发警告
你的解决方案是什么 (what is your solution)
给 choice 显式命名(choice XXX)就能保证引用一致。
请提供验证的bsp和config (provide the config and bsp)
无
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up