【问题标题】:Compile time error while building Linux Kernel 4.18构建 Linux Kernel 4.18 时出现编译时错误
【发布时间】:2018-10-24 19:08:11
【问题描述】:

我正在尝试在编译 Linux 内核 4.18 时禁用内联。

为此,我根据以下内容更新了 Makefile:https://elinux.org/Kernel_dynamic_memory_analysis#Obtaining_accurate_call_sites_.28or_The_painstaking_task_of_wrestling_against_gcc.29

但在编译时出现以下错误:

错误:调用带有属性错误声明的“__compiletime_assert_1094”:BUILD_BUG_ON 失败:p4d_large(*p4d)

在内核构建期间禁用内联时如何消除错误?

【问题讨论】:

    标签: linux gcc compiler-errors linux-kernel


    【解决方案1】:

    BUILD_BUG_ON() 需要一个常量表达式。有时对内联函数的调用会传递给它。 GCC 能够将一些内联函数优化为常量表达式,使其工作。禁用内联将防止这种情况,破坏构建。 (在某些情况下,这也是 Clang 的一个问题,它会在内联之前进行语义分析。)

    您可能需要更改相当多的代码才能在禁用内联的情况下构建内核。您引用的页面相当旧;想必这在当时还不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-10
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 2014-08-05
      • 2012-10-12
      相关资源
      最近更新 更多