[uClibc]uclibc problems

Claus Rosenberger Claus.Rosenberger at rocnet.de
Sat Feb 22 10:18:39 UTC 2003


what do you want to do ? if you want to build a uclibc-based system then
try buildroot.


> Hello,
>
> I just started working with uclibc. But i have a lot of problems
> already. My host system is a LFS system based on kernel 2.4.20 and glibc
> 2.2.5 I downloaded uclibc 0.9.18 and just built the default
> configaration  (after make menuconfig).
> The build is going without problems.
> But if i for example compile just and empty c program (using
> i386-uclibc-gcc -v -o main main.c):
> int main(void)
> {
> return 0;
> }
> the output during compiling is:
>
> Invoked as i386-uclibc-gcc
> arg[ 0] = /usr/bin/gcc
> arg[ 1] = -nostdlib
> arg[ 2] = -Wl,--dynamic-linker,/usr/i386-linux-uclibc/lib/ld-uClibc.so.0
> arg[ 3] = -Wl,-rpath-link,/usr/i386-linux-uclibc/lib
> arg[ 4] = -L/usr/i386-linux-uclibc/lib
> arg[ 5] = -L/usr/i386-linux-uclibc/lib
> arg[ 6] = -nostdinc
> arg[ 7] = -isystem
> arg[ 8] = /usr/i386-linux-uclibc/include/
> arg[ 9] = -iwithprefix
> arg[10] = include
> arg[11] = /usr/i386-linux-uclibc/lib/crti.o
> arg[12] = /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtbegin.o
> arg[13] = /usr/i386-linux-uclibc/lib/crt1.o
> arg[14] = -v
> arg[15] = -o
> arg[16] = main
> arg[17] = main.c
> arg[18] = -lgcc
> arg[19] = -lc
> arg[20] = -lgcc
> arg[21] = /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtend.o
> arg[22] = /usr/i386-linux-uclibc/lib/crtn.o
> Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/specs gcc
> version 2.95.3 20010315 (release)
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/cpp0 -lang-c -nostdinc -v
> -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__ELF__ -Dunix -D__i386__ -Dlinux
> -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux
> -Asystem(posix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__
> -Di686 -Dpentiumpro -D__i686 -D__i686__ -D__pentiumpro -D__pentiumpro__
> -isystem /usr/i386-linux-uclibc/include/ -iwithprefix include main.c
> /tmp/ccQZh98n.i
> GNU CPP version 2.95.3 20010315 (release) (i386 Linux/ELF)
> #include "..." search starts here:
> #include <...> search starts here:
> /usr/i386-linux-uclibc/include
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/include
> End of search list.
> The following default directories have been omitted from the search
> path:
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/../../../../include/g++-3
> /usr/local/include
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/../../../../i686-pc-linux-gnu/include
>
>
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/include
> /usr/include
> End of omitted list.
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/cc1 /tmp/ccQZh98n.i -quiet
> -dumpbase main.c -version -o /tmp/cc8sC7oB.s
> GNU C version 2.95.3 20010315 (release) (i686-pc-linux-gnu) compiled by
> GNU C version 2.95.3 20010315 (release).
> as -V -Qy -o /tmp/ccodCoqQ.o /tmp/cc8sC7oB.s
> GNU assembler version 2.12 (i686-pc-linux-gnu) using BFD version 2.12
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/collect2 -m elf_i386
> -dynamic-linker /lib/ld-linux.so.2 -o main -L/usr/i386-linux-uclibc/lib
> -L/usr/i386-linux-uclibc/lib -L/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3
>  --dynamic-linker /usr/i386-linux-uclibc/lib/ld-uClibc.so.0 -rpath-link
> /usr/i386-linux-uclibc/lib /usr/i386-linux-uclibc/lib/crti.o
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtbegin.o
> /usr/i386-linux-uclibc/lib/crt1.o /tmp/ccodCoqQ.o -lgcc -lc -lgcc
> /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/crtend.o
> /usr/i386-linux-uclibc/lib/crtn.o
>
>
> and try to execute it on the same platform, it gives a segmentation
> fault. i386-uclibc-ldd gives the right libraries (which are also there).
>
>
> I also downloaded the prebuilt toolchain in which i found the busybox
> execute linked against uclibc. If i execute this on the same platform
> there is no problem.
> So what i am doing wrong in compiling this simple program.
>
> Then i had also a problem building my own uclibc toolchain.
> i downloaded the toolchain archive. I only configured the install path
> and executed it.
> It is running into problems:
>  /usr/src/t/toolchain/gcc-2.95/build/gcc-final/gcc/xgcc
> -B/usr/src/t/toolchain/gcc-2.95/build/gcc-final/gcc/
> -B/usr/uclibc-i386//toolchain/i386-linux/bin/
> -I/usr/uclibc-i386//toolchain/i386-linux/include -O2  -DCROSS_COMPILE
> -DIN_GCC     -g -O2 -I./include  -fPIC -g1  -DIN_LIBGCC2
> -D__GCC_FLOAT_NOT_NEEDED   -I.
> -I/usr/src/t/toolchain/gcc-2.95/build/gcc-20011006/gcc
> -I/usr/src/t/toolchain/gcc-2.95/build/gcc-20011006/gcc/config
> -I/usr/src/t/toolchain/gcc-2.95/build/gcc-20011006/gcc/../include -c
> -DL${name} \
>       /usr/src/t/toolchain/gcc-2.95/build/gcc-20011006/gcc/libgcc2.c -o
> ${name}.o; \
>  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
>  i386-uclibc-ar rc tmplibgcc2.a ${name}.o; \
>  rm -f ${name}.o; \
> done
> _muldi3
> /usr/src/t/toolchain/gcc-2.95/build/gcc-20011006/gcc/libgcc2.c:41:
> stdlib.h: No such file or directory
> /usr/src/t/toolchain/gcc-2.95/build/gcc-20011006/gcc/libgcc2.c:42:
> unistd.h: No such file or directory
> make[2]: *** [libgcc2.a] Error 1
> make[2]: Leaving directory
> `/usr/src/t/toolchain/gcc-2.95/build/gcc-final/gcc'
> make[1]: *** [all-gcc] Error 2
> make[1]: Leaving directory
> `/usr/src/t/toolchain/gcc-2.95/build/gcc-final' make: ***
> [/usr/src/t/toolchain/gcc-2.95/build/gcc-final/.compiled] Error 2
>
> When i searched google for this, i found out that is a problem with the
> INHIBIT_LIBC_HACK. I've built cross-compilers for ARM before and this is
>  a known problems building crosscompilers, but what i don't understand
> is  why i receive this error using this script? I'm certainly doing
> something wrong because i couldn't find something about this problem in
> the lists.
>
> Hope anyone can help me a bit further.
>
> Marcel
>
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://uclibc.org/mailman/listinfo/uclibc






More information about the uClibc mailing list