Page 1 of 1

Ada: using bb-runtimes?

Posted: Sun Feb 06, 2022 7:33 pm
by Ethin
The Ada Bear Bones article makes you build your own runtime, but AdaCore has various bear-metal runtimes available. Would it be worth trying to use one of those runtimes or would it be better to just write my own? Just asking out of curiosity at this point.

Re: Ada: using bb-runtimes?

Posted: Sun Feb 06, 2022 7:57 pm
by Octocontrabass
They look like they could be useful as a starting point, but for developing a whole OS you wouldn't be able to use them unmodified. (And it looks like the x86-64 code writes an uninitialized value to CR0, so I'm not sure how well those runtimes have been tested.)

A good chunk of the wiki page was written a decade ago. Did the bare metal runtimes exist back then?

Re: Ada: using bb-runtimes?

Posted: Sun Feb 06, 2022 8:26 pm
by Ethin
Octocontrabass wrote:They look like they could be useful as a starting point, but for developing a whole OS you wouldn't be able to use them unmodified. (And it looks like the x86-64 code writes an uninitialized value to CR0, so I'm not sure how well those runtimes have been tested.)

A good chunk of the wiki page was written a decade ago. Did the bare metal runtimes exist back then?
I don't think so. According to git, the very first commit occurred on Fri Sep 19 07:54:14 2014 +0000. However, that appears to be a git-svn import, so I honestly have no idea how old the repository is. Perhaps the x86 runtime didn't exist back then?
I could always just build my own runtime following the guide and then import what I want, perhaps. I do think its nice how the runtime acts as its own bootloader though.

Re: Ada: using bb-runtimes?

Posted: Sun Feb 06, 2022 9:47 pm
by nullplan
Ethin wrote:According to git, the very first commit occurred on Fri Sep 19 07:54:14 2014 +0000. However, that appears to be a git-svn import, so I honestly have no idea how old the repository is.
git-svn preserves timestamps (that's rather the whole point), so this commit is likely the first revision on the SVN repo.