[uClibc]uclibc buildroot woes

Jeremy Jones jeremy at samnjack.com
Tue May 6 18:46:36 UTC 2003


Hey folks,

I'm cross posting this to both the uclibc and crux mailing lists in the
hopes that someone at either end might be able to help me out...

Notes on my host system:

crux-1.1 w/binutils-2.13.2.1, gcc-3.2.3, glibc-2.3.2, linux-2.4.20

Need any other info?  I'm happy to give it...

And here's some of the noteworthy portions of the top level Makefile for
buildroot:

TARGETS=
ARCH:=i386
USE_UCLIBC_TOOLCHAIN:=true
GCC_2_95_TOOLCHAIN:=false
USE_UCLIBC_SNAPSHOT:=false
USE_BUSYBOX_SNAPSHOT:=false
BUILD_WITH_LARGEFILE:=true
WGET:=wget --passive-ftp
OPTIMIZE_FOR_CPU=i686
EXTRA_GCC_CONFIG_OPTIONS=
ifeq ($(USE_UCLIBC_TOOLCHAIN),true)
TARGETS+=uclibc_toolchain
endif
TARGETS+=user-mode-linux
TARGETS+=busybox tinylogin
TARGETS+=coreutils findutils bash make diffutils patch sed
TARGETS+=ed flex bison file gawk tar grep gcc_target
<no changes beyone here...>

Trying to generate a uclibc system from the buildroot scripts, I'm
bumping into a couple problems.  The first: binutils in gcc_target. 
This may be due to something I lack in my host distribution... anyway
here's the last few lines before bombing:

make \
    prefix=/usr/src/buildroot/build_i386/root/usr \
    exec_prefix=/usr/src/buildroot/build_i386/root/usr \
    bindir=/usr/src/buildroot/build_i386/root/usr/bin \
    sbindir=/usr/src/buildroot/build_i386/root/usr/sbin \
    libexecdir=/usr/src/buildroot/build_i386/root/usr/lib \
    datadir=/usr/src/buildroot/build_i386/root/usr/share \
    sysconfdir=/usr/src/buildroot/build_i386/root/etc \
    sharedstatedir=/usr/src/buildroot/build_i386/root/usr/com \
    localstatedir=/usr/src/buildroot/build_i386/root/var \
    libdir=/usr/src/buildroot/build_i386/root/usr/lib \
    infodir=/usr/src/buildroot/build_i386/root/usr/info \
    mandir=/usr/src/buildroot/build_i386/root/usr/man \
    includedir=/usr/src/buildroot/build_i386/root/usr/include \
    gxx_include_dir=/usr/src/buildroot/build_i386/root/usr/include/c++ \
   
toolexecdir=/usr/src/buildroot/build_i386/root/lib/gcc-lib/i686-linux \
    -C /usr/src/buildroot/build_i386/binutils-target install;
make[1]: Entering directory
`/usr/src/buildroot/build_i386/binutils-target'
/bin/sh
/usr/src/buildroot/toolchain_build_i386/binutils-2.13.2.1/mkinstalldirs
/usr/src/buildroot/build_i386/root/usr
/usr/src/buildroot/build_i386/root/usr
make[2]: Entering directory
`/usr/src/buildroot/build_i386/binutils-target/bfd'
Making install in doc
make[3]: Entering directory
`/usr/src/buildroot/build_i386/binutils-target/bfd/doc'
make[4]: Entering directory
`/usr/src/buildroot/build_i386/binutils-target/bfd/doc'
make[4]: Nothing to be done for `install-exec-am'.
make[4]: Nothing to be done for `install-data-am'.
make[4]: Leaving directory
`/usr/src/buildroot/build_i386/binutils-target/bfd/doc'
/usr/src/buildroot/build_i386/staging_dir/bin/i386-uclibc-gcc -c -I..
-I/usr/src/buildroot/toolchain_build_i386/binutils-2.13.2.1/bfd/doc/..
-I/usr/src/buildroot/toolchain_build_i386/binutils-2.13.2.1/bfd/doc/../../include -I/usr/src/buildroot/toolchain_build_i386/binutils-2.13.2.1/bfd/doc/../../intl -I../../intl  -g -O2 /usr/src/buildroot/toolchain_build_i386/binutils-2.13.2.1/bfd/doc/chew.c
/usr/src/buildroot/build_i386/staging_dir/bin/i386-uclibc-gcc -o chew
chew.o
./chew -f
/usr/src/buildroot/toolchain_build_i386/binutils-2.13.2.1/bfd/doc/doc.str </usr/src/buildroot/toolchain_build_i386/binutils-2.13.2.1/bfd/doc/../aoutx.h >aoutx.tmp
/bin/sh: ./chew: No such file or directory
make[3]: *** [s-aoutx] Error 127
make[3]: Leaving directory
`/usr/src/buildroot/build_i386/binutils-target/bfd/doc'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory
`/usr/src/buildroot/build_i386/binutils-target/bfd'
make[1]: *** [install-bfd] Error 2
make[1]: Leaving directory
`/usr/src/buildroot/build_i386/binutils-target'
make: *** [/usr/src/buildroot/build_i386/root/usr/bin/ld] Error 2
bash-2.05a#

