patch和crosstool-ng 可以从下面的网址下载,
不过估计你会失望的,改了脚本,编译了后发现不对,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 gettext

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

sudo mkdir /work
sudo chown you:yourgroup /work
cd /work
git clone git@github.com:secularbird/fsl_crosstoolng.git build

4. 编译和安装crosstool-ng

cd build
./configure --local
make
make install

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

cp default_configs/linaro_2011..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 3f26b7e8cb3d1e545a1461ded51f24259b1795e7
cd ..
# 获取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. 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- glibc-2.13
ln -sf /work/source/binutils binutils-2.21
ln -sf /work/source/gcc gcc-linaro-4.6-2011.06-
ln -sf /work/source/glibc glibc-2.13
cd /work/source/glibc
ln -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 -R< /work/build/multilib_patches/-linaro-gcc-multilib.patch cd /work/source/glibc/
patch -p1 < /work/build/multilib_patches/-glibc-multilib.patch cd /work/source/glibc/cortex-strings
patch -p1 < /work/build/multilib_patches/-glibc-cortex-strings.patch cd /work/source/binutils
rm -rf sim gdb readline

10. 开始编译

 ./ct-ng build
整个编译过程预计花费一个半小时到八个小时,如果硬件允许的话,可以调整下crosstool配置中和multilibs 目录下脚本中的JOB数缩短点编译时间
 
11. 调整libstdc++和libgcc的路径
cd /work
chmod u+w fsl-linaro-toolchain-2.13 -R
cd fsl-linaro-toolchain-2.13
/work/build/multilib/copylibs.sh

P.S.

fix for CVE-2015-7547: Critical Vulnerability in glibc getaddrinfo:

https://anonscm.debian.org/cgit/pkg-glibc/glibc.git/plain/debian/patches/any/local-CVE-2015-7547.diff?id=bdcbf352ebee7cfb38b2bcafcb77fe9650d927e0

重建freescale 4.6.2 multilib toolchain的更多相关文章

  1. UNICODE本地编译freescale的i.MX6Q的android4.2.2&android4.4.2 && 全志a80的步骤x1

    20151031本地编译freescale的i.MX6Q的android4.2.2&android4.4.2 && 全志a80的步骤x1 2015/10/31 15:07 开始 ...

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

    在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成 ...

  3. [异常解决] How to build a gcc toolchain for nRF51 on linux (very detailed!!!)

    1.Install gcc-arm-none-eabi https://devzone.nordicsemi.com/tutorials/7/This link shows that developm ...

  4. SQL Server 2014新特性:分区索引重建

    <single_partition_rebuild_index_option> ::= {     SORT_IN_TEMPDB = { ON | OFF }   | MAXDOP = m ...

  5. Oracle索引重建

    一.前言 Oracle建议对于索引深度超过4级以及已删除的索引条目至少占有现有索引条目总数的20% 这2种情形下需要重建索引.有人持不同观点,就是强烈建议不要定期重建索引.索引重建是一个争论不休被不断 ...

  6. mdadm设定RAID磁盘阵列,且当分区故障后如何重建

    首先,fdisk建立不同分区,且设为fd格式 其次, mdadm -C md0 -a yes -l -n /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sd ...

  7. pcl曲面重建模块-poisson重建算法示例

    poisson曲面重建算法 pcl-1.8测试通过 #include <iostream> #include <pcl/common/common.h> #include &l ...

  8. [LeetCode] Sequence Reconstruction 序列重建

    Check whether the original sequence org can be uniquely reconstructed from the sequences in seqs. Th ...

  9. [LeetCode] Reconstruct Original Digits from English 从英文中重建数字

    Given a non-empty string containing an out-of-order English representation of digits 0-9, output the ...

随机推荐

  1. C++对C语言的拓展(4)—— 函数重载

    函数重载(Function Overload):用同一个函数名定义不同的函数,当函数名和不同的参数搭配时函数的含义不同. 1.重载规则 (1)函数名相同: (2)参数个数不同,参数的类型不同,参数顺序 ...

  2. python if语句,while语句

    一,if语句: python中最常用的判断语句,基本格式: 1.if else格式 if  条件: 结果 else: 结果 """ if 条件: 满足条件执行代码 els ...

  3. Northwind 示例数据库

    Northwind 示例数据库 Northwind Traders 示例数据库包含一个名为 Northwind Traders 的虚构公司的销售数据,该公司从事世界各地的特产食品进出口贸易. 下载地址 ...

  4. OracleParameter中参数名必须是DB中已有字段:【 ORA-01745: 无效的主机/绑定变量名】

    错误例子: 错误原因:查询的变量是自己随便命名的,不是数据库表中已有的字段, 因此,在进行OracleParameter(":rownum",10)时,在数据库中无法自动进行字段匹 ...

  5. Mina2中IoService

    Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架.它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP.UDP/IP.串口和虚拟机内部的管道等传输方式. ...

  6. throw和throws的区别和联系

    突然发现今天诗兴大发,看来又得写点内容了. throw和throws对于Java程序员而言它们真的不是很陌生.但对于我这样的选手而言一提到它们的区别和联系就蒙圈了... 为了以后不蒙圈,今天就研究一下 ...

  7. win 7命令行大全

    一.win+(X) 其中win不会不知道吧,X为代码! Win+L 锁定当前用户. Win+E 资源管理器. Win+R 运行. Win+G (Gadgets)顺序切换边栏小工具. Win+U    ...

  8. CreateRemoteThread 远程注入

    在release中可以成功,在debug中被注入的程序停止工作 #pragma once#include "stdafx.h"#include <windows.h># ...

  9. 通过在Oracle子表外键上建立索引提高性能

    根据我的经验,导致死锁的头号原因是外键未加索引(第二号原因是表上的位图索引遭到并发更新).在以下两种情况下,Oracle在修改父表后会对子表加一个全表锁: 1)如果更新了父表的主键(倘若遵循关系数据库 ...

  10. oracle——pl/sql 查询中文乱码

    1.查看服务器端编码select userenv('language') from dual;我实际查到的结果为:AMERICAN_AMERICA.AL32UTF82.执行语句 select * fr ...