读文网>电脑>操作系统>Linux教程

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应该在的路径。

相关热搜

相关文章

【Linux教程】热点

【Linux教程】最新