5

我是一名使用 IA-32 类型处理器的嵌入式软件工程师。我们正在寻找一个编译器工具链——最好是免费的。

我们曾经使用 Mentor Graphics CodeBench Lite,但它不再可用。

我们查看了其他 GCC 发行版,但它们都没有 glibc 的裸机实现。除了 newlib 之外没有,但由于 GPL 和 LGPL 许可问题,我们不能使用它。我们是 OEM,我们的客户(和我们)拥有专有代码。

欢迎任何建议。

4

2 回答 2

5

Sourcery 的“lite”gpl 工具仍然可用,只是 Mentor 喜欢玩隐藏链接。

如果你想要一个非 GPL 许可的轻量级 C 库,你可以看看 Android 的 Bionic。

但是,您的担心可能是错误的。IANAL 但大多数 C 库许可证都有某种链接例外,您可能希望在律师的帮助下进行研究 - 如果没有,它们作为系统库的实用性将受到极大限制。

实际上,快速搜索 newlib 许可页面(这很复杂)似乎表明它更多的是在 BSD 风格的许可证下而不是在 GPL 风格的许可证下,尽管需要小心地将它们全部整理出来。

于 2013-06-05T16:01:55.933 回答
3

Mentor 可能不再提供 IA-32 裸机工具链的 Lite 版本,但我很确定它仍然在商业版本中得到支持,而且基本许可证并不那么昂贵。

正如 Chris 所说,Newlib 许可页面有点复杂——但它的要点是,基本上裸机系统所需的所有内容都是 BSD 许可的。IIRC,获得 GPL 许可的部分是明确描述的特定于系统的部分,它们引用 Linux 内核等中的内容(因此必须获得 GPL 许可),并且这些部分不包含在裸机构建中. 我认为它们甚至都位于您可以删除的一两个不同目录中。显然,您应该自己进行分析,但这是您应该期望找到的结果。

一个可能有用的快捷方式:最新版 CodeBench Lite for IA-32 ELF 的下载页面位于此页面。如果您从那里下载源代码压缩包,您将获得用于构建它的 Newlib 源代码,并且还有一个.sh包中还有一个文件指示它是如何配置和构建的。您会注意到,在文档中(许可证在入门指南的后面)Newlib 二进制文件被简单地列为 BSD 许可,因此这应该向您展示 Mentor 如何获得符合该许可描述的编译库。

(免责声明:我曾经为 Mentor 工作,直到最近。)

于 2013-06-06T07:49:10.573 回答