• Nathan Lynch's avatar
    ELF loader support for auxvec base platform string · 483fad1c
    Nathan Lynch authored
    Some IBM POWER-based platforms have the ability to run in a
    mode which mostly appears to the OS as a different processor from the
    actual hardware.  For example, a Power6 system may appear to be a
    Power5+, which makes the AT_PLATFORM value "power5+".  This means that
    programs are restricted to the ISA supported by Power5+;
    Power6-specific instructions are treated as illegal.
    However, some applications (virtual machines, optimized libraries) can
    benefit from knowledge of the underlying CPU model.  A new aux vector
    entry, AT_BASE_PLATFORM, will denote the actual hardware.  For
    example, on a Power6 system in Power5+ compatibility mode, AT_PLATFORM
    will be "power5+" and AT_BASE_PLATFORM will be "power6".  The idea is
    that AT_PLATFORM indicates the instruction set supported, while
    AT_BASE_PLATFORM indicates the underlying microarchitecture.
    If the architecture has defined ELF_BASE_PLATFORM, copy that value to
    the user stack in the same manner as ELF_PLATFORM.
    Signed-off-by: default avatarNathan Lynch <ntl@pobox.com>
    Acked-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
binfmt_elf.c 54.1 KB