OUTPUT_FORMAT(elf32-i386) ENTRY(start) vaddr = 0xC0000000; /* virtual start address */ paddr = 0x100000; /* physical address at 1MB */ SECTIONS { . = 0x100000; .setup ALIGN(4096) : { *(.setup) } . += vaddr; .text BLOCK(4K) : ALIGN(4K) { *(.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*) } }