编译Linux-0.11内核

 
make[1]:正在离开目录 `/home/guang/temp/h/linux-0.11/lib'
kernel/kernel.o: In function `number':
/home/guang/temp/h/linux-0.11/kernel/vsprintf.c:92: undefined reference to `__stack_chk_fail'
fs/fs.o: In function `do_execve':
/home/guang/temp/h/linux-0.11/fs/exec.c:353: undefined reference to `__stack_chk_fail'
kernel/chr_drv/chr_drv.a(tty_ioctl.o): In function `tty_ioctl':
/home/guang/temp/h/linux-0.11/kernel/chr_drv/tty_ioctl.c:204: undefined reference to `__stack_chk_fail'
make: *** [tools/system] 错误 1

看网上说:加-fno-stack-protector选项,可惜ubuntu10.04自带的gcc版本是4.4,没有这个选项。

决定在虚拟机的ubuntu12.04试试。ubuntu 12.04上gcc有这个选项。

然后真的成功了,内核编译好了。

需要注意的有两点

1.linux-0.11所有目录下的makefile和Makefile的CFLAGS都要加上-fno-stack-protector选项

2.如果以前失败过一次,应该make clean.因为make不会只会编译变化了的文件(额,没说清,但是写过makefile应该懂)。

开始时还遇到一个错误,那是源代码linux-0.11-081030.tar.gz的错误。

86:#eli

87:#error

没有#error这个语法,将这两行注释掉就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值