diff options
Diffstat (limited to 'arch/x86_64/scripts')
| -rw-r--r-- | arch/x86_64/scripts/kernel.ld | 22 |
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 |
