在自己制作arm-linux-gcc的时候对于初学者来说可能是路径很容易弄昏,所以注意路径就好了。
(1)保证你的ubuntu8.10下安装了以下软件开发工具。
Bison
flex
build-essential
patch
libncurses5-dev
(2)因为ubuntu8.10自带的是gcc-4.3.2无法用crosstool正常编译交叉编译器,所以必须安装gcc-4.1,但是不必卸载4.3.2。方法是用新立得软件包管理器安装gcc-4.1,之后
参考vi /root/.bashrc
export PREFIX=/armtools
export TARGET=arm-linux
export PATH=$PATH:/armtools/arm-linux/bin:/armtools/bin
chinazcw
的方法
sudo rm /usr/bin/gcc (删除GCC,它只是个到gcc-4.3.2的软连接文件)
sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的软连接)
(3)如果你运行
ls -la /bin/sh
命令看到/bin/sh其实是一个指向dash的软链接,则请运行以下命令,将/bin/sh链接到bash。
sudo mv /bin/sh /bin/sh.old
sudo ln -sf bash /bin/sh
vi /root/.bashrc
export PREFIX=/armtools
export TARGET=arm-linux
export PATH=$PATH:/armtools/arm-linux/bin:/armtools/bin
准备头文件:linux-2.6.14
1,建立链接
cd include/asm-arm
rm –f arch proc
ln –s arch-s3c2410 arch
ln –s proc-armv proc
2, 生成两个重要文件
include/linux/autoconf.h
include/linux/version.h
命令为:(linux-2.6.14 目录下)
yes “” | make oldconfig
make include/linux/version.h
3, 复制头文件
mkdir –p $PREFIX/$TARGET/include/
cp –dR include/linux $PREFIX/$TARGET/include/linux(linux-2.6.14 目录下)
cp –dR include/asm-arm $PREFIX/$TARGET/include/asm (linux-2.6.14 目录下)
cp –dR include/asm-generic $PREFIX/TARGET/include/asm-generic (linux-2.6.14 目录下)
一、Binutils的配置和编译安装
tar -xzvf binutils-2.16.tar.gz
cd /build
mkdir binutils
cd bintiuils
../../src/binutils-2.16/configure --target=arm-linux --prefix=/tools/
(在build/binutils下)
make
make install
二、为gcc建立一个linux内核头文件的链接
cd $PREFIX/$TARGET
ln –s include sys-include
修改 t-linux
位置gcc3.4.4/gcc/config/arm/t-linux
修改前:TARGET_LIBGCC2_CFLAGS= -fomit-frame-pointer -fPIC
修改后:TARGET_LIBGCC2_CFLAGS= -fomit-frame-pointer -fPIC –Dinhibit_libc –D__Gthr_posix_h
注意:备份原来的t-linux文件 cp t-linux t-linux.bak
Patch –d gcc-3.4.4 -p1 <flow.c.diff
Patch –d gcc-3.4.4 -p1 <t-linux.diff
Patch –d glibc -p1 <ioperm.c.diff
Cd /build
Mkdir gcc
Cd gcc
Gcc 配置
../../src/gcc-3.4.4/configure /
--prefix=$PREFIX /
--target=$TARGET /
--enable-languages=c /
--enable-shared /
--disable-threads /
--without-headers
make all
make install
三、glibc配置安装
cd /build
mkdir glibc
cd glibc
CC=$TARGET-gcc AR=$TARGET-ar RANLIB=$TARGET-ranlib /
../../src/glibc-2.3.5/configure /
--prefix=$PREFIX/$TARGET /
--build=i686-pc-linux-gnu /
--host=arm-linux
--enable-add-ons=linuxthreads /
--with-headers=$PREFIX/$TARGET/include
make
make install
四、全套Gcc 配置
首先恢复t-linux
cd /src/gcc-3.4.4/gcc/config/arm
cp t-linux.bak t-linux
cd /buld/gcc
../../src/gcc-3.4.4/configure /
--prefix=$PREFIX /
--target=$TARGET /
--enable-languages=c,c++ /
--enable-shared /
--enable-threads /
--host=i686-pc-linux-gnu
make
make install
五、全套glibc配置安装
cd /build/glibc
CC=$TARGET-gcc AR=$TARGET-ar RANLIB=$TARGET-ranlib /
../../src/glibc-2.35/configure /
--prefix=$PREFIX/$TARGET /
--build=i686-pc-linux-gnu /
--host=arm-linux
--enable-add-ons=linuxthreads /
--with-headers=$PREFIX/$TARGET/include
make
make install