编译内核模块时如何解决“objtool错误”?

How to solve "objtool error" when compiling kernel module?

提问人:Frontier_Setter 提问时间:6/30/2023 更新时间:6/30/2023 访问量:256

问:

我尝试使用以下脚本编译内核模块:

obj-m :=rwsem_bench.o 
all:
    make -C /lib/modules/$(shell uname -r)/build SUBDIRS=$(PWD) modules
clean:
    make -C /lib/modules/$(shell uname -r)/build SUBDIRS=$(PWD) clean 

我已经成功地在 Kernel-4.18 和 GCC-4.8.5 上编译和安装了相同的模块。

但是,当我切换到 Kernel-5.14 和 GCC-8.3.1 时,它失败了,并显示以下消息:

make -C /lib/modules/5.14.0.xxxx.x86_64/build SUBDIRS=/home/sre/rwsem modules
make[1]: Entering directory `/usr/src/kernels/5.14.0.xxxx.x86_64'
scripts/Makefile.build:481: warning: overriding recipe for target `modules.order'
Makefile:1506: warning: ignoring old recipe for target `modules.order'
  DESCEND objtool
make[4]: *** [/usr/src/kernels/5.14.0.xxxx.x86_64/tools/objtool/objtool-in.o] 
Error 1
make[3]: *** [objtool] Error 2
make[2]: *** [tools/objtool] Error 2
make[1]: *** [__sub-make] Error 2
make[1]: Leaving directory `/usr/src/kernels/5.14.0.xxxx.x86_64'
make: *** [all] Error 2

我不知道这是什么意思,也不知道如何解决。

编译器错误 linux 内核 内核模块

评论


答: 暂无答案