forked from Bananymous/banan-os
Kernel: Cleanup constructor calls
This commit is contained in:
@@ -216,12 +216,11 @@ higher_half:
|
||||
# call global constuctors
|
||||
call _init
|
||||
|
||||
movq $__init_array_start, %rbx
|
||||
movq $g_init_array_start, %rbx
|
||||
jmp 2f
|
||||
1: movq (%rbx), %rax
|
||||
call *%rax
|
||||
1: call *(%rbx)
|
||||
addq $8, %rbx
|
||||
2: cmpq $__init_array_end, %rbx
|
||||
2: cmpq $g_init_array_end, %rbx
|
||||
jne 1b
|
||||
|
||||
# call to the kernel itself (clear rbp for stacktrace)
|
||||
|
||||
@@ -14,11 +14,3 @@ _fini:
|
||||
pushq %rbp
|
||||
movq %rsp, %rbp
|
||||
/* gcc will nicely put the contents of crtbegin.o's .fini section here. */
|
||||
|
||||
.section .init_array
|
||||
.global __init_array_start
|
||||
__init_array_start:
|
||||
|
||||
.section .fini_array
|
||||
.global __fini_array_start
|
||||
__fini_array_start:
|
||||
|
||||
@@ -8,11 +8,3 @@
|
||||
/* gcc will nicely put the contents of crtend.o's .fini section here. */
|
||||
popq %rbp
|
||||
ret
|
||||
|
||||
.section .init_array
|
||||
.global __init_array_end
|
||||
__init_array_end:
|
||||
|
||||
.section .fini_array
|
||||
.global __fini_array_end
|
||||
__fini_array_end:
|
||||
|
||||
@@ -30,6 +30,12 @@ SECTIONS
|
||||
{
|
||||
*(.rodata.*)
|
||||
}
|
||||
.init_array ALIGN(4K) : AT(ADDR(.init_array) - KERNEL_OFFSET)
|
||||
{
|
||||
g_init_array_start = .;
|
||||
*(.init_array)
|
||||
g_init_array_end = .;
|
||||
}
|
||||
.data ALIGN(4K) : AT(ADDR(.data) - KERNEL_OFFSET)
|
||||
{
|
||||
g_kernel_writable_start = .;
|
||||
|
||||
Reference in New Issue
Block a user