]> git.baikalelectronics.ru Git - kernel.git/commit
MIPS: tools: Add relocs tool
authorMatt Redfearn <matt.redfearn@imgtec.com>
Thu, 31 Mar 2016 09:05:32 +0000 (10:05 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 13 May 2016 12:02:01 +0000 (14:02 +0200)
commit34b1f0e4fb5e53015c27a6ef19f876db53e10cc0
treec28f4c6d7d4b1fcb6d77cc7d7222cc1bb34ef594
parented0659bbc459c9fbd751827cda06696cd9ea6211
MIPS: tools: Add relocs tool

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: Matt 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: Ralf Baechle <ralf@linux-mips.org>
arch/mips/boot/tools/Makefile [new file with mode: 0644]
arch/mips/boot/tools/relocs.c [new file with mode: 0644]
arch/mips/boot/tools/relocs.h [new file with mode: 0644]
arch/mips/boot/tools/relocs_32.c [new file with mode: 0644]
arch/mips/boot/tools/relocs_64.c [new file with mode: 0644]
arch/mips/boot/tools/relocs_main.c [new file with mode: 0644]