linux binutils,Binutils的调整过程和Gcc的调整过程

Binutils的调整过程

要想能调整binutils必须自己编译一个ld命令,ld是个链接器,是整个编译过程中最后一步要执行的命令,要根据库生成程序文件。

以lfs中的为例:

../binutils-2.20/configure --prefix=/tools --disable-nls --with-lib-path=/tools/lib

make

make install

make -C ld clean

make -C ld LIB_PATH=/usr/lib:/lib

cp -v ld/ld-new /tools/bin

这个过程会把binutils安装在/tools目录下,并生成一个ld-new放到/tools/bin下。

这个过程会生成两个ld,ld和ld-new。这两个ld的不同这处在于它们的搜索路径不同。

ld的搜索路径为/tools/lib,在configure时用--with-lib-path=/tools/lib设置。

ld-newr的搜索路径为/usr/lib:/lib,在重新生成ld时用LIB_PATH=/usr/lib:/lib设置。

这样只要把这两个ld保存好,到时想依赖哪个glibc就用对应ld就行了,不要告诉我你不知道用哪个哟。

Gcc的调整过程

gcc –dumpspecs会输出gcc的现有配制。Sed是个行正则处理工具,把输出的配制中的某些字符串统一替换。

gcc -dumpspecs | sed \

-e 's@/lib\(64\)\?/ld@/tools&@g' \

-e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" \

> $(dirname $($LFS_TGT-gcc -print-libgcc-file-name))/specs

上面的过程大致为gcc输出配制给sed,sed替换后输出到specs文件。

$(dirname $($LFS_TGT-gcc -print-libgcc-file-name))为specs应该在的路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值