以前在做android的时候经常回去
CodeSourcery的网站上下载Sourcery G++ 的编译器,也没有太注意这个网站,只是认为这个是一个专门提供编译器的网站。但是最近去下载编译器的时候注意到网站变样了,所以找了一下资料了解了一下这个公司。
转载:codesourcery 简介 (感谢sam的分享)
CodeSourcery公司(据说只有十几个人)销售GCC 相关服务,同时也卖GCC 周边的低端程序设计元件。最近CodeSourcery公司宣布将退出GCC 4.0,产生品质大幅提升的源代码。
- 不少公司的toolchain都是外包给CodeSourcery的。例如MIPS与CodeSourcery合作推出MIPS开发环境:
- MIPS科技公司日前宣布,为MIPS优化的一种基于GNU工具链和Eclipse IDE的完整C/C++开发环境Sourcery G++,现已由 CodeSourcery, Inc. 开始推出。该开发环境可支持所有MIPS,包括性能增强的MIPS32 24K内核和超标量体系结构MIPS32 74K内核,以及其他优化。它还为Linux应用增加了对非位置无关代码(non-position independent code)的支持,提高了Linux系统的性能。
- CodeSourcery公司的首席专家Mark Mitchell表示:“当可以低价获得优化、商业用工具链时,开发商们越来越意识到花几个星期的时间构建、集成和测试他们自己的GNU工具链已显得没有意义。我们非常高兴与 MIPS 科技合作,推出MIPS开发商们需要的工具,使他们快速将产品推向市场。我们期待在未来开发和工具套件集成方面继续与MIPS合作。”
- 专门为MIPS设计的Sourcery G++是一个基于GNU工具链的完整的软件开发环境。Sourcery G++包括GNU C/C++ 编译器、GNU汇编程序和连接器、运行时间库、源码级和汇编级调试器、支持微处理器调试接口(Microprocessor Debug Interface,MDI)与 MIPS 系统 Navigator探针和 MIPSsim仿真器的连接,另外还有可选的Eclipse-based IDE。Sourcery G++可以在Windows和Linux主机上运行,可用于采用Lite、个人和专业版的bare-iron和GNU/Linux的开发。专业版本的用户可获得来自CodeSourcery 的终身支持。
- Sourcery G++简介:
- www.codesourcery.com 网站则有Sourcery G++详细说明:
- Sourcery G++包含GNU C and C++ compilers,Eclipse IDE以及其他一些有用的东西。
- 支持Windows以及Linux平台上开发。目标平台已经有很多:
- ARM EABI
- ARM GNU/Linux
- ARM uClinux
- ColdFire ELF
- ColdFire GNU/Linux
- ColdFire uClinux
- fido ELF
- IA32 GNU/Linux
- IA32 Windows
- MIPS ELF
- MIPS GNU/Linux
- Nios II GNU/Linux
- Power EABI
- Power GNU/Linux
- Stellaris EABI
- SuperH GNU/Linux
- Download:
- 首先需要注册,注册完成后即可下载测试版。
- 选择Host平台,Target平台即可。
- 安装:
- 下载成功后,运行 sourceryg++-x.x.xx-mips-linux-gnu.bin
- 在GUI 下安装成功。
- 需要licence. 选择自动获取,输入用户名,密码即可。(如果没有licence,则toolchain无法使用)
- 编译器区分Big-endian,Little-endian.
- 在官方的Sourcery G++ IDE中。可以在创建工程时在setting Endianness时选择Big-endian, Little-endian。
- 在直接使用其toolchain时,则可以用以下方法区分:
- -EL: Little-endian.
- 否则为Big-endian.
- Sam
还有一篇Codesourcery G++介绍也不错。
但是最近去访问Codesourcery 发现版面不一样了,因为Codesourcery 被明導國際 (Mentor Graphics)收购了,相关的收购新闻:Android引风潮半导体拥抱开放源代码
虽然据说用Codesourcery的编译器对代码的性能有提升,但是使用的时候应该是也有技巧的,由于Codesourcery的arm编译器没有对armv4做出优化或者不太适合做为v4的ARM核(也可能是需要特殊的编译配置选项),有时用它编译出的S3C24x0的u-boot无法使用。
对编译原理和编译器的了解对于产品的性能和安全性是有很大关系的。对于一个代码工作者来说也是非常重要的,必备的知识。 对于编译器知识的重要性,可以用一个unix创始人Ken的小故事来说明:
- 说到Unix与C语言,还有一段小故事,当时安装了Unix的PDP-11被放在贝尔实验室供大家使用,有一天大家伙发现Ken总是可以得到最高的 权限轻松进入他们的帐户,在贝尔实验室这种高人云集的地方,这简单是太不能容忍了,于是有若干高人跳了出来,仔细分析Unix代码,找到后门,修改后再重 新编译整个Unix,当所有人都以为这个世界应该从此清静了的时候,却发现Ken还是很容易就取得了他们的帐户权限,为此大家郁闷不已。直到很多年 后,Ken才道出其中的原委,原来代码里确实存在后门,不过并不在Unix代码中,而是藏在编译Unix的编译器里,每次编译器编译时就会自动加入后门代 码,而当时整个贝尔实验室都用的是Ken所写的C编译器。