That's what already done by Arm64 and other architectures. That would allow us put more things like PE headers safely into the header.
Signed-off-by: Jiaxun Yang <jiaxun.y...@flygoat.com> --- arch/mips/kernel/head.S | 4 ++-- arch/mips/kernel/vmlinux.lds.S | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index c7c2795837e7..8081a905a71c 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S @@ -59,6 +59,8 @@ #endif .endm + __HEAD +_head: #ifndef CONFIG_NO_EXCEPT_FILL /* * Reserved space for exception handlers. @@ -67,8 +69,6 @@ .fill 0x400 #endif -EXPORT(_stext) - /* * Give us a fighting chance of running if execution beings at the * kernel load address. This is needed because this platform does diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index f185a85a27c1..b9ace667b82b 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S @@ -57,8 +57,12 @@ SECTIONS #endif . = LINKER_LOAD_ADDRESS; /* read-only */ - _text = .; /* Text and read-only data */ - .text : { + .head.text : { + _text = .; + HEAD_TEXT + } + .text : { /* Real text segment */ + _stext = .; /* Text and read-only data */ TEXT_TEXT SCHED_TEXT CPUIDLE_TEXT -- 2.27.0.rc0