+ -
当前位置:首页 → 问答吧 → 求助 binutils 编译出错

求助 binutils 编译出错

时间:2007-05-28

来源:互联网

按照 Linux From Scratch 6.2 上写的方法,编译 binutils 第一遍,结果就出错了。

../binutils-2.16.1/configure --prefix=/tools --disable-nls
make
make install
make -C ld clean

都是正确的

make -C ld LIB_PATH=/tools/lib

开始出错。报的错误是/tools/bin/ld: unrecognized option '--hash-style=gnu'
各位大侠有没有遇到过这样的错误啊,应该怎么解决阿,多谢了
下面是出错时详细的输出内容,(我的 $LFS 是 /home/lfs/lfs)

。。。。。。。。。。。。
make[2]: Entering directory `/home/lfs/lfs/sources/binutils-build/ld'
/bin/sh ./libtool --mode=link 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/libbfd.la ../libiberty/libiberty.a
gcc -W -Wall -Wstrict-prototypes -Wmissmake[2]: Entering directory `/home/lfs/lfs/sources/binutils-build/ld'
/bin/sh ./libtool --mode=link 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/libbfd.la ../libiberty/libiberty.a
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
/tools/bin/ld: unrecognized option '--hash-style=gnu'
/tools/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
make[2]: *** [ld-new] Error 1
make[2]: Leaving directory `/home/lfs/lfs/sources/binutils-build/ld'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/lfs/lfs/sources/binutils-build/ld'
make: *** [all-recursive-am] Error 2
make: Leaving directory `/home/lfs/lfs/sources/binutils-build/ld'
ing-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
/tools/bin/ld: unrecognized option '--hash-style=gnu'
/tools/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
make[2]: *** [ld-new] Error 1
make[2]: Leaving directory `/home/lfs/lfs/sources/binutils-build/ld'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/lfs/lfs/sources/binutils-build/ld'
make: *** [all-recursive-am] Error 2
make: Leaving directory `/home/lfs/lfs/sources/binutils-build/ld

作者: dormousebhu   发布时间: 2007-05-28

rm -fr binutils-build &&
rm -fr binutils-2.16.1 &&
export LDFLAGS="-s"
然后重来看看?

作者: csfrank   发布时间: 2007-05-28

引用:
作者: csfrank
rm -fr binutils-build &&
rm -fr binutils-2.16.1 &&
export LDFLAGS="-s"
然后重来看看?
试过了,还是报错.同样的错误。。。

作者: dormousebhu   发布时间: 2007-05-28

你干嘛要用 hash gnu ?
binutils-2.17.0.50.12 以后的版本才能用的哦。

作者: 晨想   发布时间: 2007-05-28

第一,你的宿主系统是。。。?
第二,把 export 的结果贴出来。。。
第三,试一试 make -C ld LIB_PATH=/tools/lib LDFLAGS="-s" CC=gcc CFLAGS="-O2 -pipe"
你的问题貌似很诡异,--hash-style=gnu 怎么会跑进来的...

作者: csfrank   发布时间: 2007-05-28

这个在lfs官方的手册上有解决方法:
引用:
The first pass of Binutils may fail to build with /bin/ld: unrecognized option '--hash-style=both' on newer hosts (e.g. Fedora Core 6). This can be fixed by changing the Binutils configure command to CC="gcc -B/usr/bin/" ../binutils-2.16.1/configure [configure parameters] and, similarly, the GCC pass 1 configure command to CC="gcc -B/usr/bin/" ../gcc-3.4.3/configure [configure parameters]

作者: LanEast   发布时间: 2007-05-28

LanEast 的正解
http://www.linuxfromscratch.org/lfs/errata/stable/

作者: csfrank   发布时间: 2007-05-28

太感谢了。确实是正解。但是为什么这样就可以了呢,哪位大侠给我解释一下吧

作者: dormousebhu   发布时间: 2007-05-29

新版的FC用了 gnu.hash。LFS 的工具链暂时还不支持。所以出错。。。

作者: 晨想   发布时间: 2007-05-29

做个标记,省得下次又忘了。。
每找一次都花了很多时间

作者: tzfox   发布时间: 2008-11-07