What is libgnarl
?我在不同的地方找到了对此的引用,例如在 gcc 源代码中或 gprbuild 的详细输出中。 gprbuild 特别报告了有关决定是否libgnarl
甚至是必要的,所以它显然是一个可选库,但实际的库是什么?我找不到任何有关它的文档。源代码包含一堆看起来像是属于标准库的包,但实际上并非如此(例如Ada.Execution_Time.Timers
),很明显我错过了一些东西。
您可以通过谷歌搜索,例如“ada gnarl”并找到一些相当详细的信息。
它是 RTS 中处理任务的部分,因此,从广义上讲,如果您的程序不使用任务,则不需要 libgnarl。
从历史上看,它是作为纽约大学 GNAT 团队和佛罗里达州立大学 PART 团队的联合项目开发的:,
GNARL 的开发是佛罗里达州立大学 POSIX/Ada Real-Time (PART) 项目与纽约大学 GNAT 开发团队的合作成果。 PART 项目的目标是推进 Ada 语言与 IEEE POSIX 标准(操作系统服务的应用程序接口系列)绑定的开发和标准化。 PART 项目的一个核心问题是 Ada 任务模型与建议的标准 POSIX 线程服务 (Pthreads) 的协调。
AdaCore 的嵌入式 RTS(至少是 ARM 的)似乎没有保留这种区别:至少在一个方面,libgnarl.a
仅包含empty.o
!然而,AdaCore 继续采用将学术 RTS 开发纳入其嵌入式 RTS 的方法,请参阅s-bb.ads
(bb
=> 裸板):
-- Copyright (C) 1999-2002 Universidad Politecnica de Madrid --
-- Copyright (C) 2003-2004 The European Space Agency --
-- Copyright (C) 2003-2018, AdaCore --
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)