windows: Fix relocation sections generation during module conversion from PE to ELF

The commit 98ad84328 (kern/dl: Check for the SHF_INFO_LINK flag in
grub_dl_relocate_symbols()) revealed a bug in the code converting PE
module images to ELF files. The missing SHF_INFO_LINK flag for SHT_REL
and SHT_RELA sections lead to hangs during GRUB load. This only happens
for the GRUB images generated on Windows platforms. The *NIX platforms
are not affected due to lack of PE to ELF conversion step.

This patch fixes the issue...

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Ross Philipson <ross.philipson@oracle.com>
Reviewed-by: Alec Brown <alec.r.brown@oracle.com>
This commit is contained in:
Daniel Kiper 2025-10-27 16:56:39 +01:00
parent c602035a9f
commit a340750f9e

View File

@ -189,6 +189,7 @@ write_section_data (FILE* fp, const char *name, char *image,
shdr[idx_reloc].sh_name = insert_string (relname);
shdr[idx_reloc].sh_link = i;
shdr[idx_reloc].sh_flags = SHF_INFO_LINK;
shdr[idx_reloc].sh_info = idx;
shdr[idx].sh_name = shdr[idx_reloc].sh_name + 4;