代码之家  ›  专栏  ›  技术社区  ›  Kingsley

生成GCC Ada,语法错误编译-excmac.adb公司和一个老家伙在一起

  •  0
  • Kingsley  · 技术社区  · 5 年前

    我正在尝试更新我们已有20年历史的Ada编译器,但是您需要Ada编译器来构建GCC+Ada(9.2.0)的某些部分。

    gnatmake大约是2000年,它可能是gcc2.8.1的子调用。 叹气。

    libgnat/ 我找不到文件:

    编译 libgnat/s-excmac.adb :

    $ gnatmake s-excmac.adb
    gcc -c -gnatpg s-excmac.adb
    s-excmac.ads:134:44: identifier expected
    gnatmake: "s-excmac.adb" compilation error
    

    s-excmac.ads 是:

       type GCC_Exception_Access is access all Unwind_Exception;
       --  Pointer to a GCC exception
    
       procedure Unwind_DeleteException (Excp : not null GCC_Exception_Access );  -- <-- THIS ONE!
    
       pragma Import (C, Unwind_DeleteException, "_Unwind_DeleteException");
    
       --  Procedure to free any GCC exception
    

    我有点像个傻瓜,所以请温柔一点。

    编辑:似乎在试图“修复”这个问题 s-excmac.adb s码-excmac.ads公司 是傻瓜的差事。阻力较小的方法是下载一个预构建的编译器,然后从中开始构建稍后的GCC。

    0 回复  |  直到 5 年前
        1
  •  6
  •   user_1818839    5 年前

    not null access 申报将是一个问题。

    若要继续,您可以删除 not null 咳嗽 视情况而定。

        2
  •  5
  •   Simon Wright    5 年前

    布莱恩说得对 not null

        3
  •  1
  •   Maxim Reznik    5 年前

    我想,建筑 libgnat 是最新的一步。我的意思是你需要用旧的gcc来构建“newgcc”,然后用“newgcc”来构建 利比纳特 . 在这种情况下,你不会得到这个错误。