Subject: ARM: The switch to ELF. Are we ready yet?
To: None <port-arm@netbsd.org>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm
Date: 03/18/2002 17:45:45
So, the 1.6 branch should be happening soon, and we aren't quite ready for 
the switch to ELF yet.  I'm aware of the following issues.

1) Structure returning.  We currently don't conform to the ATPCS 
conventions for this (currently using old, horrible, APCS conventions).  
(rearnsha)
2) Enums.  Have all the code changes been made? (bjh21)
3) Conformance.  We have no measure of how well our code conforms to the 
EABI.

In addition to these there is the major issue that the EABI to which we 
want to conform is still not finalized, making it very difficult for us to 
have any confidence that we be in conformance to the ABI when we can't say 
for certain what it will eventually be.  For example, it has recently been 
suggested that we should nail a register for thread local storage (as 
several other processors do).  No decision has yet been reached on this 
issue, and even if we do adopt one, it is unclear whether it should be r9 
or r10.

Finally, I noticed the following on the GCC web pages the other day 
concerning gcc-3:

  Enumerations are now properly promoted to int in function parameters 
  and function returns. Normally this change is not visible, but when 
  using -fshort-enums this is an ABI change. 

I'm not sure what, if any, impact this might have on ARM code (which 
normally promotes small objects to int anyway), but I'd be nervous about 
using gcc-2.95 if this might cause an incompatible change (unless we can 
identify the change and incorporate it).

So, given all of the above, I have to say that my gut feeling is that it 
would be premature for arm switch to ELF at this time, in particular to 
try and rush things before the 1.6 release branch is made: it would be 
much better to do one more aout system and then make sure we were truly 
ready for the next release.

R.

PS.  Don't get me wrong: I'd really like to get rid of aout support, it 
really does limit us because of the lack of useful features.