diff options
Diffstat (limited to 'roms/openbios/arch/amd64/ldscript')
| -rw-r--r-- | roms/openbios/arch/amd64/ldscript | 73 | 
1 files changed, 73 insertions, 0 deletions
diff --git a/roms/openbios/arch/amd64/ldscript b/roms/openbios/arch/amd64/ldscript new file mode 100644 index 00000000..8976c7af --- /dev/null +++ b/roms/openbios/arch/amd64/ldscript @@ -0,0 +1,73 @@ +OUTPUT_FORMAT(elf32-i386) +OUTPUT_ARCH(i386) + +ENTRY(entry) + +/* Initial load address + * To be loaded by GRUB, this must be >= 1MB + */ +BASE_ADDR = 0x100000; + +/* 16KB heap and stack */ +HEAP_SIZE = 16384; +STACK_SIZE = 16384; + +SECTIONS +{ +    . = BASE_ADDR; + +    /* Put Multiboot header near beginning of file, if any. */ +    .hdr : { *(.hdr) *(.hdr.*) } + +    /* 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. */ +    . = ALIGN(16); +    _start = .; + +    /* Putting ELF notes near beginning of file might help bootloaders. +     * We discard .note sections other than .note.ELFBoot, +     * because some versions of GCC generates useless ones. */ +    .note : { *(.note.ELFBoot) } + +    /* Normal sections */ +    .text : { *(.text) *(.text.*) } +    .rodata : { +	. = ALIGN(4); +	sound_drivers_start = .; +	*(.rodata.sound_drivers) +	sound_drivers_end = .; +	*(.rodata) +	*(.rodata.*) +    } +    .data : { *(.data) *(.data.*) } + +    .bss : { +	*(.bss) +	*(.bss.*) +	*(COMMON) + +	/* Put heap and stack here, so they are included in PT_LOAD segment +	 * and the bootloader is aware of it. */ + +	. = ALIGN(16); +	_heap = .; +	. += HEAP_SIZE; +	. = ALIGN(16); +	_eheap = .; + +	_stack = .; +	. += STACK_SIZE; +	. = ALIGN(16); +	_estack = .; +    } + +    .initctx : { +	/* Initial contents of stack. This MUST BE just after the stack. */ +	*(.initctx) +    } + +    _end = .; + +    /DISCARD/ : { *(.comment) *(.note) } +}  | 
