• Al Viro's avatar
    mips compat: switch to compat_binfmt_elf.c · 0bb87f05
    Al Viro authored
    Like amd64, mips has two 32bit ABIs - o32 and n32.  Unlike amd64,
    it does not use compat_binfmt_elf.c for either of those; each
    of those ABIs has a binfmt handler of its own, both very similar
    to fs/compat_binfmt_elf.c.  And the same technics as we use on
    amd64 can be used to make fs/compat_binfmt_elf.c handle both.
    	* merge elfo32_check_arch() with elfn32_check_arch(),
    make that serve as compat_elf_check_arch().  Note that
    SET_PERSONALITY2() is already the same for all ABI variants -
    it looks at the elf header to choose the flags to set.
    	* add asm/elfcore-compat.h, using the bigger (n32) variant
    of elf32_prstatus as compat_elf_prstatus there.
    	* make PRSTATUS_SIZE() and SET_PR_FPVALID() choose the
    right layout, same as done for amd64.  test_thread_flag(TIF_32BIT_REGS)
    is used as the predicate.
    
    Voila - we are rid of binfmt_elf{n,o}32.c; fs/compat_binfmt_elf.c is
    used, same as for all other ELF-supporting 64bit architectures that
    need 32bit compat.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    0bb87f05
elf.h 15.2 KB