aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/scripts')
-rw-r--r--arch/x86_64/scripts/kernel.ld16
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/x86_64/scripts/kernel.ld b/arch/x86_64/scripts/kernel.ld
index 1925872..e5cbc73 100644
--- a/arch/x86_64/scripts/kernel.ld
+++ b/arch/x86_64/scripts/kernel.ld
@@ -85,21 +85,21 @@ SECTIONS
KEEP(*crtn.s.o*(.fini))
}
- .text ALIGN(4K) : AT(ADDR (.text))
+ .stl_text ALIGN(4K) : AT(ADDR (.stl_text))
{
- *(.text*)
- *(EXCLUDE_FILE (*libstdc++.a) .text .text.*)
+ *(.stl_text)
+ KEEP(*libstdc++.a:*(.text .text.*))
+ KEEP(*libatomic.a:*(.text .text.*)) /* Attempt to move atomic stl into stl_text as well, doesn't work */
}
- .user_text ALIGN(4K) : AT(ADDR (.user_text))
+ .text ALIGN(4K) : AT(ADDR (.text))
{
- *(.user_text)
+ *(.text .text.*)
}
- .stl_text ALIGN(4K) : AT(ADDR (.stl_text))
+ .user_text ALIGN(4K) : AT(ADDR (.user_text))
{
- *(.stl_text)
- *libstdc++.a:*(.text .text.*)
+ *(.user_text)
}
.rodata ALIGN(4K) : AT (ADDR (.rodata))