【问题标题】:List of target architectures supported by GNAT?GNAT 支持的目标架构列表?
【发布时间】:2012-05-11 15:14:14
【问题描述】:

我想知道 GNAT 支持哪些 CPU 架构,尤其是在嵌入式领域。 Ada 是否也自动支持 gnu C 编译器支持的每个目标?

【问题讨论】:

  • -pedant here - gnu C 编译器是指 gcc 吗?如果是这样,它现在是正式的 Gnu 编译器集合。
  • 不,我指的是作为 gcc(gnu 编译器集合)一部分的 C 编译器。

标签: compiler-construction embedded ada gnat target-platform


【解决方案1】:

AdaCore 的Embedded Development Page 有列表。

【讨论】:

  • 很遗憾,此链接现已失效。
【解决方案2】:

更严重的是,快速阅读man gcc 表明我在语言和架构之间没有任何限制。并不是说可能不存在。

但很有希望的是,声明:

如果特定选项的描述未提及来源 语言,您可以将该选项用于所有支持的语言。

来自man gcc 似乎暗示你的问题是肯定的。

【讨论】:

  • 引用只是意味着列出的所有选项都适用于所有源语言。不幸的是,man gcc 对-b 选项无话可说。
  • 好吧,你还需要一个运行时库,它依赖于目标架构。
【解决方案3】:

这是我为 Freenode 上的#Ada IRC 频道写的事实,它回答了你的问题:

目标 x:理论上任何平台都可以被 Ada 编译器作为目标,实际上它取决于目标的硬件,即如果目标是嵌入式的并且非常有限,则可能只有 Ada 的一个子集可以在上面实现目标。 或者:查看您感兴趣的特定目标是否可以被 Ada 定位的一个好方法是检查目标 CPU 是否受 GCC 后端支持,如果支持,则查看 GNAT 是否有前端最后,它可能只支持一个子集,它可能根本不支持它,在这种情况下,你必须在编译器的 GNAT 前端做一些工作来支持这个目标。 或者:GCC 后端列表可以在http://gcc.gnu.org/backends.html 找到 或者:您可以通过查看 /gcc/ada/gcc-interface/Makefile.in 中的模式匹配行来了解 GNAT 是否支持特定的 CPU/OS 组合,方法是查看类似于“ifeq ($(strip $(filter- out mips% wrs vx%,$(targ))),)" 此模式将 MIPS CPU 与 Wind River Systems vxWorks 操作系统相匹配。 或:有关硬件特定选项,请参阅 GCC 手册的第 3.17 节,http://gcc.gnu.org/onlinedocs

我会将上述链接添加到 AdaCore。

【讨论】:

    猜你喜欢
    • 2013-02-08
    • 2013-05-01
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    相关资源
    最近更新 更多