• Matt Redfearn's avatar
    MIPS: tools: Add relocs tool · 766c5803
    Matt Redfearn authored
    This tool is based on the x86/boot/tools/relocs tool.
    
    It parses the relocations present in the vmlinux elf file, building a
    table of relocations that will be necessary to run the kernel from an
    address other than its link address. This table is inserted into the
    vmlinux elf, in the .data.relocs section. The table is subsequently used
    by the code in arch/mips/kernel/relocate.c (added later) to relocate the
    kernel.
    
    The tool, by default, also marks all relocation sections as 0 length.
    This is due to objcopy currently being unable to handle copying the
    relocations between 64 and 32 bit elf files as is done when building a
    64 bit kernel.
    Signed-off-by: default avatarMatt Redfearn <matt.redfearn@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: kernel-hardening@lists.openwall.com
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/12981/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    766c5803
relocs.c 16.6 KB