[TUHS] crt0 -- what's in that name?

Dan Cross crossd at gmail.com
Tue Jun 13 06:22:20 AEST 2023


On Mon, Jun 12, 2023 at 4:04 PM Chris Pinnock via TUHS <tuhs at tuhs.org> wrote:
> I had thought that crt stood for “compiler runtime”. You’ll find files on a NetBSD (and other BSDs) in /usr/lib/csu called crt0, crtbegin, crtend (etc) which are included in the compiled binaries at build time and are used to include machine dependent things need to initialise programs.

Hmm. The comment at the top of `crt0.s` from 2nd Edition says, "C
runtime startoff", which seems pretty clear. Whether that has changed
over time is, of course, another matter (like how GCC changed to "GNU
Compiler Collection").

> (The acronym could be wrong of course - bss is the notorious one, where even the man page for a.out has this has a bug: "Nobody seems to agree on what bss stands for.”)

Huh. That seems to have come into the man page sometime after
4.3BSD-Taho; it's in Reno and Net/2, but not before (nor in other
systems, that I can see).

I thought it was pretty well known that it stands for, "Block Started
(by) Symbol"?

        - Dan C.

> > On 12 Jun 2023, at 20:45, segaloco via TUHS <tuhs at tuhs.org> wrote:
> >
> > Probably derivative of /etc/brt1 and /etc/brt2.  If there's a <lang>rt<digit> convention before that I can't say. If they're going for UNIX-y nomenclature though bootloaders were mboot, tboot, uboot, etc.  As an aside, Sega used the nomenclature "icd_blkX" where X is a digit to number 128-byte blocks of their initial loader, icd I presume standing for something like initial code. I feel like I've seen "icd" used elsewhere, but couldn't say where. In any case, I'm sure a lot could be devoted to running down the history of names like crt0, mch, mdec, icd, uboot, and so on. Unfortunately those sorts of trivia haven't bubbled up in my manual studies.
> >
> > - Matt G.
> > ------- Original Message -------
> > On Monday, June 12th, 2023 at 11:53 AM, Clem Cole <clemc at ccc.com> wrote:
> >
> >> This makes sense since there was B runtime to start, and Dennis was messing with things. No idea but I wonder if that was the impetus for the rename from B to newB to C - when he introduced a new runtime?
> >> ᐧ
> >>
> >> On Mon, Jun 12, 2023 at 2:30 PM Dan Cross <crossd at gmail.com> wrote:
> >> On Mon, Jun 12, 2023 at 2:22 PM ron minnich <rminnich at gmail.com> wrote:
> >> > This came up lately in the riscv firmware universe. Someone named early boot bt0, I mentioned crt0, and ... when did that name first appear? I first saw it in v6 but I'm sure it was long before.
> >>
> >> The Unix tree shows it in 2nd Edition:
> >> https://www.tuhs.org/cgi-bin/utree.pl?file=V2/lib/crt0.s
> >> That would suggest it was more or less contemporaneous with C itself.
> >>
> >> - Dan C.
> >
>


More information about the TUHS mailing list