Re: [PATCH] binfmt_elf_fdpic: Magical stack pointer index, for NEW_AUX_ENT compat.

From: David Howells
Date: Fri May 16 2008 - 07:22:51 EST


Paul Mundt <lethal@xxxxxxxxxxxx> wrote:

> While implementing binfmt_elf_fdpic on SH it quickly became apparent
> that SH was the first platform to support both binfmt_elf_fdpic and
> binfmt_elf, as well as the only of the FDPIC platforms to make use of the
> auxvt.
>
> Currently binfmt_elf_fdpic uses a special version of NEW_AUX_ENT() where
> the first argument is the entry displacement after csp has been adjusted,
> being reset after each adjustment. As we have no ability to sort this out
> through the platform's ARCH_DLINFO, this index needs to be managed
> entirely in create_elf_fdpic_tables(). Presently none of the platforms
> that set their own auxvt entries are able to do so through their
> respective ARCH_DLINFOs when using binfmt_elf_fdpic.
>
> In addition to this, binfmt_elf_fdpic has been looking at
> DLINFO_ARCH_ITEMS for the number of architecture-specific entries in the
> auxvt. This is legacy cruft, and is not defined by any platforms in-tree,
> even those that make heavy use of the auxvt. AT_VECTOR_SIZE_ARCH is
> always available, and contains the number that is of interest here, so we
> switch to using that unconditionally as well.
>
> As this has direct bearing on how much stack is used, platforms that have
> configurable (or dynamically adjustable) NEW_AUX_ENT calls need to either
> make AT_VECTOR_SIZE_ARCH more fine-grained, or leave it as a worst-case
> and live with some lost stack space if those entries aren't pushed (some
> platforms may also need to purposely sacrifice some space here for
> alignment considerations, as noted in the code -- although not an issue
> for any FDPIC-capable platform today).
>
> Signed-off-by: Paul Mundt <lethal@xxxxxxxxxxxx>

Acked-by: David Howells <dhowells@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/