asm code didn't link the way it was supposed to and the calling convention for the entry "function" turned out to be very different. On alpha it's a true function, but on i386 it's a fudge. Blech. So jdp suggested keeping separate sets of source and avoiding lots of #ifdefs. These files are based on his i386-elf code, with crt1.c borrowing code from NetBSD's crt0. The copyright reflects that. Complicating matters, the code turned out to be difficult to bootstrap build using NetBSD tools. To compile against the FreeBSD rtld header requires FreeBSD specific headers, but these can't be installed until the tools are built, and they can't be built without the FreeBSD crt objects. Anal retentive. So I introduced a HAVE_RTLD #define that isn't set during the build process until all the tools are built and the headers installed. |
||
---|---|---|
.. | ||
alpha | ||
amd64 | ||
common | ||
i386 | ||
i386-elf |