|
|
当你需要一个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中:
- CFLAGS="-O2 -march=pentium-m -mfpmath=sse -mmmx -msse -msse2 -pipe"
- FEATURES="distlocks metadata-transfer fixpackages parallel-fetch sandbox metadata-transfer"
复制代码
为了方便debug,我希望在一些软件编译的时候加入gdb的支持,同时不要把这些符号给strip掉了,于是我在/root/.bashrc中:
- 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了。 |
|