From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.224.172.134 with SMTP id l6mr9958129qaz.7.1364333275923; Tue, 26 Mar 2013 14:27:55 -0700 (PDT) X-Received: by 10.49.24.13 with SMTP id q13mr1244804qef.33.1364333275890; Tue, 26 Mar 2013 14:27:55 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!mx05.eternal-september.org!feeder.eternal-september.org!news.glorb.com!t2no17947112qal.0!news-out.google.com!k8ni11100qas.0!nntp.google.com!ca1no8479737qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 26 Mar 2013 14:27:55 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=172.0.242.94; posting-account=-WG8VgoAAAAlWewKFi0J7zSTMYXZyyK3 NNTP-Posting-Host: 172.0.242.94 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Runtime startup code for the GNAT Runtime...and a bit of humble pie. From: Diogenes Injection-Date: Tue, 26 Mar 2013 21:27:55 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Xref: news.eternal-september.org comp.lang.ada:14727 Date: 2013-03-26T14:27:55-07:00 List-Id: Anyone know if there's a list of what parts of the Ada language can be comp= iled statically without any Runtime whatsoever? I realize that the default GNAT installations will link to the runtime rega= rdless, but I was wondering if it's possible to write startup code in Ada w= ith a bit of assembler thrown in(possibly inline)? Thinking of maybe writin= g an art0.o, art1.o(Ada Runtime, as opposed to crt0.o for the C 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 ke= rnel itself.(Using clone() and futex() instead of pthreads for example). And for the record, SPARK is really helping me avoid a lot of the problems = I was expecting to come across in this effort. 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.