diff options
Diffstat (limited to 'roms/ipxe/src/arch/x86_64/scripts')
| -rw-r--r-- | roms/ipxe/src/arch/x86_64/scripts/linux.lds | 104 | 
1 files changed, 104 insertions, 0 deletions
diff --git a/roms/ipxe/src/arch/x86_64/scripts/linux.lds b/roms/ipxe/src/arch/x86_64/scripts/linux.lds new file mode 100644 index 00000000..47db2174 --- /dev/null +++ b/roms/ipxe/src/arch/x86_64/scripts/linux.lds @@ -0,0 +1,104 @@ +/* -*- sh -*- */ + +/* + * Linker script for x86_64 Linux images + * + */ + +OUTPUT_FORMAT ( "elf64-x86-64", "elf64-x86-64", "elf64-x86-64" ) +OUTPUT_ARCH ( i386:x86-64 ) + +SECTIONS { +	_max_align = 32; + +	. = 0x400000; + +	/* +	 * The text section +	 * +	 */ + +	. = ALIGN ( _max_align ); +	.text : { +		_text = .; +		*(.text) +		*(.text.*) +		_etext = .; +	} + +	/* +	 * The rodata section +	 * +	 */ + +	. = ALIGN ( _max_align ); +	.rodata : { +		_rodata = .; +		*(.rodata) +		*(.rodata.*) +		_erodata = .; +	} + +	/* +	 * The data section +	 * +	 * Adjust the address for the data segment.  We want to adjust up to +	 * the same address within the page on the next page up. +	 */ + +	. = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); +	. = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); +	.data : { +		_data = .; +		*(.data) +		*(.data.*) +		KEEP(*(SORT(.tbl.*))) +		KEEP(*(.provided)) +		KEEP(*(.provided.*)) +		_edata = .; +	} + +	/* +	 * The bss section +	 * +	 */ + +	. = ALIGN ( _max_align ); +	.bss : { +		_bss = .; +		*(.bss) +		*(.bss.*) +		*(COMMON) +		_ebss = .; +	} + +	/* +	 * Weak symbols that need zero values if not otherwise defined +	 * +	 */ + +	.weak 0x0 : { +		_weak = .; +		*(.weak) +		*(.weak.*) +		_eweak = .; +	} +	_assert = ASSERT ( ( _weak == _eweak ), ".weak is non-zero length" ); + +	/* +	 * Dispose of the comment and note sections to make the link map +	 * easier to read +	 * +	 */ + +	/DISCARD/ : { +		*(.comment) +		*(.comment.*) +		*(.note) +		*(.note.*) +		*(.rel) +		*(.rel.*) +		*(.discard) +		*(.discard.*) +	} +}  | 
