Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

riscv/efistub: Tighten ELF relocation check

The EFI stub makefile contains logic to ensure that the objects that
make up the stub do not contain relocations that require runtime fixups
(typically to account for the runtime load address of the executable)

On RISC-V, we also avoid GP based relocations, as they require that GP
is assigned the correct base in the startup code, which is not
implemented in the EFI stub.

So add these relocation types to the grep expression that is used to
carry out this check.

Link: https://lkml.kernel.org/r/42c63cb9-87d0-49db-9af8-95771b186684%40siemens.com
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>

+1 -1
+1 -1
drivers/firmware/efi/libstub/Makefile
··· 143 143 # exist. 144 144 STUBCOPY_FLAGS-$(CONFIG_RISCV) += --prefix-alloc-sections=.init \ 145 145 --prefix-symbols=__efistub_ 146 - STUBCOPY_RELOC-$(CONFIG_RISCV) := R_RISCV_HI20 146 + STUBCOPY_RELOC-$(CONFIG_RISCV) := -E R_RISCV_HI20\|R_RISCV_$(BITS)\|R_RISCV_RELAX 147 147 148 148 # For LoongArch, keep all the symbols in .init section and make sure that no 149 149 # absolute symbols references exist.