mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
Prematurely jumping into kernel_main
This commit is contained in:
7
Makefile
7
Makefile
@@ -28,7 +28,7 @@ INCLUDES += -isystem $(EFI_INCLUDES)
|
|||||||
INCLUDES += -isystem $(EFI_INCLUDES)/$(ARCH)
|
INCLUDES += -isystem $(EFI_INCLUDES)/$(ARCH)
|
||||||
INCLUDES += -isystem $(EFI_INCLUDES)/protocol
|
INCLUDES += -isystem $(EFI_INCLUDES)/protocol
|
||||||
|
|
||||||
BASEFLAGS := -O2 -fpic -nostdlib
|
BASEFLAGS := -O2 -nostdlib
|
||||||
BASEFLAGS += -ffreestanding -nodefaultlibs
|
BASEFLAGS += -ffreestanding -nodefaultlibs
|
||||||
BASEFLAGS += -fno-builtin -fomit-frame-pointer
|
BASEFLAGS += -fno-builtin -fomit-frame-pointer
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ WARNFLAGS += -Wno-unused-but-set-parameter
|
|||||||
ASFLAGS ?=
|
ASFLAGS ?=
|
||||||
|
|
||||||
CFLAGS := $(INCLUDES) $(DEPENDFLAGS) $(BASEFLAGS) $(WARNFLAGS)
|
CFLAGS := $(INCLUDES) $(DEPENDFLAGS) $(BASEFLAGS) $(WARNFLAGS)
|
||||||
CFLAGS += -std=c11 -fpic -fshort-wchar
|
CFLAGS += -std=c11 -fshort-wchar
|
||||||
CFLAGS += -mno-red-zone -fno-stack-protector
|
CFLAGS += -mno-red-zone -fno-stack-protector
|
||||||
CFLAGS += -DGIT_VERSION="L\"$(VERSION)\""
|
CFLAGS += -DGIT_VERSION="L\"$(VERSION)\""
|
||||||
CFLAGS += -DKERNEL_FILENAME="L\"$(KERNEL_FILENAME)\""
|
CFLAGS += -DKERNEL_FILENAME="L\"$(KERNEL_FILENAME)\""
|
||||||
@@ -64,10 +64,11 @@ ifdef MAX_HRES
|
|||||||
BOOT_CFLAGS += -DMAX_HRES=$(MAX_HRES)
|
BOOT_CFLAGS += -DMAX_HRES=$(MAX_HRES)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LDFLAGS := -L $(BUILD_D) -ggdb -fPIC -shared
|
LDFLAGS := -L $(BUILD_D) -ggdb -shared
|
||||||
LDFLAGS += -nostdlib -znocombreloc -Bsymbolic -nostartfiles
|
LDFLAGS += -nostdlib -znocombreloc -Bsymbolic -nostartfiles
|
||||||
|
|
||||||
BOOT_LDFLAGS := $(LDFLAGS)
|
BOOT_LDFLAGS := $(LDFLAGS)
|
||||||
|
BOOT_LDFLAGS += -fPIC
|
||||||
BOOT_LDFLAGS += -L $(EFI_ARCH_DIR)/lib -L $(EFI_ARCH_DIR)/gnuefi
|
BOOT_LDFLAGS += -L $(EFI_ARCH_DIR)/lib -L $(EFI_ARCH_DIR)/gnuefi
|
||||||
|
|
||||||
AS ?= $(CROSS)as
|
AS ?= $(CROSS)as
|
||||||
|
|||||||
@@ -5,22 +5,24 @@ SECTIONS
|
|||||||
|
|
||||||
.text : {
|
.text : {
|
||||||
code = .;
|
code = .;
|
||||||
|
*(.text.entry)
|
||||||
*(.text)
|
*(.text)
|
||||||
. = ALIGN(4096);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.data : {
|
.data ALIGN(0x1000) : {
|
||||||
data = .;
|
data = .;
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.rodata)
|
*(.rodata)
|
||||||
. = ALIGN(4096);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.bss : {
|
.bss ALIGN(0x1000) : {
|
||||||
bss = .;
|
bss = .;
|
||||||
*(.bss)
|
*(.bss)
|
||||||
. = ALIGN(4096);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
end = .;
|
.note ALIGN(0x1000) : {
|
||||||
|
*(.note.*)
|
||||||
|
}
|
||||||
|
|
||||||
|
end = ALIGN(4096);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
|
|||||||
Print(L" %u bytes at 0x%x", kernel_length, kernel_image);
|
Print(L" %u bytes at 0x%x", kernel_length, kernel_image);
|
||||||
con_status_ok();
|
con_status_ok();
|
||||||
|
|
||||||
|
void (*kernel_main)() = kernel_image;
|
||||||
|
kernel_main();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
con_status_begin(L"Virtualizing memory...");
|
con_status_begin(L"Virtualizing memory...");
|
||||||
status = memory_virtualize();
|
status = memory_virtualize();
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
__attribute__((used))
|
__attribute__((section(".text.entry")))
|
||||||
int kernel_main() {
|
void kernel_main() {
|
||||||
return 42;
|
volatile int foo = 13;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user