Subject: Re: ELF
To: None <sommerfeld@orchard.arlington.ma.us>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm32
Date: 11/02/2000 11:33:01
> My understanding is that the netbsd arm32 a.out ABI has slightly
> different structure alignment/layout conventions than the standard ARM
> elf ABI, which means that moving to ELF on arm32 will require either
> (a) some really ugly compat code, or (b) a "flag day" when both kernel
> and all userland code have to be updated in lockstep.


Not true, but the time we move to ELF would be a good opportunity to have a
FLAG day, since ELF shared libs are never used with legacy a.out
executables.  This gives us a (relatively) clean sheet to fix some of the
oddities that the arm32 port has (but that arm26 managed to avoid).

I don't think anything that might be changing would affect the layout of 
information passing across the user/kernel interface, which is the only 
one that would need careful attention at the time of a move to ELF.

In the spirit of trying to move things forward, I'll note some (I can't be 
sure I've remembered all of them) of the things I think should be fixed 
below.

1) Structure alignment -- we should move to word-aligned structures, as 
the rest of the ARM world has.
2) Structure returning -- we should conform to the normal rules for 
structure return.

The following two are more open to debate, but I'll put them forward 
anyway.

3) We should consider adopting a more modern version of the ARM ABI (ie 
one of the ATPCS variants).  This would make support of Thumb code much 
easier.  Unfortunately, this is a major task, since at present GCC does 
not support these -- though there is no reason why the code can't be 
added).

4) We should use the DWARF-based exception throwing mechanism -- this is 
more efficient.

Finally, we need to put some more thought about what sort of Floating 
point support we want -- the latest ARM floating point architecture (VFP) 
is incompatible in both instruction format and data format with the 
existing FPA layout (don't ask me why, I wasn't privy to the decision).  
Maybe a change like this would be better considered as a completely new 
port.

Richard.