On Monday 19 September 2011 19:36:27 Arnd Bergmann wrote:
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...
It depends on whether you want those structures to be compatible with any other structure. To give a different example, qemu-user supports converting ioctl data structures to the host data structure for any commands it knows. When you want to run an arm-oabi binary for instance on an x86-32 host, you need to conver the data structures that have this layout, but not when running the same program built for arm-eabi.
In either case however, you will have to convert the data structures that contain pointers running qemu-user on x86-64.
Sorry, I misunderstood your question. Yes, as Nicolas explained, the oabi-compat code in an arm-eabi kernel is broken indeed but works most of the time in practice.
Arnd