summaryrefslogtreecommitdiff
path: root/kernel/src
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src')
-rw-r--r--kernel/src/lib.rs3
-rw-r--r--kernel/src/linker.ld2
-rw-r--r--kernel/src/long_mode_init.asm4
3 files changed, 8 insertions, 1 deletions
diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs
index 066a526..05b90ef 100644
--- a/kernel/src/lib.rs
+++ b/kernel/src/lib.rs
@@ -1,6 +1,9 @@
+#![feature(compiler_builtins_lib)]
#![no_std]
#![no_main]
+extern crate compiler_builtins;
+
#[no_mangle]
pub extern "C" fn _start() -> ! {
loop {}
diff --git a/kernel/src/linker.ld b/kernel/src/linker.ld
index cef8809..9b5355c 100644
--- a/kernel/src/linker.ld
+++ b/kernel/src/linker.ld
@@ -6,7 +6,7 @@ SECTIONS {
.boot :
{
/* ensure that the multiboot heater is at the beginning */
- *(.multiboot_header)
+ KEEP(*(.multiboot_header))
}
.text :
diff --git a/kernel/src/long_mode_init.asm b/kernel/src/long_mode_init.asm
index f105388..751af9b 100644
--- a/kernel/src/long_mode_init.asm
+++ b/kernel/src/long_mode_init.asm
@@ -14,4 +14,8 @@ long_mode_start:
; print `Uff!` to screen
mov rax, 0x8521846683668255
mov qword [0xb8000], rax
+
+ extern _start
+ call _start
+
hlt