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.129.89.214 with SMTP id n205mr24598531ywb.51.1442408124248; Wed, 16 Sep 2015 05:55:24 -0700 (PDT) X-Received: by 10.182.81.9 with SMTP id v9mr111243obx.40.1442408124216; Wed, 16 Sep 2015 05:55:24 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!feeder.erje.net!us.feeder.erje.net!news.ripco.com!news.glorb.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!v79no1527394qge.0!news-out.google.com!f6ni6559igi.0!nntp.google.com!kq10no5171751igb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 16 Sep 2015 05:55:23 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.255.88.101; posting-account=0EXciQoAAABnszktho592qzTsx_OoajA NNTP-Posting-Host: 89.255.88.101 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <0dd03a38-391b-45bc-859c-4ed2c42452e3@googlegroups.com> Subject: Can I get rid of C libraries dependencies? From: Leff Ivanov Injection-Date: Wed, 16 Sep 2015 12:55:24 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: news.eternal-september.org comp.lang.ada:27776 Date: 2015-09-16T05:55:23-07:00 List-Id: Okey, so I wrote this code: pragma No_Run_Time; with Interfaces.C.Strings; use Interfaces.C.Strings; with Interfaces.C; use Interfaces.C; procedure Main is procedure cputs(str:Char_Array); pragma Import(C, cputs, "puts"); procedure cexit(code:Integer); pragma Import(C, cexit, "exit"); begin cputs("Hello World!"); cexit(0); end Main; What I want to achive is a tiny 2kb binary executable with a single function called as entry point (which is defined in Ada and called Main procedure). The pragma on top let me get rid of the huge RTL code that is written in Ada. However I'm still getting a lot of code linked in from C libraries, so... 1) Can I get rid of the C code linked in? 2) What is implemented in thoose C libraries? 3) Can I use Ada's RTL library without the C support code, if I use some Restrictions?