AOUT support can be mostly built into a module, but a small part of it that is
arch-specific still gets built into the main kernel. *That* is the main thing
that is wrong.
I suppose it might be possible to move those bits of the main kernel into
inline functions in asm/a.out.h and thus include them directly in
No, it's not that simple. If asm/a.out.h doesn't exist, then various bits of
the kernel break that shouldn't. fs/binfmt_elf.c for example. fs/exec.c for
another. They *expect* bits of the asm/a.out.h and linux/a.out.h to exist -
which they shouldn't.
Not exporting them isn't by itself sufficient. The required constants
themselves are not defined for an arch that doesn't have the support, and so
the core code must not depend on them. This patch fixes that.
Furthermore, STACK_TOP and STACK_TOP_MAX don't belong in asm/a.out.h as far as
I can tell. They should probably be wherever TASK_SIZE resides (ie: