]> git.ipfire.org Git - thirdparty/kernel/stable.git/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)
committerLuis Henriques <luis.henriques@canonical.com>
Wed, 17 Feb 2016 10:22:40 +0000 (10:22 +0000)
commit 67dfa1751ce71e629aad7c438e1678ad41054677 upstream.

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.

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>
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
arch/arm64/Makefile

index e82e87e7ff6db89858f54472d3602b08db64513d..dac811dbe9fac399a3d58c30f7249bac7f1aea07 100644 (file)
@@ -20,6 +20,7 @@ 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