- 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:
parent
1a4eb2ff5c
commit
e527a3ccb6
3 changed files with 15 additions and 22 deletions
|
@ -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
|
||||
|
|
|
@ -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
22
link.ld
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue