我想跟踪 Linux 内核 kconfig 设置中的依赖循环。
使用 gcc-6.3 编译时,我可以毫无问题地执行以下操作:
$ make ARCH=powerpc custom_defconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
然而现在,如果我再次尝试使用 gcc-8.2 版本,似乎会触发一些新的东西。相反,我得到:
$ make ARCH=powerpc custom_defconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
GEN Makefile
scripts/kconfig/conf --syncconfig Kconfig
*
* Restart config...
*
*
* General architecture-dependent options
*
OProfile system profiling (OPROFILE) [M/n/y/?] m
Kprobes (KPROBES) [Y/n/?] y
Optimize very unlikely/likely branches (JUMP_LABEL) [N/y/?] n
Stack Protector buffer overflow detection (STACKPROTECTOR) [Y/n/?] (NEW)
我当然已经验证了我的custom_defconfig
最小化(与savedefconfig
运行没有差异)。所以看来我在 kconfig 选项中触发了某种循环。我如何跟踪它们,以便向内核维护者报告准确的信息?
答案1
事实证明,没有任何依赖循环,这只是一个用户错误,正确的步骤是在配置和构建中使用相同的编译器,例如:
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- custom_defconfig
$ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-