重建freescale 4.6.2 multilib toolchain

patch和crosstool-ng 可以从下面的网址下载,

https://community.freescale.com/thread/386450

不过估计你会失望的,改了脚本,编译了后发现不对,ld,gcc版本都不对,没办法重现freescale当时的环境,编译出一模一样的toolchain,同样的toolchain是如何编译出来的,估计freescale是不知道了。

之前花了一段时间重建了类似freesscale的toolchain,相似度比较高,至少编译出来的glibc已经一致了。

下面是重建的过程,其中某些内容沿用了上面提到的下载链接中freescale提供的内容:

1. 环境准备,ubuntu 10.04 LTS,也可以使用ubuntu 12.04,10.04的结果更加接近

2. 安装必要的软件,crosstool编译的时候需要的就不说了,容易漏的是msgfmt,可以通过下面的命令安装

sudo apt-get install maketex

3. 创建工作目录,并且获取crosstool-ng

sudo mkdir /work
sudo chown you:yourgroup /work
cd /work
git clone [email protected]:secularbird/fsl_crosstoolng.git build

4. 编译和安装crosstool-ng

cd build
./configure --local
make
make install

5. 开始编译toolchain,开玩笑的,还编不了,先通过它下载点必要的代码

cp default_configs/linaro_2011.07.config .config
./ct-ng build

运行到解压代码的时候就可以停止了,中间有些下载找不到,需要你到网上找了对应的下下来

6. 创建下中间目录,用来替换5中下载的,但是版本对不上的

mkdir /work/source
cd /work/source
# 获取binutils
git clone http://git.linaro.org/toolchain/binutils-gdb.git binutils
cd binutils
git checkout 3f26b7e8cb3d1e545a1461ded51f24259b1795e7cd ..
# 获取gcc编译器
wget -c https://launchpad.net/gcc-linaro/4.6/4.6-2011.07/+download/gcc-linaro-4.6-2011.07.tar.bz2
tar xf gcc-linaro-4.6-2011.07.tar.bz2
mv gcc-linaro-4.6-2001.07.0 gcc
# 获取glibc
git clone https://git.linaro.org/toolchain/glibc.git
cd glibc
git checkout 943515f05cdbc1463bb06c9adbd3dcee5c1a7f57
cd ..
#获取glibc-ports
git clone git://sourceware.org/git/glibc-ports.git
cd glibc-ports
git checkout 4f32a56ebbf9936a4990f1bcdeab7afcec8f5322
cd ..
#获取cortex-strings
git clone http://git.linaro.org/toolchain/cortex-strings.git
cd cortex-strings
git checkout d5fda23377842a6bc0b22f502af3db43b5e5475d

7. 创建对应的软连接

cd /work/build/.build/src
rm --rf binutils-2.21 gcc-linaro-4.6-2011.06-0 glibc-2.13
ln -sf /work/source/binutils binutils-2.21
ln -sf /work/source/gcc gcc-linaro-4.6-2011.06-0
ln -sf /work/source/glibc glibc-2.13cd /work/source/glibcln -sf /work/source/glibc-ports ports

8. 准备cortex-string

cd /work/source/cortex-strings
./autogen.sh
./configure --with-cpu=armv7-a --with-neon
make add-on

tar xf cortex-strings.tar
mv cortex-strings /work/source/glibc/

9. 打patch

cd /work/source/gcc/
patch -p1 < /work/build/multilib_patches/0001-linaro-gcc-multilib.patch

cd /work/source/glibc/
patch -p1 < /work/build/multilib_patches/0001-glibc-multilib.patch

cd /work/source/glibc/cortex-strings
patch -p1 < /work/build/multilib_patches/0002-glibc-cortex-strings.patch

cd /work/souce/binutilsrm -rf sim gdb readline

10. 开始编译

 ./ct-ng build

