Chinaunix首页 | 论坛 | 博客
  • 博客访问: 293012
  • 博文数量: 60
  • 博客积分: 1836
  • 博客等级: 上尉
  • 技术积分: 540
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 18:00
文章分类

全部博文(60)

文章存档

2013年(1)

2012年(7)

2011年(18)

2010年(6)

2009年(6)

2008年(3)

2007年(19)

我的朋友

分类: LINUX

2007-01-12 11:03:02

ARM-Linux-Gcc 交叉编译器

偶然要用的一个自定义的编译器,在网上找了几个文章,多多少少有点错误,今天把自己修改的发上来
生成的是3.4.4的gcc编译器,只打了3个补丁,过两天把好用的补丁都打上试试
文件: patch.zip
大小: 1KB
下载: 下载

PREFIX 为 安装路径
SYSROOT 编译相关的头、库文件,生成是系统编译库
TARGET 生成文件名的前缀


#!/bin/sh

PREFIX=/home/yangliu/gcc/tar
SYSROOT=${PREFIX}/sysroot
TARGET=arm-344-linux
export ARCH=arm
export CROSS_COMPILE=${TARGET}-
export PATH=$PATH:${PREFIX}/bin
echo $PREFIX

### GNU binutils creating
cd ${PREFIX}/src
tar zxf binutils-2.16.tar.gz
mkdir -p BUILD/binutils-2.16
cd BUILD/binutils-2.16
../../binutils-2.16/configure --prefix=${PREFIX} --target=${TARGET} --with-sysroot=${SYSROOT} 2>&1 | tee configure.out
make 2>&1 | tee make.out
make install 2>&1 | tee -a make.out

### Linux Kernel Headers
cd ${PREFIX}/src
tar zxf linux-2.6.10.tar.gz
ln -s linux-2.6.10 linux
cd linux
make ARCH=arm CROSS_COMPILE=${CROSS_COMPILE} smdk2410_defconfig
make include/linux/version.h
mkdir -p ${SYSROOT}/usr/include
cp -a ${PREFIX}/src/linux/include/linux ${SYSROOT}/usr/include/linux
cp -a ${PREFIX}/src/linux/include/asm-arm ${SYSROOT}/usr/include/asm
cp -a ${PREFIX}/src/linux/include/asm-generic ${SYSROOT}/usr/include/asm-generic

### Glibc headers
cd ${PREFIX}/src
tar zxf glibc-2.3.5.tar.gz
patch -d glibc-2.3.5 -p1cd glibc-2.3.5
tar zxf ../glibc-linuxthreads-2.3.5.tar.gz
cd ..
mkdir -p BUILD/glibc-2.3.5-headers
cd BUILD/glibc-2.3.5-headers
../../glibc-2.3.5/configure --prefix=${SYSROOT}/usr --host=${TARGET} --enable-add-ons=linuxthreads --with-headers=${SYSROOT}/usr/include 2>&1 | tee configure.out
make cross-compiling=yes install-headers 2>&1 | tee make.out
touch ${SYSROOT}/usr/include/gnu/stubs.h
touch ${SYSROOT}/usr/include/bits/stdio_lim.h

### Stage 1 GCC

cd ${PREFIX}/src
tar jxf gcc-3.4.4.tar.bz2
patch -d gcc-3.4.4 -p1 < flow.c.diff
patch -d gcc-3.4.4 -p1 < t-linux.diff
mkdir -p BUILD/gcc-3.4.4-stage1
cd BUILD/gcc-3.4.4-stage1
../../gcc-3.4.4/configure --prefix=${PREFIX} --target=${TARGET} --enable-languages=c --with-sysroot=${SYSROOT} 2>&1 | tee configure.out
make 2>&1 | tee make.out
make install 2>&1 | tee -a make.out
### GNU C Library
cd ${PREFIX}/src
mkdir -p BUILD/glibc-2.3.5
cd BUILD/glibc-2.3.5
BUILD_CC=gcc CC=${CROSS_COMPILE}gcc AR=${CROSS_COMPILE}ar RANLIB=${CROSS_COMPILE}ranlib AS=${CROSS_COMPILE}as LD=${CROSS_COMPILE}ld ../../glibc-2.3.5/configure --build=i386-redhat-linux --host=arm-344-linux-gnu --target=arm-344-linux-gnu --without-__thread --enable-add-ons=linuxthreads --with-headers=${SYSROOT}/usr/include --prefix=/usr 2>&1 | tee configure.out
make 2>&1 | tee make.out
make install_root=${SYSROOT} install 2>&1 |tee -a make.out

### gcc Stage 2
cd ${PREFIX}/src
mkdir -p BUILD/gcc-3.4.4
cd BUILD/gcc-3.4.4
../../gcc-3.4.4/configure --prefix=${PREFIX} --target=${TARGET} --enable-languages=c,c++ --with-sysroot=${SYSROOT} 2>&1 | tee configure.out
make 2>&1 | tee make.out
make install 2>&1 | tee -a make.out
cd ../..
阅读(4840) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~