diff --git a/Makefile.example b/Makefile.example index a2b230ff..1487bfb3 100644 --- a/Makefile.example +++ b/Makefile.example @@ -43,7 +43,7 @@ CFLAGS = -g -m32 -march=i586 -Wall -O2 -fno-builtin -fstrength-reduce -fomit-fra # Compiler options for debuging #CFLAGS = -g -O -m32 -march=i586 -Wall -fno-builtin -DWITH_FRAME_POINTER -nostdinc $(INCLUDE) $(STACKPROT) ARFLAGS = rsv -LDFLAGS = -T link.ld -z max-page-size=4096 --defsym __BUILD_DATE=$(shell date +'%Y%m%d') --defsym __BUILD_TIME=$(shell date +'%H%M%S') +LDFLAGS = -T link$(BIT).ld -z max-page-size=4096 --defsym __BUILD_DATE=$(shell date +'%Y%m%d') --defsym __BUILD_TIME=$(shell date +'%H%M%S') STRIP_DEBUG = --strip-debug KEEP_DEBUG = --only-keep-debug CFLAGS_FOR_NEWLIB = -m32 -march=i586 -O2 $(STACKPROT) diff --git a/link.ld b/link32.ld similarity index 100% rename from link.ld rename to link32.ld diff --git a/link64.ld b/link64.ld new file mode 100644 index 00000000..2794f82c --- /dev/null +++ b/link64.ld @@ -0,0 +1,29 @@ +OUTPUT_FORMAT("elf64-x86-64") +OUTPUT_ARCH("i386:x86-64") +ENTRY(start) +phys = 0x000000100000; + +SECTIONS +{ + kernel_start = phys; + .mboot phys : AT(ADDR(.mboot)) { + *(.mboot) + *(.kmsg) + } + .text ALIGN(4096) : AT(ADDR(.text)) { + *(.text) + } + .rodata ALIGN(4096) : AT(ADDR(.rodata)) { + *(.rodata) + *(.rodata.*) + } + .data ALIGN(4096) : AT(ADDR(.data)) { + *(.data) + } + bss_start = .; + .bss ALIGN(4096) : AT(ADDR(.bss)) { + *(.bss) + } + bss_end = .; + kernel_end = .; +}