#1988 closed defect (fixed)
Error First pass of Binutils
| Reported by: | beojan | Owned by: | |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | Book | Version: | 6.2 |
| Severity: | major | Keywords: | |
| Cc: |
Description
The first pass build of binutils didn't build:
lfs@ubuntu:/home/beojan/BJOS/sources/binutils-build$ make -C ld LIB_PATH=/tools/lib
make: Entering directory `/home/beojan/BJOS/sources/binutils-build/ld'
make all-recursive
make[1]: Entering directory `/home/beojan/BJOS/sources/binutils-build/ld'
Making all in po
make[2]: Entering directory `/home/beojan/BJOS/sources/binutils-build/ld/po'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/beojan/BJOS/sources/binutils-build/ld/po'
make[2]: Entering directory `/home/beojan/BJOS/sources/binutils-build/ld'
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldgram.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldlex.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/lexsup.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldlang.c
../../binutils-2.16.1/ld/ldlang.c: In function 'lang_output_section_statement_lookup_1':
../../binutils-2.16.1/ld/ldlang.c:654: warning: dereferencing type-punned pointer will break strict-aliasing rules
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/mri.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldctor.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c -DDEFAULT_EMULATION='"elf_i386"' \
-DSCRIPTDIR='"/tools/i686-pc-linux-gnu/lib"' -DBINDIR='"/tools/bin"' \
-DTOOLBINDIR='"/tools/i686-pc-linux-gnu/bin"' \
-DTARGET='"i686-pc-linux-gnu"' -DTARGET_SYSTEM_ROOT=\"\" \
../../binutils-2.16.1/ld/ldmain.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldwrite.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldexp.c
(echo "/* This file is automatically generated. DO NOT EDIT! */";\
for f in `echo " " eelf_i386.o ei386linux.o "" \
| sed -e 's/ e/ ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
echo "extern ld_emulation_xfer_type ld_${f}_emulation;"; \
done;\
echo "";\
echo "#define EMULATION_LIST \\";\
for f in `echo " " eelf_i386.o ei386linux.o "" \
| sed -e 's/ e/ ld/g' -e 's/ ld/ /g' -e 's/[.]o//g'`; do \
echo " &ld_${f}_emulation, \\"; \
done;\
echo " 0") >ldemul-tmp.h
mv ldemul-tmp.h ldemul-list.h
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldemul.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldver.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldmisc.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldfile.c
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ../../binutils-2.16.1/ld/ldcref.c
LIB_PATH='/tools/lib' /bin/sh ../../binutils-2.16.1/ld/genscripts.sh ../../binutils-2.16.1/ld /tools/lib "/tools" i686-pc-linux-gnu i686-pc-linux-gnu i686-pc-linux-gnu "elf_i386" "/usr/local/lib /lib /usr/lib" no elf_i386 "i686-pc-linux-gnu"
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c eelf_i386.c
LIB_PATH='/tools/lib' /bin/sh ../../binutils-2.16.1/ld/genscripts.sh ../../binutils-2.16.1/ld /tools/lib "/tools" i686-pc-linux-gnu i686-pc-linux-gnu i686-pc-linux-gnu "elf_i386" "/usr/local/lib /lib /usr/lib" no i386linux "i686-pc-linux-gnuaout"
gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.16.1/ld -I. -D_GNU_SOURCE -I. -I../../binutils-2.16.1/ld -I../bfd -I../../binutils-2.16.1/ld/../bfd -I../../binutils-2.16.1/ld/../include -I../../binutils-2.16.1/ld/../intl -I../intl -g -O2 -DLOCALEDIR="\"/tools/share/locale\"" -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -c ei386linux.c
/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
mkdir .libs
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=both'
/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/beojan/BJOS/sources/binutils-build/ld'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/beojan/BJOS/sources/binutils-build/ld'
make: *** [all-recursive-am] Error 2
make: Leaving directory `/home/beojan/BJOS/sources/binutils-build/ld'
Some help please.
Change History (7)
comment:1 by , 19 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:3 by , 19 years ago
| Milestone: | 6.2 → 6.3 |
|---|---|
| Version: | SVN → 6.2 |
comment:4 by , 19 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed by adding an errata in revision 869 in the www2 repo.
comment:5 by , 19 years ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
Almost. You have to pass CC="gcc -B/usr/bin/" to gcc-pass1, too. Otherwise, your host gcc is gonna try to use the ld you just built.
Also, does anyone know why some commits to www2 aren't going to the website list? The formatting looks a little off on the errata, too.
comment:6 by , 19 years ago
| Resolution: | → fixed |
|---|---|
| Status: | reopened → closed |
Thanks Dan. I've updated the errata to change the GCC configure command too, and the formatting looks a lot better now too. I wonder whether the commits to www2 get eaten by our spam filter because of all the HTML tags they'll inevitably contain?

Sorry, this should be on the errata. For the first two packages (binuxtils-pass1 and gcc-pass1), force gcc to use the ld from your host:
See how it's done in the development book. Everything's the same except the version numbers:
http://www.linuxfromscratch.org/lfs/view/development/chapter05/binutils-pass1.html
http://www.linuxfromscratch.org/lfs/view/development/chapter05/gcc-pass1.html