红联Linux门户
Linux帮助

以-O0 -g编译Linux内核的办法

发布时间:2007-08-18 00:02:04来源:红联作者:cights
  今天为了研究linux的slub分配器.编译了um来调试.但是由于linux内核默认情况下使用-O2,而最低要求需要-O1才能编译成功.在打开优化的情况下,调试起来源代码会乱跳.为了解决这个问题,我折腾了几分钟.发现有三个地方需要修改就可以了

  第一处 include/linux/compiler-gcc.h 在里面inline __inline这些定义之后都有 aways_inline的attribute,要把这个属性删除

  另一处, 在menuconfig里,kernel hack里面不选中"Force gcc to inline functions marked inline"

  当然,最后,Makefile里面那个-O2要删除掉,也就是不用任何优化来编译(貌似这个时候就是-O0)

  之后用make ARCH=um 就可以编译成功了. 我精简过的um编译出来大概15M.(选择了compile the kernel with debug info)
文章评论

共有 0 条评论