From f5d585b46b3c1912b9fadc1a541e8756e713b837 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Tue, 28 Jan 2025 10:18:09 +0100 Subject: BaseTools/Scripts/ClangBase.lds: Move .entry into .text section The GccBase.lds and ClangBase.lds ELF linker scripts have been laid out very carefully to ensure that the memory mappings of .text and .data are such that they can be preserved in the PE/COFF memory image. This removes the need to update any place-relative ELF relocations when generating the PE/COFF image, making its job much easier, and potentially allowing it to disregard static ELF relocations altogether, and rely solely on dynamic ELF relocations. Adding an arbitrary .entry section before .text breaks those assumptions, so instead of emitting it as a separate section, move its payload to the start of .text. Signed-off-by: Ard Biesheuvel --- BaseTools/Scripts/ClangBase.lds | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/BaseTools/Scripts/ClangBase.lds b/BaseTools/Scripts/ClangBase.lds index 633cdbac3b..f7981843d6 100644 --- a/BaseTools/Scripts/ClangBase.lds +++ b/BaseTools/Scripts/ClangBase.lds @@ -20,11 +20,8 @@ SECTIONS { */ . = PECOFF_HEADER_SIZE; - .entry ALIGN(CONSTANT(COMMONPAGESIZE)) : { - KEEP(*(.entry)) - } - .text : ALIGN(CONSTANT(COMMONPAGESIZE)) { + KEEP(*(.entry)) *(.text .text.* .stub .gnu.linkonce.t.*) *(.rodata .rodata.* .gnu.linkonce.r.*) *(.got .got.*) -- cgit