内核2.6.22.6编译出现 undefined reference to __mutex_unlock_slowpath,

时间:2023-01-01 05:29:43

昨天重下午开始到晚上2点多都没有解决这个问题,今天一大早 起来又开始弄,总算在这个时候吧这个问题解决了

  首先谈一下我的内核是2.6.22.6 编译器的版本是GCC-4.8

按照别人的教程。先 #make oldconfig 在#make 但是在此时出现了如下的问题:

内核2.6.22.6编译出现 undefined reference to __mutex_unlock_slowpath,

(注:提图片是网上截图完成,并不代表所有的linux内核编译)

在着了我是想告诉大家,我的问题是怎么解决的,你看到图片的第二行有个说明是:kernel/built—in.o:in function  'mutex_lock'

在这句话里面,那你可以发现,你的函数mutex_lock很有可能在kernel某个函数文件里面,我们现在试着进去kernel/去找找看有没有

关于mutex_lock的函数文件

内核2.6.22.6编译出现 undefined reference to __mutex_unlock_slowpath,

你会看到在kernel目下确实有几个关于muxtex的文件,这个时候我们只需要打开一个相关的文件分别查看一下,就知道了

很显然我们会打开mutex.c,用Vim打开,你会看到有关的编译错误出现的函数

内核2.6.22.6编译出现 undefined reference to __mutex_unlock_slowpath,

看到这里你会不会感到十分惊喜,因为你解决问题只有一步之遥了,看到我在图片上的红圈没,那个是我自己加上去了,

你在编译出错时,当你打开此文件时,是没有这个__used的,在这个文件里面,一共有三处地方要改动,那就你自己去改吧,

当你看到  __mutex_unlock_slowpath();这个函数是,同样也要在这个函数前面加上__used


至于为啥要加上__used  请百度或者Google