summaryrefslogtreecommitdiffstats
path: root/arch/arm64/Kconfig
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2016-01-26 03:13:44 -0500
committerCatalin Marinas <catalin.marinas@arm.com>2016-02-24 09:57:27 -0500
commit1e48ef7fcc374051730381a2a05da77eb4eafdb0 (patch)
treef7f7174e996accf28dfdeef5fa79a452e4dbfa41 /arch/arm64/Kconfig
parent6c94f27ac847ff8ef15b3da5b200574923bd6287 (diff)
arm64: add support for building vmlinux as a relocatable PIE binary
This implements CONFIG_RELOCATABLE, which links the final vmlinux image with a dynamic relocation section, allowing the early boot code to perform a relocation to a different virtual address at runtime. This is a prerequisite for KASLR (CONFIG_RANDOMIZE_BASE). Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/Kconfig')
-rw-r--r--arch/arm64/Kconfig11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index c85c29d660bd..fef3dc6e21b9 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -787,6 +787,17 @@ config ARM64_MODULE_PLTS
787 select ARM64_MODULE_CMODEL_LARGE 787 select ARM64_MODULE_CMODEL_LARGE
788 select HAVE_MOD_ARCH_SPECIFIC 788 select HAVE_MOD_ARCH_SPECIFIC
789 789
790config RELOCATABLE
791 bool
792 help
793 This builds the kernel as a Position Independent Executable (PIE),
794 which retains all relocation metadata required to relocate the
795 kernel binary at runtime to a different virtual address than the
796 address it was linked at.
797 Since AArch64 uses the RELA relocation format, this requires a
798 relocation pass at runtime even if the kernel is loaded at the
799 same address it was linked at.
800
790endmenu 801endmenu
791 802
792menu "Boot options" 803menu "Boot options"