Running file on build_i386/binutils-target/bfd/doc/chew tells me:

build_i386/binutils-target/bfd/doc/chew: ELF 32-bit LSB executable,
Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs),
not stripped

I get past this problem by editing the bfd/Makefile, and bypassing the
doc subdir:

bash-2.05a# diff build_i386/binutils-target/bfd/Makefile~
build_i386/binutils-target/bfd/Makefile
134c134
< SUBDIRS = doc po
---
> SUBDIRS = po


So, I get past that and go on my merry way, until gcc in gcc_target:

make[2]: Entering directory
`/usr/src/buildroot/build_i386/gcc-target/gcc'
HEADERS="auto-host.h ansidecl.h  i386/i386.h i386/att.h dbxelf.h elfos.h
svr4.h linux.h i386/linux.h defaults.h" DEFINES="POSIX" \
TARGET_CPU_DEFAULT="TARGET_CPU_DEFAULT_pentiumpro" \
/bin/sh
/usr/src/buildroot/toolchain_build_i386/gcc-3.2.3/gcc/mkconfig.sh
config.h
HEADERS="auto-host.h ansidecl.h  i386/i386.h i386/att.h dbxelf.h elfos.h
svr4.h linux.h i386/linux.h defaults.h" DEFINES="POSIX" \
TARGET_CPU_DEFAULT="TARGET_CPU_DEFAULT_pentiumpro" \
/bin/sh
/usr/src/buildroot/toolchain_build_i386/gcc-3.2.3/gcc/mkconfig.sh
hconfig.h /usr/src/buildroot/build_i386/staging_dir/bin/i386-uclibc-gcc
-c -DIN_GCC    -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long 
-DHAVE_CONFIG_H -DGENERATOR_FILE    -I. -I.
-I/usr/src/buildroot/toolchain_build_i386/gcc-3.2.3/gcc
-I/usr/src/buildroot/toolchain_build_i386/gcc-3.2.3/gcc/.
-I/usr/src/buildroot/toolchain_build_i386/gcc-3.2.3/gcc/config
-I/usr/src/buildroot/toolchain_build_i386/gcc-3.2.3/gcc/../include
/usr/src/buildroot/toolchain_build_i386/gcc-3.2.3/gcc/gengenrtl.c -o
gengenrtl.o
/usr/src/buildroot/build_i386/staging_dir/bin/i386-uclibc-gcc
-DIN_GCC    -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long 
-DHAVE_CONFIG_H -DGENERATOR_FILE  -o gengenrtl \
    gengenrtl.o ../libiberty/libiberty.a
./gengenrtl -h > tmp-genrtl.h
/bin/sh: ./gengenrtl: No such file or directory
make[2]: *** [s-genrtl] Error 127
make[2]: Leaving directory
`/usr/src/buildroot/build_i386/gcc-target/gcc'
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory `/usr/src/buildroot/build_i386/gcc-target'
make: *** [/usr/src/buildroot/build_i386/gcc-target/.compiled] Error 2
bash-2.05a#

Being semi-retarded, this one stumps me.  Again, file sez:

build_i386/gcc-target/gcc/gengenrtl: ELF 32-bit LSB executable, Intel
80386, version 1 (SYSV), dynamically linked (uses shared libs), not
stripped


Any ideas?  I'm fresh out.  Haven't been able to find anything very
illuminating googling...

Thanks a million,

Jeremy



More information about the uClibc mailing list