← Back to team overview

kernel-packages team mailing list archive

[Bug 1533009] Re: arm64: "unsupported RELA relocation"

 

We backported fixes for GCC PR63304
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63304) in our 2015.12
snapshot.

By default, GCC now uses adrp / ldr or adrp / add instructions to address the literal pools under the use of a command line
option, and this mode is on by default.

OTOH, CONFIG_ARM64_ERRATUM_843419 removes support for the related
relocations from the kernel, hence the error you are seeing.

Modifying arch/arm64/Makefile in the kernel sources to have:
ifeq ($(CONFIG_ARM64_ERRATUM_843419), y)
KBUILD_CFLAGS_MODULE    += -mcmodel=large -mpc-relative-literal-loads
endif

makes the problem disappear.

However, the -mpc-relative-literal-loads option is not recognized by GCC
if it doesn't include the patch for GCC PR 63304, so it may not be easy
to patch the Makefile.


** Bug watch added: GCC Bugzilla #63304
   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63304

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1533009

Title:
  arm64: "unsupported RELA relocation"

Status in Linaro GCC:
  Unknown
Status in Linux:
  Unknown
Status in gcc-5 package in Ubuntu:
  Confirmed
Status in linux package in Ubuntu:
  Triaged

Bug description:
  linux-image-4.3.0-5-generic 4.3.0-5.16 arm64 fails to load modules
  (and therefore boot). It emits messages like the following for each
  attempted module load:

  [    2.156817] module libahci: unsupported RELA relocation: 275

  This is reminiscent of LP: #1502946 - except that fix appears to still
  be in-tact. What has changed, however, is the build environment. If I
  rebuild the same kernel source in a wily chroot, it boots fine.

  Marking "Confirmed" because Paulo Pisatti reported this to me, and I
  reproduced.

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc-linaro/+bug/1533009/+subscriptions


References