Re: Merge headerfiles for m68k and m68knommu to arch/m68k/include/asm

Arnd Bergmann
2008-12-11T16:48:18Z

On Thursday 11 December 2008, Andreas Schwab wrote:
> Geert Uytterhoeven <geert@linux-m68k.org> writes:
>
> > None of my m68k-linux compilers set __uClinux__, as expected.
>
> IIUC, userspace ABI is supposed to be completely identical.

The header files are currently different for the definitions of
__arch__swab32, EXEC_PAGESIZE, struct sigcontext, struct siginfo,
struct pt_regs (coldfire only) and COMMAND_LINE_SIZE.

I don't expect the last two to cause any trouble, but the others
are likely to.

__arch_swab32 should be protected with __mcfisaaplus__ (as it
already is on m68knommu).

pt_regs on m68knommu is already screwed by itself, because it
depends on the CONFIG_COLDFIRE symbol. I don't think that it's
possible to build a gdb for coldfire with the current headers,
because CONFIG_* symbols are not visible in user space.

The signal handling ABI is currently broken on m68knommu:

commit 19dbaf6f6 "m68knommu: save reg a5 on context change",
changes the layout of struct sigcontext in an incompatible
way from older m68knommu and all m68k versions.

Prior to that, Linux-2.5.64 changed m68knommu to use the generic
siginfo instead of the m68k compatible one, thereby removing
uid32 support from it. This breaks when you build a libc with
uid32 against the m68k headers.