OUTPUT_FORMAT("elf32-i386") OUTPUT_ARCH("i386") ENTRY(_start) vaddr = 0xC0000000; /* virtual start address */ paddr = 0x100000; /* physical address at 1MB */ SECTIONS { . = 0x100000; .setup ALIGN(4096) : { *(.setup) } . += vaddr; .text : AT(ADDR(.text)-vaddr) { *(.text) } _etext = .; .data ALIGN(4096) : AT(ADDR(.data) - vaddr) { *(.data) *(.rodata*) } _edata = .; /* uninitialized data */ .bss ALIGN(4096) : AT(ADDR(.bss) - vaddr) { *(COMMON*) *(.bss*) } _end = .; /DISCARD/ : { *(.comment) *(.eh_frame) *(.note*) } }