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
|
||||
|
||||
movl $__init_array_start, %ebx
|
||||
movl $g_init_array_start, %ebx
|
||||
jmp 2f
|
||||
1: movl (%ebx), %eax
|
||||
call *%eax
|
||||
1: call *(%ebx)
|
||||
addl $4, %ebx
|
||||
2: cmpl $__init_array_end, %ebx
|
||||
2: cmpl $g_init_array_end, %ebx
|
||||
jne 1b
|
||||
|
||||
# call to the kernel itself (clear ebp for stacktrace)
|
||||
|
||||
@@ -14,11 +14,3 @@ _fini:
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
/* 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. */
|
||||
popl %ebp
|
||||
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