|
|
1.1 ! root 1: OUTPUT_FORMAT(elf32-i386) ! 2: OUTPUT_ARCH(i386) ! 3: ! 4: ENTRY(entry) ! 5: ! 6: /* Initial load address ! 7: * To be loaded by GRUB, this must be >= 1MB ! 8: */ ! 9: BASE_ADDR = 0x100000; ! 10: ! 11: /* 16KB heap and stack */ ! 12: HEAP_SIZE = 16384; ! 13: STACK_SIZE = 16384; ! 14: ! 15: SECTIONS ! 16: { ! 17: . = BASE_ADDR; ! 18: ! 19: /* Put Multiboot header near beginning of file, if any. */ ! 20: .hdr : { *(.hdr) *(.hdr.*) } ! 21: ! 22: /* Start of the program. ! 23: * Now the version string is in the note, we must include it ! 24: * in the program. Otherwise we lose the string after relocation. */ ! 25: . = ALIGN(16); ! 26: _start = .; ! 27: ! 28: /* Putting ELF notes near beginning of file might help bootloaders. ! 29: * We discard .note sections other than .note.ELFBoot, ! 30: * because some versions of GCC generates useless ones. */ ! 31: .note : { *(.note.ELFBoot) } ! 32: ! 33: /* Normal sections */ ! 34: .text : { *(.text) *(.text.*) } ! 35: .rodata : { ! 36: . = ALIGN(4); ! 37: sound_drivers_start = .; ! 38: *(.rodata.sound_drivers) ! 39: sound_drivers_end = .; ! 40: *(.rodata) ! 41: *(.rodata.*) ! 42: } ! 43: .data : { *(.data) *(.data.*) } ! 44: ! 45: .bss : { ! 46: *(.bss) ! 47: *(.bss.*) ! 48: *(COMMON) ! 49: ! 50: /* Put heap and stack here, so they are included in PT_LOAD segment ! 51: * and the bootloader is aware of it. */ ! 52: ! 53: . = ALIGN(16); ! 54: _heap = .; ! 55: . += HEAP_SIZE; ! 56: . = ALIGN(16); ! 57: _eheap = .; ! 58: ! 59: _stack = .; ! 60: . += STACK_SIZE; ! 61: . = ALIGN(16); ! 62: _estack = .; ! 63: } ! 64: ! 65: .initctx : { ! 66: /* Initial contents of stack. This MUST BE just after the stack. */ ! 67: *(.initctx) ! 68: } ! 69: ! 70: _end = .; ! 71: ! 72: /DISCARD/ : { *(.comment) *(.note) } ! 73: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.