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

最新文章

  1. clearfix的应用
  2. JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log
  3. [原]unity5 AssetBundle打包
  4. IE下angularJS页面跳转的bug
  5. [OpenCV] Image Processing - Grayscale Transform
  6. Linux-Gcc生成和使用静态库和动态库详解
  7. c# 调用MD5CryptoServiceProvider出现 System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.
  8. python之setattr,getattr,hasattr
  9. LeetCode:Sort List
  10. MongoDB 主从复制小实验
  11. asp.net获取当前页面文件名,参数,域名等方法。统一session验证和权限验证的方法
  12. jQuery 选择器和JavaScript 选择器的技巧与异常原因
  13. Mobie 有用的几个css js代码
  14. JS获取按下的键盘字符
  15. c++设计模式总结 好久没写博客了 实在是忙
  16. python编程快速上手之第10章实践项目参考答案
  17. 关于jQuery中的trigger和triggerHandler方法的使用
  18. leetcode-数组-子集
  19. Linux之安装常用软件
  20. Eclipse中提示svn: is already locked的解决办法

热门文章

  1. NSString *const 和 const NSString * 的区别
  2. Python函数-int()
  3. keepalived之 Keepalived 原理(定义、VRRP 协议、VRRP 工作机制)
  4. [转]Angular移除不必要的$watch之性能优化
  5. 相当有用的react+redux渲染性能优化原理
  6. flask+blueprint路由配置
  7. 机器学习:SVM(基础理解)
  8. Web项目安全相关博客日志大集合(仅供学习及参考)
  9. HDLM命令dlnkmgr详解之五_set
  10. HDLM命令dlnkmgr详解之四_monitor/offline/online