On 26/06/2025 1:45 pm, Jan Beulich wrote:
> At least GNU ld 2.35 takes this option to (also) mean what newer
> versions have controllable by --enable-reloc-section. From there being
> no relocations in check.efi (as we don't pass the option there) we infer
> that we need to involve mkreloc, we'd end up with two sets of
> relocations, which clearly isn't going to work. Furthermore the
> relocations ld emits in this case also aren't usable: For bsp_idt[] we
> end up with PE_BASE_RELOC_LOW ones, which efi_arch_relocate_image()
> (deliberately) doesn't know how to deal with. (Related to that is also
> why we check the number of relocations produced: The linker simply
> didn't get this right there, yet.)
>
> We also can't add the option to what we use when linking check.efi: That
> ld version then would produce relocations, but 4 of them (instead of the
> expected two). That would make us pass --disable-reloc-section, which
> however only ld 2.36 and newer understand.
>
> For such older binutils versions we therefore need to accept the slight
> inconsistency in DLL characteristics that the earlier commit meant to
> eliminate.
>
> Fixes: f2148773b8ac ("x86/EFI: sanitize DLL characteristics in binary")
> Signed-off-by: Jan Beulich <jbeul...@suse.com>

Acked-by: Andrew Cooper <andrew.coop...@citrix.com>

Reply via email to