整个编译过程预计花费一个半小时到八个小时,如果硬件允许的话,可以调整下crosstool配置中和multilibs 目录下脚本中的JOB数缩短点编译时间

时间: 2024-10-18 03:06:00

重建freescale 4.6.2 multilib toolchain的相关文章

Building the GNU ARM Toolchain for Bare Metal

kunen.org home OpenGL nve uC links Building the GNU ARM Toolchain for Bare Metal This is a quick guide to building the GCC toolchain for the ARM architecture.  I wrote this to cleanup some other instructions that I've seen floating around the web, an

bzoj 2957: 楼房重建.

2957: 楼房重建 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2303  Solved: 1088[Submit][Status][Discuss] Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些事件发生在一个二维平面上.小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean

source:http://www.cgsecurity.org/wiki/TestDisk_CN TestDisk 是一款开源软件,受GNU General Public License (GPL v2+)条款保护. TestDisk:http://www.cgsecurity.org/wiki/TestDisk_CN TestDisk 是一款强大 的免费数据恢复软件! 早期主要是设计用来在使用有缺陷的软件,病毒或人为误操作(如不小心删除分区表)导致的分区丢失后,帮助用户恢复丢失分区,或修复不

Windows10 图标重建

有没有遇到电脑上某个图标成了黑块,白块或者没有图呢. 那这样的话就可以使用图标重建啦. 删掉Windows10的图标文件如下图 路径: %userprofile%\AppData\Local\Microsoft\Windows\Explorer 复制好粘贴到我的电脑地址栏. 或者将一下代码复制做成.bat文件右击以管理员方式运行就好. cd /d %userprofile%\AppData\Local\Microsoft\Windows\Explorer taskkill /f /im expl

通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?

在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成,前者负责监听请求并将接收的请求传递给给HttpApplication对象处理,后者则将请求处理任务委托给注册的中间件来完成.中间件的注册是通过ApplicationBuilder对象来完成的,所以我们先来了解一下这究竟是个怎样的对象.[本文已经同步到<ASP.NET Core框架揭秘>之中] [

第3章 结构之法——重建二叉树

重建二叉树 问题描述 分析与解法 用java实现的代码如下: 1 package chapter3jiegouzhifa.RebuildBinTree; 2 3 /** 4 * 重建二叉树 5 * 递归解法 6 * @author DELL 7 * 8 */ 9 public class RebuildBinTree { 10 //定义节点类 11 public static class Node{ 12 int left; //左子树位置 13 int right; //右子树位置 14 ch

重建二叉树

题目:输入某二叉树的前序遍历黑夜中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历中都不包含重复的数字.例如输入前序遍历序列{1, 2, 4, 7, 3, 5, 6, 8}和中序遍历 {4, 7, 2, 1, 5, 3, 8, 6},则重建出该二叉树. C#实现: public class BinaryTreeNode     {         int value;         BinaryTreeNode left;         BinaryTreeNode right;

【转】Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法

原文网址:http://www.cnblogs.com/muyun/p/3370996.html 一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install gcc-arm-linux-gnueabi 前提是你的Ubuntu系统版本是官网支持的最新的版本,若不是,请升级.执行以上命令即可. 二.使用工具链 注意!这里不能使用 gcc 命令来召唤它.它的名字是 arm-linux-gnueabi-gcc .如果出现 Command Not Found,请关

bzoj1758 [Wc2010]重建计划

Description Input 第一行包含一个正整数N,表示X国的城市个数. 第二行包含两个正整数L和U,表示政策要求的第一期重建方案中修建道路数的上下限 接下来的N-1行描述重建小组的原有方案,每行三个正整数Ai,Bi,Vi分别表示道路(Ai,Bi),其价值为Vi 其中城市由1..N进行标号 Output 输出最大平均估值,保留三位小数 Sample Input 4 2 3 1 2 1 1 3 2 1 4 3 Sample Output 2.500 HINT N<=100000,1<=L