【Linux内核编译】编译linux4.1内核问题总结

文章讲述了在Ubuntu22中处理gcc-11版本问题,涉及版本切换、内核文件操作和Makefile配置。
摘要由CSDN通过智能技术生成

各种问题解决

1.linux/compiler-gcc11.h:没有那个文件或目录

在这里插入图片描述

分析:查看include/linux目录下只有compiler-gcc4,compiler-gcc5,没有compiler-gcc11,推断是由于gcc版本过高(此处为11)导致的。

解决方法:

法一:更换gcc版本(这里更换gcc版本为7,其实得更换5)(ubuntu22如何下载gcc-5)

补充:换成gcc5之后会引发新的问题,可以使用方法二三解决。

#安装gcc-7 / g++-7
sudo apt-get update 
sudo apt-get install gcc-7
sudo apt-get install g++-7、

#将需要的版本添加到 update-alternatives 中
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

#手动配置 update-alternatives
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

#删除
sudo update-alternatives --remove gcc /usr/bin/gcc-7

在这里插入图片描述在这里插入图片描述

法二:在内核文件夹中include/linux目录下找到compiler-gcc3.h或者compiler-gcc4.h等文件,将其中一个重命名为compiler-gcc11.h(它没找到的文件)。

法三:在新的内核源码中拷贝一个compiler-gcc11.h到内核文件夹include/linux目录下

2.kernel/bounds.c:1:0: error: code model kernel does not support PIC mode

原因是gcc-5自己加了个fpie 所以修改Makefile文件,在后面加个这个-fno-pie

在这里插入图片描述

3.arch/x86/vdso/vdso32/note.S:1:0: sorry, unimplemented: -mfentry isn’t supported for 32-bit in combination with -fpic

同样Makefile文件后加这个-fno-pic

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值