学习啦>学习电脑>操作系统>Linux教程>

Binutils的调整过程和Gcc的调整过程

时间: 若木635 分享

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

Binutils的调整过程和Gcc的调整过程

Binutils的调整过程 要想能调整binutils必须自己编译一个ld命令,ld是个链接器,是整个编译过程中最后一步要执行的命令,要根据库生成程序文件。 以lfs中的为例: ../binutils-2.20/configure --prefix=/tools --disable-nls --with-lib
推荐度:
点击下载文档文档为doc格式
75429