LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 695|回复: 2

用alias帮你完成特殊需要的emerge

[复制链接]
发表于 2008-12-28 00:32:31 | 显示全部楼层 |阅读模式
当你需要一个C写的软件加入符号表以方便用gdb来debug的时候,在/etc/make.conf中优化用的CFLAGS和FEATRUES就得加以更改,以加入-ggdb3这样的flags和nostrip这样的feature。如果你全局使用-ggdb3这种CFLAGS的话,你的系统很可能会膨胀4倍。显然这不是我们愿意看到的。

但为了给一个包加debug信息,总是改make.conf也很麻烦。所以我们可以在root的.bashrc和.bash_profile中建立一条alias方便我们不改make.conf也能进行这种特殊的emerge。具体就是建立一个emergee的命令,这个命令实际上是完成类似 CFLAGS="XXXX" emerge的工作,比如我的/etc/make.conf中:
  1. CFLAGS="-O2 -march=pentium-m -mfpmath=sse -mmmx -msse -msse2 -pipe"
  2. FEATURES="distlocks metadata-transfer fixpackages parallel-fetch sandbox metadata-transfer"
复制代码

为了方便debug,我希望在一些软件编译的时候加入gdb的支持,同时不要把这些符号给strip掉了,于是我在/root/.bashrc中:
  1. alias emergee='CFLAGS="-O0 -march=pentium-m -mfpmath=sse -mmmx -msse -msse2 -pipe -ggdb3 -Wall" FEATURES="distlocks metadata-transfer fixpackages parallel-fetch sandbox metadata-transfer nostrip" emerge'
复制代码

即,我把-O2关掉了,同时加上了-ggdb3和-Wall;并要求emerge的时候nostrip。同时,我在/root下 ln -s .bashrc .bash_profile,这样不管你用的是什么终端,root登陆后都能source到.bashrc中的内容。

如此一来,需要gdb的debug支持的时候,我就 emergee,不需要gdb支持的时候就用正常的emerge就OK了。
发表于 2008-12-28 00:40:53 | 显示全部楼层
我是写了个脚本叫debugemerge
http://www.gentoo-cn.org/gitweb/ ... e4665ab38db;hb=HEAD
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-28 13:24:36 | 显示全部楼层
发现忘了还有USE的debug
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表