【问题标题】:What does the "MODULE_INFO(retpoline, "Y")" macro?"MODULE_INFO(retpoline, "Y")" 宏是什么?
【发布时间】:2019-12-24 11:03:42
【问题描述】:

我在一些驱动程序源代码中看到了这一行:

MODULE_INFO(retpoline, "Y")

是什么?

【问题讨论】:

    标签: c linux-kernel linux-device-driver embedded-linux


    【解决方案1】:

    此宏定义存储在已编译模块文件中的键值对。您可以使用modinfo 命令来显示它们。例如,当你编译这个模块时,modinfo my_module.ko 会包含一行

    retpoline:      Y
    

    您可以通过搜索an LXR interface 找到宏的definition 及其文档(例如)。它由目标文件的defining a symbol in the .modinfo section 工作。

    此机制用于加载到内核中的模块和用户级工具(例如modprobe)使用的各种元数据。标准元数据包括aliaseslicenseversion等。

    retpoline 标签表示该模块是使用support for a mitigation 构建的,而不是Spectre。我不知道为什么驱动程序源代码会显式声明这一点:据我所知,在使用 retpoline 支持进行编译时,它应该自动插入(通过标头):这是编译器功能,而不是源代码的属性。

    【讨论】:

      猜你喜欢
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 2016-04-11
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多