link.txt (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
INPUT(build/boot.o)
OUTPUT_FORMAT(binary)
OUTPUT_ARCH(i386)
PAGE_SIZE = 1 << 12;
MEMORY
{
BOOT : ORIGIN = 0x00007C00, LENGTH = 0x00000200
SECOND_STAGE : ORIGIN = 0x00010000, LENGTH = 0x00090000
KERNEL : ORIGIN = 0xC0000000, LENGTH = 0x30000000
}
SECTIONS
{
BOOT : AT(0x0000)
{
build/boot.o(.*)
} >BOOT
SECOND_STAGE : AT(LOADADDR(BOOT) + SIZEOF(BOOT))
{
build/second_stage.o(.*)
} >SECOND_STAGE
KERNEL : AT(LOADADDR(SECOND_STAGE) + SIZEOF(SECOND_STAGE))
{
} >KERNEL
}
__SS_LMA = LOADADDR(SECOND_STAGE);
__SS_VMA = ADDR(SECOND_STAGE);
__SS_SIZE = SIZEOF(SECOND_STAGE);
__KERNEL_LMA = LOADADDR(KERNEL);
__KERNEL_VMA = ADDR(KERNEL);
__KERNEL_SIZE = SIZEOF(KERNEL);