- switched to an ELF kernel

- simplified the linker script


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@199 315a16e6-25f9-4109-90ae-ca3045a26c18
This commit is contained in:
stefan 2010-10-25 17:10:16 +00:00
parent 1a4eb2ff5c
commit e527a3ccb6
3 changed files with 15 additions and 22 deletions

View file

@ -15,7 +15,7 @@ export AR = ar
export ARFLAGS = rsv
export RM = rm -rf
LD = ld
LDFLAGS = -T link.ld
LDFLAGS = -T link.ld -z max-page-size=4096
default:
for i in $(SUBDIRS); do $(MAKE) -C $$i default; done

View file

@ -38,7 +38,7 @@ mboot:
MULTIBOOT_MEMORY_INFO equ 1<<1
MULTIBOOT_AOUT_KLUDGE equ 1<<16
MULTIBOOT_HEADER_MAGIC equ 0x1BADB002
MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_AOUT_KLUDGE
MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO ; | MULTIBOOT_AOUT_KLUDGE
MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
EXTERN code, bss, end
@ -49,12 +49,13 @@ mboot:
; AOUT kludge - must be physical addresses. Make a note of these:
; The linker script fills in the data for these ones!
dd mboot
dd code
dd bss
dd end
dd start
; dd mboot
; dd code
; dd bss
; dd end
; dd start
SECTION .text
ALIGN 4
stublet:
; interpret multiboot information

22
link.ld
View file

@ -1,31 +1,23 @@
OUTPUT_FORMAT("binary")
OUTPUT_FORMAT("elf32-i386")
OUTPUT_ARCH("i386")
ENTRY(start)
phys = 0x00100000;
SECTIONS
{
.text phys : AT(phys) {
kernel_start = .;
code = .;
.mboot phys : AT(ADDR(.mboot)) {
*(.mboot)
}
.text ALIGN(4096) : AT(ADDR(.text)) {
kernel_start = .;
*(.text)
*(.rodata)
. = ALIGN(4096);
}
.data : AT(phys + (data - code))
{
data = .;
.data ALIGN(4096) : AT(ADDR(.data)) {
*(.data)
. = ALIGN(4096);
}
.bss : AT(phys + (bss - code))
{
bss = .;
.bss ALIGN(4096) : AT(ADDR(.bss)) {
*(.bss)
. = ALIGN(4096);
}
end = .;
kernel_end = .;
}
. = ALIGN(4096);