aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/scripts/kernel.ld
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/scripts/kernel.ld')
-rw-r--r--arch/x86_64/scripts/kernel.ld22
1 files changed, 18 insertions, 4 deletions
diff --git a/arch/x86_64/scripts/kernel.ld b/arch/x86_64/scripts/kernel.ld
index e6ae3425..3b2fd898 100644
--- a/arch/x86_64/scripts/kernel.ld
+++ b/arch/x86_64/scripts/kernel.ld
@@ -52,7 +52,7 @@ SECTIONS
PROVIDE_HIDDEN(__init_array_end = .);
} :boot_data
- .boot_bss ALIGN(4K) :
+ .boot_bss ALIGN(4K) (NOLOAD) :
{
KEEP(*(.boot_stack .boot_bss*))
} :boot_data
@@ -98,9 +98,23 @@ SECTIONS
. += 4K;
- .kernel_bss ALIGN(4K) : AT (ADDR (.kernel_bss) - TEACHOS_VMA)
+ .kernel_stack ALIGN(4K) (NOLOAD) : AT (ADDR (.kernel_stack) - TEACHOS_VMA)
{
- *(.stack .bss*)
+ PROVIDE_HIDDEN(__kernel_stack_bottom = .);
+ *(.stack)
+ } :kernel_data
+
+ . += 4K;
+
+ .kernel_ist1_stack ALIGN(4K) (NOLOAD) : AT (ADDR (.kernel_ist1_stack) - TEACHOS_VMA)
+ {
+ PROVIDE_HIDDEN(__ist1_stack_bottom = .);
+ *(.ist1_stack)
+ } :kernel_data
+
+ .kernel_bss ALIGN(4K) (NOLOAD) : AT (ADDR (.kernel_bss) - TEACHOS_VMA)
+ {
+ *(.bss*)
} :kernel_data
.kernel_text ALIGN(4K) : AT(ADDR (.kernel_text) - TEACHOS_VMA)
@@ -124,7 +138,7 @@ SECTIONS
. += 4K;
- .user_bss ALIGN(4K) : AT(ADDR (.user_bss) - TEACHOS_VMA)
+ .user_bss ALIGN(4K) (NOLOAD) : AT(ADDR (.user_bss) - TEACHOS_VMA)
{
KEEP(*(.user_bss*))
} :user_data