]> git.hungrycats.org Git - linux/commitdiff
arm64: errata: Add -mpc-relative-literal-loads to build flags
authordann frazier <dann.frazier@canonical.com>
Mon, 25 Jan 2016 23:52:16 +0000 (16:52 -0700)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 18 Apr 2016 12:49:41 +0000 (08:49 -0400)
[ Upstream commit 67dfa1751ce71e629aad7c438e1678ad41054677 ]

GCC6 (and Linaro's 2015.12 snapshot of GCC5) has a new default that uses
adrp/ldr or adrp/add to address literal pools. When CONFIG_ARM64_ERRATUM_843419
is enabled, modules built with this toolchain fail to load:

  module libahci: unsupported RELA relocation: 275

This patch fixes the problem by passing '-mpc-relative-literal-loads'
to the compiler.

Cc: stable@vger.kernel.org
Fixes: df057cc7b4fa ("arm64: errata: add module build workaround for erratum #843419")
BugLink: http://bugs.launchpad.net/bugs/1533009
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Suggested-by: Christophe Lyon <christophe.lyon@linaro.org>
Signed-off-by: Dann Frazier <dann.frazier@canonical.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
arch/arm64/Makefile

index 2d54c55400ed17a67eb471f9f8ff24606dd97193..37c4fd6aeb7af08421e75b675cafdcef69faf46b 100644 (file)
@@ -20,6 +20,8 @@ LIBGCC                := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
 KBUILD_DEFCONFIG := defconfig
 
 KBUILD_CFLAGS  += -mgeneral-regs-only
+KBUILD_CFLAGS  += $(call cc-option, -mpc-relative-literal-loads)
+
 ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
 KBUILD_CPPFLAGS        += -mbig-endian
 AS             += -EB