On Mon, 19 Sep 2011, Rob Clark wrote:
On Mon, Sep 19, 2011 at 10:39 AM, Will Deacon will.deacon@arm.com wrote:
Arnd,
On Mon, Sep 19, 2011 at 08:15:45AM +0100, Arnd Bergmann wrote:
Assuming that we can prevent any funny stuff from going into such an ABI, we only need to worry about the warts of the current ABI for ARM specific considerations. The one thing that I've noticed before is that structs on ARM (at least on one of the ABIs, forgot which) are padded to 32 bits, even if all members inside are smaller.
This is only the case for the old ABI. EABI lays out structures so that they are aligned to their most aligned member and padded to be the smallest possible multiple of that alignment which can contain all of their aligned members.
Hmm, so then since you can build the kernel w/ OABI compatibility, it seems like structs should always have padding fields to force them to be a multiple of 32bits...
Depends what you want to achieve. The OABI compat is there only to allow _most_ old binaries to execute on a modern system. When I wrote that code, I left out ioctl ABI compatibility issues because there are simply too many of them, and in practice the most often used ones just work already. A notable exception is ALSA.
So at this point I think there is no point caring too much about the OABI.
Nicolas