comp.lang.ada
 help / color / mirror / Atom feed
From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Runtime startup code for the GNAT Runtime...and a bit of humble pie.
Date: Tue, 26 Mar 2013 14:57:21 -0700 (PDT)
Date: 2013-03-26T14:57:21-07:00	[thread overview]
Message-ID: <f906489d-27f3-4f13-b18b-e6d1336ae6c3@googlegroups.com> (raw)
In-Reply-To: <f9e48953-18e9-4645-aae2-3caa4ad2a302@googlegroups.com>

On Tuesday, March 26, 2013 3:27:55 PM UTC-6, Diogenes wrote:
> Anyone know if there's a list of what parts of the Ada language can be compiled statically without any Runtime whatsoever?

That's a very good question.
Sadly I have no answer for you -- I know Tasking and certain attributes, like 'Image, need it.

> 
> I realize that the default GNAT installations will link to the runtime regardless, but I was wondering if it's possible to write startup code in Ada with a bit of assembler thrown in(possibly inline)? Thinking of maybe writing an art0.o, art1.o(Ada Runtime, as opposed to crt0.o for the C Runtime).

Nah, call it something like "Applied Diversified Ada Runtime" (ADA_Runtime)...
;)


> 
> I can get a good bit of it running by linking with musl-libc, but the next step is doing Ada/Assembler startup code followed by direct calls to the kernel itself.(Using clone() and futex() instead of pthreads for example).

That may be a bad call, if I'm reading you right.

Wouldn't it be best to write it first in a way so your [hardware] dependencies are in one spot and secondly [and possibly separately] the platform-dependence? {IOW, get it to a state where a no-OS body could be supplied as well as an optimized-for-the-OS. Tying your runtime to pthreads [POSIX] early on might be a rather bad idea... as you don't want to force POSIX on the people who would want bare-metal access [or conceivably their own OS].}

> 
> I'm suspecting I'll be limited to procedures and functions exclusively, but hey, at this level that's all I'll need to get started.

That's certainly a good thing.

  reply	other threads:[~2013-03-26 21:57 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-18 20:59 Runtime startup code for the GNAT Runtime...and a bit of humble pie Diogenes
2013-03-18 21:14 ` Robert A Duff
2013-03-19  0:07 ` Diogenes
2013-03-19 10:04   ` Brian Drummond
2013-03-19 12:51     ` Simon Clubley
2013-03-19 18:16       ` Ludovic Brenta
2013-03-20  1:05         ` Simon Clubley
2013-03-20 10:13           ` Mike H
2013-03-20 20:44             ` Ludovic Brenta
2013-03-19 21:43       ` Randy Brukardt
2013-03-20  8:24         ` Dmitry A. Kazakov
2013-03-21  0:16           ` Randy Brukardt
2013-03-21 19:08             ` Shark8
2013-03-21 23:34               ` Randy Brukardt
2013-03-22 16:39                 ` Jacob Sparre Andersen
2013-03-23 10:56                   ` Thomas Løcke
2013-03-19 23:13       ` Brian Drummond
2013-03-20  0:54         ` Simon Clubley
2013-03-20 11:50           ` Brian Drummond
2013-03-20 13:18             ` Simon Clubley
2013-03-26 11:04               ` Brian Drummond
2013-03-26 22:38                 ` Simon Clubley
2013-03-27 11:34                   ` Brian Drummond
2013-03-27 14:38                     ` Simon Clubley
2013-03-27 22:58                       ` Brian Drummond
2013-03-20 14:17           ` Lucretia
2013-03-20 15:00             ` Lucretia
2013-03-21 16:39             ` Brian Drummond
2013-03-23  4:35 ` Diogenes
2013-03-26 21:27 ` Diogenes
2013-03-26 21:57   ` Shark8 [this message]
2013-03-27  0:28     ` Diogenes
2013-03-27  2:27       ` Shark8
2013-03-27 10:05       ` Brian Drummond
2013-03-27 12:23         ` Simon Wright
2013-03-27 19:07   ` Randy Brukardt
2013-03-27 21:10     ` Diogenes
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox