From 5fe4102bc546b95d42d357f418f64c372d26b903 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Fri, 8 Jan 2010 19:56:36 +0100 Subject: Tidyed the linker script. --- kernel/kernel.ld | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'kernel/kernel.ld') diff --git a/kernel/kernel.ld b/kernel/kernel.ld index 2bcbcbc..ab294ee 100644 --- a/kernel/kernel.ld +++ b/kernel/kernel.ld @@ -1,3 +1,4 @@ +OUTPUT_ARCH("i386") OUTPUT_FORMAT("elf32-i386") ENTRY(entry) @@ -5,8 +6,6 @@ addr_phys = 0x00100000; addr_virt = 0xc0000000; addr_virt_end = ADDR(.bss) + SIZEOF(.bss); - -addr_load_virt = LOADADDR(.text); addr_load_virt_end = LOADADDR(.bss) + SIZEOF(.bss); SECTIONS { @@ -18,40 +17,42 @@ SECTIONS { kernel/entry.o(.text) kernel/entry.o(.rodata*) - . = ALIGN(0x1000); } + . = ALIGN(0x1000); .data_low : { kernel/entry.o(.data) - . = ALIGN(0x1000); } + . = ALIGN(0x1000); .bss_low : { - kernel/entry.o(.bss) - . = ALIGN(0x1000); entry_pagedir = .; . += 0x1000; entry_pagetable_low = .; . += 0x1000; entry_pagetable_high = .; . += 0x1000; entry_stack = .; . += 0x1000; entry_stack_top = .; + + kernel/entry.o(.bss) } - .text addr_virt : AT(LOADADDR(.bss_low) + SIZEOF(.bss_low)) { + addr_load_virt = ALIGN(0x1000); + + .text addr_virt : AT(addr_load_virt) { magic_text = .; LONG(0x0f00ba02); *(.text) *(.rodata*) - . = ALIGN(0x1000); } - .data : AT(LOADADDR(.text) + SIZEOF(.text)) { + . = ALIGN(0x1000); + .data : { magic_data = .; LONG(0x0f00ba03); *(.data) *(.ctors) - . = ALIGN(0x1000); } - .bss : AT(LOADADDR(.data) + SIZEOF(.data)) { + . = ALIGN(0x1000); + .bss : { *(.bss) *(COMMON) - . = ALIGN(0x1000); } + } -- cgit v1.2.3