In response to some of Ben's reports, I went and looked at the whole ELF
issue again.
The upshot of it is that ELF has some kinds of flexibility that a.out just
does not have. There are portions of the present EROS system that rely on
ELF that could be switched to a.out with a certain amount of work, but
there are some pending things that cannot be switched.
The particular issue is that ELF's multiple section handling allows certain
kinds of things to be done by the linker. Of these, the most noteworthy is
a key multiplexing library that I had in mind to build. ELF allows keys to
be declared in a bunch of object files and gathered into a single link
section that is page aligned. These objects are *not* data objects, and so
must not appear in code, data, or bss sections. There is no way a.out is
going to do this. As a result, I made an early decision that EROS
compilation would be based on the ELF object file format. This is why
the
current release notes say that you need a Linux system to build EROS.