| OUTPUT_FORMAT(elf32-sparc) |
| OUTPUT_ARCH(sparc) |
| |
| /* QEMU ELF loader can't handle very complex files, so we put ELFBoot |
| info to rodata and put initctx to data.*/ |
| |
| ENTRY(trap_table) |
| |
| /* Initial load address |
| */ |
| BASE_ADDR = 0xffd00000; |
| |
| /* 16KB stack */ |
| STACK_SIZE = 16384; |
| VMEM_SIZE = 128 * 1024; |
| IOMEM_SIZE = 256 * 1024 + 768 * 1024; |
| |
| SECTIONS |
| { |
| . = BASE_ADDR; |
| |
| /* Start of the program. |
| * Now the version string is in the note, we must include it |
| * in the program. Otherwise we lose the string after relocation. */ |
| _start = .; |
| |
| /* Normal sections */ |
| .text ALIGN(4096): { |
| *(.text.vectors) |
| *(.text) |
| *(.text.*) |
| } |
| .rodata ALIGN(4096): { |
| _rodata = .; |
| sound_drivers_start = .; |
| *(.rodata.sound_drivers) |
| sound_drivers_end = .; |
| *(.rodata) |
| *(.rodata.*) |
| *(.note.ELFBoot) |
| } |
| .data ALIGN(4096): { |
| _data = .; |
| *(.data) |
| *(.data.*) |
| } |
| |
| .bss ALIGN(4096): { |
| _bss = .; |
| *(.bss) |
| *(.bss.*) |
| *(COMMON) |
| |
| . = ALIGN(4096); |
| _vmem = .; |
| . += VMEM_SIZE; |
| _evmem = .; |
| |
| _stack = .; |
| . += STACK_SIZE; |
| . = ALIGN(16); |
| _estack = .; |
| } |
| |
| . = ALIGN(4096); |
| _end = .; |
| _iomem = _end + IOMEM_SIZE; |
| |
| /* We discard .note sections other than .note.ELFBoot, |
| * because some versions of GCC generates useless ones. */ |
| |
| /DISCARD/ : { *(.comment*) *(.note.*) } |
| } |