[uClibc]uclibc problems
Marcel Volaart
jbg.volaart at hccnet.nl
Sat Feb 22 09:37:08 UTC 2003
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
More information about the uClibc
mailing list