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=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Received: by 2002:ac8:6958:: with SMTP id n24mr19186910qtr.360.1561253151453; Sat, 22 Jun 2019 18:25:51 -0700 (PDT) X-Received: by 2002:a9d:1b21:: with SMTP id l30mr9072465otl.5.1561253151185; Sat, 22 Jun 2019 18:25:51 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!news.gegeweb.eu!gegeweb.org!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!m24no7370062qtm.0!news-out.google.com!33ni71qtt.0!nntp.google.com!m24no7370054qtm.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sat, 22 Jun 2019 18:25:50 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=115.64.33.135; posting-account=L5BIhAoAAABpFS40uWyw6qp3RjzNguaC NNTP-Posting-Host: 115.64.33.135 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Setting up a bare metal x86 toolchain From: ajxscc@gmail.com Injection-Date: Sun, 23 Jun 2019 01:25:51 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader01.eternal-september.org comp.lang.ada:56718 Date: 2019-06-22T18:25:50-07:00 List-Id: I've recently begun exploring bare-metal development in Ada, with some grea= t successes targeting bare-metal ARM using AdaCore's GPL compiler. I have s= ome minimal experience with bare-metal x86 development, and would like to u= se Ada for this purpose. I was wondering what the best way to create an x86= bare-metal toolchain is. I've seen Lucretia's 'Ada Bare Bones' tutorial on osdev.org, which provides= some useful information about building the runtime. This is quite straight= forward, but I'm a little unsure about how to build the cross compiler for = the task. Am I correct in my assumption that creating a 'freestanding' binary is done= by compiling with the right kind of RTS? If I were to create/utilise a pro= per freestanding RTS, would it be suitable to use either the AdaCore or FSF= GNAT targeting x86? Any help understanding this would be greatly appreciated.