I came across the same issue today (2/2/2017), i.e. "unsupported RELA relocation: 275", while using "Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-59-generic aarch64)". I read above messages and have verified that arch/arm64/Makefile does have -mpc-relative-literal-loads as shown below. The kernel config file also has CONFIG_ARM64_ERRATUM_843419=y.
However, module.c shows "#ifndef CONFIG_ARM64_ERRATUM_843419". Shouldn't this be #ifdef instead? Could it be that I'm seeing the error message since #ifndef compiled out "case R_AARCH64_ADR_PREL_PG_HI21" (275)?
I came across the same issue today (2/2/2017), i.e. "unsupported RELA relocation: 275", while using "Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-59-generic aarch64)". I read above messages and have verified that arch/arm64/Makefile does have -mpc-relative- literal- loads as shown below. The kernel config file also has CONFIG_ ARM64_ERRATUM_ 843419= y.
However, module.c shows "#ifndef CONFIG_ ARM64_ERRATUM_ 843419" . Shouldn't this be #ifdef instead? Could it be that I'm seeing the error message since #ifndef compiled out "case R_AARCH64_ ADR_PREL_ PG_HI21" (275)?
ifeq ($(CONFIG_ ARM64_ERRATUM_ 843419) , y) CFLAGS_ MODULE += -mcmodel=large CFLAGS_ MODULE += $(call cc-option, -mpc-relative- literal- loads)
KBUILD_
KBUILD_
endif
File: arch/arm64/ kernel/ module. c
Linux Kernel Version: 4.9
195int apply_relocate_ add(Elf64_ Shdr *sechdrs, ARM64_ERRATUM_ 843419 ADR_PREL_ PG_HI21_ NC: ADR_PREL_ PG_HI21: imm(RELOC_ OP_PAGE, loc, val, 12, 21, INSN_IMM_ ADR);
196 const char *strtab,
197 unsigned int symindex,
198 unsigned int relsec,
199 struct module *me)
200{
...
334#ifndef CONFIG_
335 case R_AARCH64_
336 overflow_check = false;
337 case R_AARCH64_
338 ovf = reloc_insn_
339 AARCH64_
340 break;
341#endif