On Mon, Apr 2, 2012 at 1:13 AM, Alberich de megres <[email protected]> wrote: > Hello! > > I'm trying to understand the toolchain creation, by building one. I > want to learn how they work. > I'm building one for arm, with: > - binutils 2.22 > - kernel 3.1.8 headers > - gcc 4.6.2 >
I have some rudimentary scripts for building them here https://github.com/kraj/ct-scripts reading through them should help > > When compiling gcc final stage I got the following error: > > > /home/abm/kr/xenv-0.3.01/work/rpi/build/gcc-4.6.2/./gcc/xgcc > -B/home/abm/kr/xenv-0.3.01/work/rpi/build/gcc-4.6.2/./gcc/ > -B/opt/xenv/x-tools/arm-none-eabi/bin/ > -B/opt/xenv/x-tools/arm-none-eabi/lib/ -isystem > /opt/xenv/x-tools/arm-none-eabi/include -isystem > /opt/xenv/x-tools/arm-none-eabi/sys-include -g -O2 -O2 -g -O2 > -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite-strings > -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes > -Wold-style-definition -isystem ./include -fno-inline > -Wno-missing-prototypes -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED > -fno-stack-protector -I. -I. -I../.././gcc > -I/home/abm/kr/xenv-0.3.01/work/rpi/src/gcc-4.6.2/libgcc > -I/home/abm/kr/xenv-0.3.01/work/rpi/src/gcc-4.6.2/libgcc/. > -I/home/abm/kr/xenv-0.3.01/work/rpi/src/gcc-4.6.2/libgcc/../gcc > -I/home/abm/kr/xenv-0.3.01/work/rpi/src/gcc-4.6.2/libgcc/../include > -DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep > -DL_muldi3 -c > /home/abm/kr/xenv-0.3.01/work/rpi/src/gcc-4.6.2/libgcc/../gcc/libgcc2.c > \ > In file included from > /home/abm/kr/xenv-0.3.01/work/rpi/src/gcc-4.6.2/libgcc/../gcc/libgcc2.c:29:0: > /home/abm/kr/xenv-0.3.01/work/rpi/src/gcc-4.6.2/libgcc/../gcc/tsystem.h:87:19: > fatal error: stdio.h: No such file or directory > compilation terminated. > make[2]: *** [_muldi3.o] Error 1 > make[2]: Leaving directory > `/home/abm/kr/xenv-0.3.01/work/rpi/build/gcc-4.6.2/arm-none-eabi/libgcc' > make[1]: *** [all-target-libgcc] Error 2 > make[1]: Leaving directory `/home/abm/kr/xenv-0.3.01/work/rpi/build/gcc-4.6.2' > make: *** [all] Error 2 > > > But stdio.h is there in the sysroot directory: > find . | grep stdio > ./usr/arm-linux-uclibc/usr/include/bits/uClibc_stdio.h > ./usr/arm-linux-uclibc/usr/include/bits/stdio.h > ./usr/arm-linux-uclibc/usr/include/stdio.h > > Thanks!! > Alberich > > > --------------------------------------------------------- > > Some varieables: > XSYSROOT=/opt/x/ > XPREFIX=/opt/x/x-tools > export TARGET=arm-unknown-linux-gnu > ENDIAN=little > export ARCH=arm > export CROSS_COMPILE=${TARGET}- > > --------------------------------------------------------- > > The config lines I'm using are: > > binutils > gcc step 1 > ${XECURSRC}/configure --prefix=${XPREFIX} --target=${TARGET} \ > --without-headers --disable-threads --with-newlib \ > --disable-shared --disable-libssp \ > --disable-libgomp --disable-libmudflap --disable-libquadmath \ > --enable-languages=c > make all-gcc all-target-libgcc > make install-gcc install-target-libgcc > > uclibc > make allnoconfig ARCH=$ARCH CROSS=$CROSS_COMPILE PREFIX=$XSYSROOT > echo " > s/^[# ]*\\(TARGET_[a-zA-Z0-9_\\-]*\\).*/# \1 is not set/g > s/^[# ]*\(TARGET_${ARCH}\).*/\1=y/g > s/^[# ]*TARGET_ARCH[ =].*/TARGET_ARCH=\"${ARCH}\"/g > s/^[# ]*TARGET_SUBARCH[= ].*/TARGET_SUBARCH=\"\"/g > s@^KERNEL_HEADERS=.*@KERNEL_HEADERS=\"${XSYSROOT}/usr/include\"@g > s/^[# ]*ARCH_BIG_ENDIAN=.*/ARCH_LITTLE_ENDIAN=y\nARCH_WANTS_LITTLE_ENDIAN=y/g > s/^[# > ]*ARCH_LITTLE_ENDIAN=.*/ARCH_LITTLE_ENDIAN=y\nARCH_WANTS_LITTLE_ENDIAN=y/g > s/^[# ]*\\(ARCH_WANTS_BIG_ENDIAN\\)=.*/# \1 is not set/g > s/^[# ]*HAS_NO_THREADS.*/# HAS_NO_THREADS is not set/g > s/^[# ]*UCLIBC_HAS_THREADS.*/UCLIBC_HAS_THREADS=y/g > /^[# ]*UCLIBC_HAS_THREADS.*/i\UCLIBC_HAS_THREADS_NATIVE=y > /^[# ]*UCLIBC_HAS_THREADS.*/a\UCLIBC_HAS_TLS=y\n# > PTHREADS_DEBUG_SUPPORT is not set > " >.tmp.xenv_sed_file > sed -f .tmp.xenv_sed_file < .config > .xenv_config > cp .xenv_config .config > make ARCH=$ARCH CROSS=$CROSS_COMPILE PREFIX=$XSYSROOT > install_headers install_startfiles > make CROSS=$CROSS_COMPILE PREFIX=$XSYSROOT install > > gcc_final > ${XECURSRC}/configure --prefix=${XPREFIX} --target=${TARGET} > --with-sysroot=${XSYSROOT} \ > --disable-libssp --disable-libgomp \ > --disable-libmudflap --disable-libquadmath \ > --enable-languages=c,c++ \ > --disable-nls --disable-multilib > > make > make install > _______________________________________________ > uClibc mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/uclibc _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
