gpt4 book ai didi

c - Linux内核补丁版本宏定义

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:57 24 4
gpt4 key购买 nike

我想为 centos 7 内核构建我的内核模块。但是我对某些函数原型(prototype)有疑问。它在 kernel-3.10.0-327.36.3.el7 和 kernel-3.10.0-514.el7 中有所不同。我知道如何使用 Linux Kernel Version Macro Definition .但我需要检查内核补丁版本和 linux 目录名称。

有人知道用于检查内核补丁版本的预处理器宏吗?

最佳答案

我刚刚找到了一些信息。我们可以在内核头文件中使用 Makefile 中的一些预定义变量。例如在 centos 7 中我们有 kernel-3.10.0-514.16.1.el7。文件/usr/src/kernels/3.10.0-514.16.1.el7.x86_64/Makefile 中有变量:

VERSION = 3
PATCHLEVEL = 10
SUBLEVEL = 0
EXTRAVERSION = -514.16.1.el7.x86_64
NAME = Unicycling Gorilla
RHEL_MAJOR = 7
RHEL_MINOR = 3
RHEL_RELEASE = 514.16.1
...

在内核模块的 Makefile 中,我们可以通过 -DPATCH_VERSION=${RHEL_RELEASE} gcc 参数(或 centos 7 中的示例)将其放入我们的源代码中。但是需要检查发行版,因为在 debian 中没有 RHEL_RELEASE 变量。

我认为有更好的方法。

关于c - Linux内核补丁版本宏定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44133917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com