我是一名嵌入式软件工程师,使用IA-32型处理器。我们正在寻找一个编译器工具链-最好是免费的。
我们以前使用的是Mentor Graphics CodeBench Lite,但是现在已经没有了。
我们查看了其他GCC发行版,但它们都没有glibc的裸机实现。除了newlib没有,但是由于GPL和LGPL许可问题,我们不能使用它。我们是OEM,我们的客户(和我们)拥有专有代码。
Sourcery的"lite" gpl工具仍然可用,只是Mentor喜欢玩隐藏链接。
如果你想要一个非gpl许可的轻量级C库,你可以看看Android的Bionic。
然而,你的担心可能是错误的。但是大多数C库许可证都有某种类型的链接例外,你可能需要在律师的帮助下研究一下——如果没有它们作为系统库的效用将非常有限。
实际上,快速搜索一下newlib许可页面(这很复杂)似乎表明,它更多的是在bsd风格的许可下,而不是在gpl风格的许可下,尽管需要小心地将它们全部分类。
Mentor可能不再提供IA-32裸机工具链的Lite版,但我很确定它仍然在商业版本中得到支持,并且基本许可证并不那么昂贵。
正如Chris所说,Newlib许可页面有点复杂——但它的要点是基本上所有裸机系统所需的内容都是BSD许可的;gpl许可的部分是明确描述的特定于系统的部分,它们引用了Linux内核或类似的东西(因此必须是gpl许可的),这些部分不包括在裸机构建中。我认为它们甚至都在一个或两个不同的目录中,你可以直接删除它们。显然,您应该自己做分析,但这是您应该期望找到的结果。
一个可能有用的快捷方式:最新版本的CodeBench Lite for IA-32 ELF的下载页面在这个页面上。如果您从那里下载源tarball,您将获得用于构建它的Newlib源,并且包中还有一个.sh
文件,说明它是如何配置和构建的。您会注意到,在文档中(许可证在入门指南的后面),Newlib二进制文件被简单地列出为bsd许可,因此这应该向您展示Mentor如何获得符合许可描述的编译库。
(免责声明:我以前一直在Mentor工作,直到最近)