mirror of
https://github.com/justinian/jsix.git
synced 2025-12-11 08:54:31 -08:00
[kernel] Hide kernel symbols by default
Using `-fvisibility=hidden` when building the kernel, and then `--discard-all` when stripping it, we shave almost 100KiB off of the resulting ELF file. Also dropped some unused symbols from the linker script, and rearranged the sections so that the file is able to be mapped directly into memory instead of having each section copied.
This commit is contained in:
@@ -2,7 +2,7 @@ MAGIC equ 'j6KERNEL' ; jsix kernel header magic number
|
||||
|
||||
section .header
|
||||
align 8
|
||||
global _kernel_header
|
||||
global _kernel_header: data hidden
|
||||
_kernel_header:
|
||||
dq MAGIC ; Kernel header magic
|
||||
dw 32 ; Kernel header length
|
||||
@@ -16,8 +16,8 @@ _kernel_header:
|
||||
|
||||
section .text
|
||||
align 16
|
||||
global _kernel_start:function (_kernel_start.end - _kernel_start)
|
||||
global _kernel_start.real
|
||||
global _kernel_start: function hidden (_kernel_start.end - _kernel_start)
|
||||
global _kernel_start.real: function hidden
|
||||
_kernel_start:
|
||||
push rbp ; Never executed, fake function prelude
|
||||
mov rbp, rsp ; to calm down gdb
|
||||
@@ -36,18 +36,18 @@ _kernel_start:
|
||||
; the scheduler to take over
|
||||
.end:
|
||||
|
||||
global bsp_idle:function (bsp_idle.end - bsp_idle)
|
||||
global bsp_idle: function hidden (bsp_idle.end - bsp_idle)
|
||||
bsp_idle:
|
||||
hlt
|
||||
jmp bsp_idle
|
||||
.end:
|
||||
|
||||
global interrupts_enable
|
||||
global interrupts_enable: function hidden
|
||||
interrupts_enable:
|
||||
sti
|
||||
ret
|
||||
|
||||
global interrupts_disable
|
||||
global interrupts_disable: function hidden
|
||||
interrupts_disable:
|
||||
cli
|
||||
ret
|
||||
@@ -57,5 +57,5 @@ align 0x100
|
||||
idle_stack_begin:
|
||||
resb 0x4000 ; 16KiB stack space
|
||||
|
||||
global idle_stack_end
|
||||
global idle_stack_end: data hidden
|
||||
idle_stack_end:
|
||||
|
||||
Reference in New Issue
Block a user