[tip: x86/boot] x86/boot: Move .head.text into its own output section

From: tip-bot2 for Ard Biesheuvel
Date: Thu Dec 05 2024 - 07:28:23 EST


The following commit has been merged into the x86/boot branch of tip:

Commit-ID: a6a4ae9c3f3a8894c54476cc842069f82af8361c
Gitweb: https://git.kernel.org/tip/a6a4ae9c3f3a8894c54476cc842069f82af8361c
Author: Ard Biesheuvel <ardb@xxxxxxxxxx>
AuthorDate: Thu, 05 Dec 2024 12:28:11 +01:00
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitterDate: Thu, 05 Dec 2024 13:18:55 +01:00

x86/boot: Move .head.text into its own output section

In order to be able to double check that vmlinux is emitted without
absolute symbol references in .head.text, it needs to be distinguishable
from the rest of .text in the ELF metadata.

So move .head.text into its own ELF section.

Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Link: https://lore.kernel.org/r/20241205112804.3416920-15-ardb+git@xxxxxxxxxx
---
arch/x86/kernel/vmlinux.lds.S | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 1ce7889..56cdf13 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -135,8 +135,6 @@ SECTIONS
#endif
ALIGN_ENTRY_TEXT_END

- /* bootstrapping code */
- HEAD_TEXT
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
@@ -151,6 +149,11 @@ SECTIONS

} :text = 0xcccccccc

+ /* bootstrapping code */
+ .head.text : AT(ADDR(.head.text) - LOAD_OFFSET) {
+ HEAD_TEXT
+ } :text = 0xcccccccc
+
/* End of text section, which should occupy whole number of pages */
_etext = .;
. = ALIGN(PAGE_SIZE);