From aab5ccdbe1608036091e2fb646d3e851ef6ad44d Mon Sep 17 00:00:00 2001 From: "John Hodge (sonata)" Date: Sat, 17 Nov 2012 19:53:34 +0800 Subject: [PATCH] Kernel/x86 - Fixed possible issue with entrypoint not being in a PT_LOAD segment --- KernelLand/Kernel/arch/x86/link.ld | 4 ++-- KernelLand/Kernel/arch/x86/start.asm | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/KernelLand/Kernel/arch/x86/link.ld b/KernelLand/Kernel/arch/x86/link.ld index a09b29af..533b05d2 100644 --- a/KernelLand/Kernel/arch/x86/link.ld +++ b/KernelLand/Kernel/arch/x86/link.ld @@ -3,8 +3,7 @@ * Linker Script */ -lowStart = start - 0xC0000000; -ENTRY(lowStart) +ENTRY(start) OUTPUT_FORMAT(elf32-i386) SECTIONS { @@ -12,6 +11,7 @@ SECTIONS { __load_addr = .; .multiboot : AT(ADDR(.multiboot)) { *(.multiboot) + *(.inittext) } . += 0xC0000000; diff --git a/KernelLand/Kernel/arch/x86/start.asm b/KernelLand/Kernel/arch/x86/start.asm index 1d4a35d8..26f80422 100644 --- a/KernelLand/Kernel/arch/x86/start.asm +++ b/KernelLand/Kernel/arch/x86/start.asm @@ -55,7 +55,7 @@ mboot: ; dd 8 ;mboot2_end: -[section .text] +[section .inittext] [extern kmain] [extern Desctab_Install] [global start] @@ -143,7 +143,7 @@ APStartup: or al, 1 mov cr0, eax ; Jump into PMode - jmp 08h:DWORD .ProtectedMode-KERNEL_BASE + jmp 08h:DWORD .ProtectedMode [bits 32] .ProtectedMode: ; Load segment registers @@ -218,6 +218,10 @@ APStartup: jmp .hlt %endif +; +; +; +[section .text] [global GetEIP] GetEIP: mov eax, [esp] -- 2.20.1