Linux.config 中缺少配置选项

Missing config option from Linux .config

我试图在我的 Linux .config 文件中将 CONFIG_DEBUG_INFO_BTF 选项设置为 y。由于某种原因,即使在 运行 宁 make olddefconfig 之后,.config 中也缺少此配置项,并且当我手动将 CONFIG_DEBUG_INFO_BTF=y 添加到 .config 时,该选项被删除只要我 运行 make。发生了什么事?

当从 .config 中省略一个选项时(以及当它被构建过程自动从 .config 中删除时),这与没有设置选项相同。

查看最初定义该选项的Kconfig 文件。该选项必须依赖于其他配置选项,并且不满足这些依赖性,这就是构建过程自动从 .config 中删除该选项的原因。

DEBUG_INFO_BTFlib/Kconfig.debug 中定义。这是定义:

config DEBUG_INFO_BTF
  bool "Generate BTF typeinfo"
  depends on !DEBUG_INFO_SPLIT && !DEBUG_INFO_REDUCED
  depends on !GCC_PLUGIN_RANDSTRUCT || COMPILE_TEST
  help 
    Generate deduplicated BTF type information from DWARF debug info.
    Turning this on expects presence of pahole tool, which will convert
    DWARF type info into equivalent deduplicated BTF type info.

DEBUG_INFO_BTF 取决于 DEBUG_INFO_SPLIT 选项是否关闭。在我的 .config 文件中,CONFIG_DEBUG_INFO_SPLIT 被设置为 y,这就是 CONFIG_DEBUG_INFO_BTF=y 被构建过程自动删除的原因(以及为什么最初从我的 .config 文件)。取消设置 DEBUG_INFO_SPLIT 选项解决了我的问题。