$pwd /home/liang$mkdir embedded
$cd embedded$mkdir build-tools kernel tools
$ls embeddedbuild-tools kernel tools
$eXPort PRJROOT=/home/liang/embedded$export TARGET=arm-linux$export PREFIX=$PRJROOT/tools$export TARGET_PREFIX=$PREFIX/$TARGET$export PATH=$PREFIX/bin:$PATH
$./config.sub arm-linuxarm-unknown-linux-gnu
$cd $PRJROOT/build-tools$mkdir build-binutils build-boot-gcc build-gcc build-glibc gcc-patch
$ls binutils-2.10.1.tar.bz2 build-gcc gcc-patchbuild-binutls build-glibc glibc-2.2.3.tar.gzbuild-boot-gcc gcc-2.95.3.tar.gz glibc-linuxthreads-2.2.3.tar.gz
$cd $PRJROOT /kernel
$tar -xzvf linux-2.4.21.tar.gz
$tar -xjvf linux-2.4.21.tar.bz2
$mv linux linux-2.4.x
$cd linux-2.4.21$patch -p1 < ../patch-2.4.21-rmk2
$cd include$ln -s asm-arm asm$cd asm$ln -s arch-epxa arch$ln -s proc-armv proc
$mkdir -p $TARGET_PREFIX/include$ln -s $PRJROOT/kernel/linux-2.4.21/include/linux $TARGET_PREFIX/include/linux$in -s $PRJROOT/kernel/linux-2.4.21/include/asm-arm $TARGET_PREFIX/include/asm
$mkdir -p $TARGET_PREFIX/include$cp -r $PRJROOT/kernel/linux-2.4.21/include/linux $TARGET_PREFIX/include$cp -r $PRJROOT/kernel/linux-2.4.21/include/asm-arm $TARGET_PREFIX/include
$cd $PRJROOT/build-tools$tar -xvjf binutils-2.10.1.tar.bz2
$cd build-binutils$../binutils-2.10.1/configure --target=$TARGET --prefix=$PREFIX
$make$make install
$ls $PREFIX/binarm-linux-addr2line arm-linux-gasp arm-linux-objdump arm-linux-stringsarm-linux-ar arm-linux-ld arm-linux-ranlib arm-linux-striparm-linux-as arm-linux-nm arm-linux-readelf arm-linux-c++filt arm-linux-objcopy arm-linux-size
$cd $PRJROOT/build-tools$tar -xvzf gcc-2.95.3.tar.gz
$cd gcc-2.95.3$patch -p1< ../gcc-patch/gcc-2.95.3.-2.patch$patch -p1< ../gcc-patch/gcc-2.95.3.-no-fixinc.patch$patch -p1< ../gcc-patch/gcc-2.95.3-returntype-fix.patchecho timestamp > gcc/cstamp-h.in
../../gcc-2.95.3/gcc/libgcc2.c:41: stdlib.h: No such file or Directory../../gcc-2.95.3/gcc/libgcc2.c:42: unistd.h: No such file or directorymake[3]: *** [libgcc2.a] Error 1make[2]: *** [stmp-multilib-sub] Error 2make[1]: *** [stmp-multilib] Error 1make: *** [all-gcc] Error 2
In file included from gthr-default.h:1, from ../../gcc-2.95.3/gcc/gthr.h:98, from ../../gcc-2.95.3/gcc/libgcc2.c:3034:../../gcc-2.95.3/gcc/gthr-posix.h:37: pthread.h: No such file or directorymake[3]: *** [libgcc2.a] Error 1make[2]: *** [stmp-multilib-sub] Error 2make[1]: *** [stmp-multilib] Error 1make: *** [all-gcc] Error 2
$cd ..; cd build-boot-gcc$../gcc-2.95.3/configure --target=$TARGET --prefix=$PREFIX />--without-headers --enable-languages=c --disable-threads
$make all-gcc$make install-gcc
$ls $PREFIX/bin
$cd $PRJROOT/build-tools$tar -xvzf glibc-2.2.3.tar.gz$tar -xzvf glibc-linuxthreads-2.2.3.tar.gz --directory=glibc-2.2.3
$cd build-glibc$CC=arm-linux-gcc ../glibc-2.2.3/configure --host=$TARGET --prefix="/usr" --enable-add-ons --with-headers=$TARGET_PREFIX/include
$make$make install_root=$TARGET_PREFIX prefix="" install
$cd $PRJROOT/build-tools/build-gcc$../gcc-2.95.3/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++
$make all$make install
$ls $PREFIX/bin
#include <stdio.h>int main(void){ printf("hello world/n"); return 0;}$arm-linux-gcc helloworld.c -o helloworld$file helloworldhelloworld: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), not stripped
新闻热点
疑难解答