summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2025-01-28 10:18:09 +0100
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2025-02-02 09:20:53 +0000
commitf5d585b46b3c1912b9fadc1a541e8756e713b837 (patch)
tree9fa96db2276407b5ebf0329c7817a467f9db924c
parent7fd3c89ff46a23baf8ea9b3e47ae24fbebba1c34 (diff)
downloadedk2-f5d585b46b3c1912b9fadc1a541e8756e713b837.tar.gz
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 <ardb@kernel.org>
-rw-r--r--BaseTools/Scripts/ClangBase.lds5
1 files changed, 1 insertions, 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.*)