LinuxSir.cn,穿越时空的Linuxsir!

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

[求助]make -C ld LIB_PATH=/tools/lib时出错(5.3. Binutils-2.16.1 - Pass 1)

[复制链接]
发表于 2006-11-12 11:49:35 | 显示全部楼层 |阅读模式
LFS 6.2,宿主系统 FC6.i386 (gcc (Red Hat 4.1.1-30))

按照 LFS 6.2 文档的步骤来的,之前一切正常,在编译第一个软件包(5.3. Binutils-2.16.1 - Pass 1)时有如下错误:


  1. lfs:/mnt/lfs/sources/binutils-build $ make -C ld LIB_PATH=/tools/lib
  2. ..............
  3. gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -o ld-new ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o eelf_i386.o ei386linux.o  ../bfd/.libs/libbfd.a ../libiberty/libiberty.a
  4. /tools/bin/ld: unrecognized option '--hash-style=gnu'
  5. /tools/bin/ld: use the --help option for usage information
  6. collect2: ld returned 1 exit status
  7. make[2]: *** [ld-new] Error 1
  8. make[2]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
  9. make[1]: *** [all-recursive] Error 1
  10. make[1]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
  11. make: *** [all-recursive-am] Error 2
  12. make: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
复制代码


说是/tools/bin/ld 未识别参数 '--hash-style=gnu' ?
这是什么意思?
发表于 2006-11-17 16:10:05 | 显示全部楼层
Post by dave3068
LFS 6.2,宿主系统 FC6.i386 (gcc (Red Hat 4.1.1-30))

按照 LFS 6.2 文档的步骤来的,之前一切正常,在编译第一个软件包(5.3. Binutils-2.16.1 - Pass 1)时有如下错误:


  1. lfs:/mnt/lfs/sources/binutils-build $ make -C ld LIB_PATH=/tools/lib
  2. ..............
  3. gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -o ld-new ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o ldwrite.o ldexp.o ldemul.o ldver.o ldmisc.o ldfile.o ldcref.o eelf_i386.o ei386linux.o  ../bfd/.libs/libbfd.a ../libiberty/libiberty.a
  4. /tools/bin/ld: unrecognized option '--hash-style=gnu'
  5. /tools/bin/ld: use the --help option for usage information
  6. collect2: ld returned 1 exit status
  7. make[2]: *** [ld-new] Error 1
  8. make[2]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
  9. make[1]: *** [all-recursive] Error 1
  10. make[1]: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
  11. make: *** [all-recursive-am] Error 2
  12. make: Leaving directory `/mnt/lfs/sources/binutils-build/ld'
复制代码


说是/tools/bin/ld 未识别参数 '--hash-style=gnu' ?
这是什么意思?
碰到同你一样的问题。
在找了一下,发现FC6的binutils的版本太新,使用了新的特性--hash-style。由于当前的binutils不支持这个特性导致。
从往上下载一个新的binutils(2.6.17.50-06)可以解决这个问题。
不过不知道gcc会不会有这个问题。
编译中 。
回复 支持 反对

使用道具 举报

发表于 2006-11-17 19:03:46 | 显示全部楼层
我倒是怀疑 FC6 的 Toolchain 打得太多补丁了,若果还是不行就换主系统吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-21 09:29:38 | 显示全部楼层
问题暂时解决了,不想用VM(太慢了,binutils Pass1 用VM要7m43s,用主系统只要4m13s),又不想换系统,于是参考lfs Book后面的章节,所以利用现成的资源:(之前下载了LFS LiveCD)
  1. su
  2. mount /file/to/lfslivecd-x86-6.2-3.iso /mnt/iso -o loop
  3. mount /mnt/iso/root.ext2 /mnt/tmp -o loop
  4. LFSISO=/mnt/tmp
  5. mkdir $LFS/{dev,proc,sys}
  6. mknod -m 600 $LFS/dev/console c 5 1
  7. mknod -m 666 $LFS/dev/null c 1 3
  8. mount --bind /dev $LFS/dev
  9. mount -vt devpts devpts $LFS/dev/pts
  10. mount -vt tmpfs shm $LFS/dev/shm
  11. mount -vt proc proc $LFS/proc
  12. mount -vt sysfs sysfs $LFS/sys
  13. mkdir $LFS/{bin,sbin,lib,usr}
  14. mount --bind $LFSISO/bin $LFS/bin
  15. mount --bind $LFSISO/sbin $LFS/sbin
  16. mount --bind $LFSISO/lib $LFS/lib
  17. mount --bind $LFSISO/usr $LFS/usr
  18. mkdir $LFS/root
  19. /usr/sbin/chroot "$LFS" /usr/bin/env -i HOME=/root
  20. TERM="$TERM" PS1='u:w $ '
  21. PATH=/tools/bin:/bin:/sbin:/usr/bin:/usr/sbin
  22. /bin/bash --login +h
复制代码
如此,第一次binutils可以成功完成,之后这样继续下去我想应该也没问题(至少到现在也还没出什么问题),要不返回lfs帐号也可 :-)
回复 支持 反对

使用道具 举报

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

本版积分规则

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