On Thu, 16 Apr 2020 at 00:15, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > Add relocation checking for x86 as well to catch non-PC-relative > relocations that require runtime processing, since the EFI stub does not > do any runtime relocation processing. > > This will catch, for example, data relocations created by static > initializers of pointers. > > Signed-off-by: Arvind Sankar <nivedita@xxxxxxxxxxxx> > --- > drivers/firmware/efi/libstub/Makefile | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile > index 0bb2916eb12b..2aff59812a54 100644 > --- a/drivers/firmware/efi/libstub/Makefile > +++ b/drivers/firmware/efi/libstub/Makefile > @@ -96,6 +96,8 @@ STUBCOPY_RELOC-$(CONFIG_ARM) := R_ARM_ABS > # .bss section here so it's easy to pick out in the linker script. > # > STUBCOPY_FLAGS-$(CONFIG_X86) += --rename-section .bss=.bss.efistub,load,alloc > +STUBCOPY_RELOC-$(CONFIG_X86_32) := 'R_X86_32_(8|16|32)' This should be R_386_xxx > +STUBCOPY_RELOC-$(CONFIG_X86_64) := 'R_X86_64_(8|16|32|32S|64)' > ... and in general, I think we only need the native pointer sized ones, so R_386_32 R_X86_64_64 > $(obj)/%.stub.o: $(obj)/%.o FORCE > $(call if_changed,stubcopy) > @@ -107,16 +109,14 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE > # this time, use objcopy and leave all sections in place. > # > > -cmd_stubrelocs_check-y = /bin/true > - > -cmd_stubrelocs_check-$(CONFIG_EFI_ARMSTUB) = \ > +cmd_stubrelocs_check = \ > $(STRIP) --strip-debug -o $@ $<; \ > - if $(OBJDUMP) -r $@ | grep $(STUBCOPY_RELOC-y); then \ > + if $(OBJDUMP) -r $@ | grep -E $(STUBCOPY_RELOC-y); then \ ... which means we don't need to -E either > echo "$@: absolute symbol references not allowed in the EFI stub" >&2; \ > /bin/false; \ > fi > > quiet_cmd_stubcopy = STUBCPY $@ > cmd_stubcopy = \ > - $(cmd_stubrelocs_check-y); \ > + $(cmd_stubrelocs_check); \ > $(OBJCOPY) $(STUBCOPY_FLAGS-y) $< $@ > -- > 2.24.1 > Could we fold this into the previous x86 patch, and drop the one that splits off the relocation check from stubcpy?