diff options
Diffstat (limited to 'qemu/roms/ipxe/src/arch/i386/scripts')
-rw-r--r-- | qemu/roms/ipxe/src/arch/i386/scripts/i386-kir.lds | 202 | ||||
-rw-r--r-- | qemu/roms/ipxe/src/arch/i386/scripts/i386.lds | 254 | ||||
-rw-r--r-- | qemu/roms/ipxe/src/arch/i386/scripts/linux.lds | 104 |
3 files changed, 0 insertions, 560 deletions
diff --git a/qemu/roms/ipxe/src/arch/i386/scripts/i386-kir.lds b/qemu/roms/ipxe/src/arch/i386/scripts/i386-kir.lds deleted file mode 100644 index 66bf804e6..000000000 --- a/qemu/roms/ipxe/src/arch/i386/scripts/i386-kir.lds +++ /dev/null @@ -1,202 +0,0 @@ -/* -*- sh -*- */ - -/* - * Linker script for i386 images - * - */ - -OUTPUT_FORMAT ( "elf32-i386", "elf32-i386", "elf32-i386" ) -OUTPUT_ARCH ( i386 ) - -SECTIONS { - - /* All sections in the resulting file have consecutive load - * addresses, but may have individual link addresses depending on - * the memory model being used. - * - * The linker symbols _prefix_link_addr, load_addr, and - * _max_align may be specified explicitly. If not specified, they - * will default to: - * - * _prefix_link_addr = 0 - * _load_addr = 0 - * _max_align = 16 - * - * We guarantee alignment of virtual addresses to any alignment - * specified by the constituent object files (e.g. via - * __attribute__((aligned(x)))). Load addresses are guaranteed - * only up to _max_align. Provided that all loader and relocation - * code honours _max_align, this means that physical addresses are - * also guaranteed up to _max_align. - * - * Note that when using -DKEEP_IT_REAL, the UNDI segments are only - * guaranteed to be loaded on a paragraph boundary (i.e. 16-byte - * alignment). Using _max_align>16 will therefore not guarantee - * >16-byte alignment of physical addresses when -DKEEP_IT_REAL is - * used (though virtual addresses will still be fully aligned). - * - */ - - /* - * The prefix - */ - - _prefix_link_addr = DEFINED ( _prefix_link_addr ) ? _prefix_link_addr : 0; - . = _prefix_link_addr; - _prefix = .; - - .prefix : AT ( _prefix_load_offset + __prefix ) { - __prefix = .; - _entry = .; - *(.prefix) - *(.prefix.*) - _eprefix_progbits = .; - } - - _eprefix = .; - - /* - * The 16-bit sections - */ - - _text16_link_addr = 0; - . = _text16_link_addr; - _text16 = .; - - . += 1; /* Prevent NULL being valid */ - - .text16 : AT ( _text16_load_offset + __text16 ) { - __text16 = .; - KEEP(*(.text.null_trap)) - KEEP(*(.text.null_trap.*)) - *(.text16) - *(.text16.*) - *(.text) - *(.text.*) - _etext16_progbits = .; - } = 0x9090 - - _etext16 = .; - - _data16_link_addr = 0; - . = _data16_link_addr; - _data16 = .; - - . += 1; /* Prevent NULL being valid */ - - .rodata16 : AT ( _data16_load_offset + __rodata16 ) { - __rodata16 = .; - *(.rodata16) - *(.rodata16.*) - *(.rodata) - *(.rodata.*) - } - .data16 : AT ( _data16_load_offset + __data16 ) { - __data16 = .; - *(.data16) - *(.data16.*) - *(.data) - *(.data.*) - KEEP(*(SORT(.tbl.*))) /* Various tables. See include/tables.h */ - KEEP(*(.provided)) - KEEP(*(.provided.*)) - _edata16_progbits = .; - } - .bss16 : AT ( _data16_load_offset + __bss16 ) { - __bss16 = .; - _bss16 = .; - *(.bss16) - *(.bss16.*) - *(.bss) - *(.bss.*) - *(COMMON) - _ebss16 = .; - } - .stack16 : AT ( _data16_load_offset + __stack16 ) { - __stack16 = .; - *(.stack16) - *(.stack16.*) - *(.stack) - *(.stack.*) - } - - _edata16 = .; - - _end = .; - - /* - * Dispose of the comment and note sections to make the link map - * easier to read - */ - - /DISCARD/ : { - *(.comment) - *(.comment.*) - *(.note) - *(.note.*) - *(.discard) - *(.discard.*) - } - - /* - * Load address calculations. The slightly obscure nature of the - * calculations is because ALIGN(x) can only operate on the - * location counter. - */ - - _max_align = DEFINED ( _max_align ) ? _max_align : 16; - _load_addr = DEFINED ( _load_addr ) ? _load_addr : 0; - - . = _load_addr; - - . -= _prefix_link_addr; - _prefix_load_offset = ALIGN ( _max_align ); - _prefix_load_addr = _prefix_link_addr + _prefix_load_offset; - _prefix_size = _eprefix - _prefix; - _prefix_progbits_size = _eprefix_progbits - _prefix; - . = _prefix_load_addr + _prefix_progbits_size; - - . -= _text16_link_addr; - _text16_load_offset = ALIGN ( _max_align ); - _text16_load_addr = _text16_link_addr + _text16_load_offset; - _text16_size = _etext16 - _text16; - _text16_progbits_size = _etext16_progbits - _text16; - . = _text16_load_addr + _text16_progbits_size; - - . -= _data16_link_addr; - _data16_load_offset = ALIGN ( _max_align ); - _data16_load_addr = _data16_link_addr + _data16_load_offset; - _data16_size = _edata16 - _data16; - _data16_progbits_size = _edata16_progbits - _data16; - . = _data16_load_addr + _data16_progbits_size; - - . = ALIGN ( _max_align ); - - _load_size = . - _load_addr; - - /* - * Alignment checks. ALIGN() can only operate on the location - * counter, so we set the location counter to each value we want - * to check. - */ - - . = _prefix_load_addr - _prefix_link_addr; - _assert = ASSERT ( ( . == ALIGN ( _max_align ) ), - "_prefix is badly aligned" ); - - . = _text16_load_addr - _text16_link_addr; - _assert = ASSERT ( ( . == ALIGN ( _max_align ) ), - "_text16 is badly aligned" ); - - . = _data16_load_addr - _data16_link_addr; - _assert = ASSERT ( ( . == ALIGN ( _max_align ) ), - "_data16 is badly aligned" ); - - /* - * Values calculated to save code from doing it - */ - _text16_size_pgh = ( ( _text16_size + 15 ) / 16 ); - _data16_size_pgh = ( ( _data16_size + 15 ) / 16 ); - _load_size_pgh = ( ( _load_size + 15 ) / 16 ); - _load_size_sect = ( ( _load_size + 511 ) / 512 ); -} diff --git a/qemu/roms/ipxe/src/arch/i386/scripts/i386.lds b/qemu/roms/ipxe/src/arch/i386/scripts/i386.lds deleted file mode 100644 index 38c89e14b..000000000 --- a/qemu/roms/ipxe/src/arch/i386/scripts/i386.lds +++ /dev/null @@ -1,254 +0,0 @@ -/* -*- ld-script -*- */ - -/* - * Linker script for i386 images - * - */ - -SECTIONS { - - /* Each section starts at a virtual address of zero. - * - * We guarantee alignment of virtual addresses to any alignment - * specified by the constituent object files (e.g. via - * __attribute__((aligned(x)))). Load addresses are guaranteed - * only up to _max_align. Provided that all loader and relocation - * code honours _max_align, this means that physical addresses are - * also guaranteed up to _max_align. - * - * Note that when using -DKEEP_IT_REAL, the UNDI segments are only - * guaranteed to be loaded on a paragraph boundary (i.e. 16-byte - * alignment). Using _max_align>16 will therefore not guarantee - * >16-byte alignment of physical addresses when -DKEEP_IT_REAL is - * used (though virtual addresses will still be fully aligned). - * - */ - - PROVIDE ( _max_align = 16 ); - - /* - * Allow decompressor to require a minimum amount of temporary stack - * space. - * - */ - PROVIDE ( _min_decompress_stack = 0 ); - - /* - * The prefix - * - */ - - .prefix 0x0 : AT ( _prefix_lma ) { - _prefix = .; - *(.prefix) - *(SORT(.pci_devlist.*)) - *(.prefix.*) - _mprefix = .; - } .bss.prefix (NOLOAD) : AT ( _end_lma ) { - _eprefix = .; - } - _prefix_filesz = ABSOLUTE ( _mprefix ) - ABSOLUTE ( _prefix ); - _prefix_memsz = ABSOLUTE ( _eprefix ) - ABSOLUTE ( _prefix ); - - /* - * The 16-bit (real-mode) code section - * - */ - - .text16.early 0x0 : AT ( _text16_early_lma ) { - _text16 = .; - KEEP(*(.text16.null)) - KEEP(*(.text16.null.*)) - . += 1; /* Prevent NULL being valid */ - *(.text16.early) - *(.text16.early.*) - _etext16_early = .; - } .text16.late ALIGN ( _max_align ) : AT ( _text16_late_lma ) { - _text16_late = .; - *(.text16) - *(.text16.*) - _mtext16 = .; - } .bss.text16 (NOLOAD) : AT ( _end_lma ) { - _etext16 = .; - } - _text16_early_filesz = ABSOLUTE ( _etext16_early ) - ABSOLUTE ( _text16 ); - _text16_early_memsz = ABSOLUTE ( _etext16_early ) - ABSOLUTE ( _text16 ); - _text16_late_filesz = ABSOLUTE ( _mtext16 ) - ABSOLUTE ( _text16_late ); - _text16_late_memsz = ABSOLUTE ( _etext16 ) - ABSOLUTE ( _text16_late ); - _text16_memsz = ABSOLUTE ( _etext16 ) - ABSOLUTE ( _text16 ); - - /* - * The 16-bit (real-mode) data section - * - */ - - .data16 0x0 : AT ( _data16_lma ) { - _data16 = .; - . += 1; /* Prevent NULL being valid */ - *(.rodata16) - *(.rodata16.*) - *(.data16) - *(.data16.*) - _mdata16 = .; - } .bss.data16 (NOLOAD) : AT ( _end_lma ) { - *(.bss16) - *(.bss16.*) - *(.stack16) - *(.stack16.*) - . = MAX ( ., _mdata16 + _min_decompress_stack ); - _edata16 = .; - } - _data16_filesz = ABSOLUTE ( _mdata16 ) - ABSOLUTE ( _data16 ); - _data16_memsz = ABSOLUTE ( _edata16 ) - ABSOLUTE ( _data16 ); - - /* - * The 32-bit sections - * - */ - - .textdata 0x0 : AT ( _textdata_lma ) { - _textdata = .; - KEEP(*(.text.null_trap)) - KEEP(*(.text.null_trap.*)) - . += 1; /* Prevent NULL being valid */ - *(.text) - *(.text.*) - *(.rodata) - *(.rodata.*) - *(.data) - *(.data.*) - KEEP(*(SORT(.tbl.*))) /* Various tables. See include/tables.h */ - KEEP(*(.provided)) - KEEP(*(.provided.*)) - _mtextdata = .; - } .bss.textdata (NOLOAD) : AT ( _end_lma ) { - *(.bss) - *(.bss.*) - *(COMMON) - *(.stack) - *(.stack.*) - _etextdata = .; - } - _textdata_filesz = ABSOLUTE ( _mtextdata ) - ABSOLUTE ( _textdata ); - _textdata_memsz = ABSOLUTE ( _etextdata ) - ABSOLUTE ( _textdata ); - - /* - * Payload prefix - * - * If present, this will be placed between .text16.early and .text16.late. - * - */ - .pprefix 0x0 : AT ( _pprefix_lma ) { - _pprefix = .; - KEEP(*(.pprefix)) - KEEP(*(.pprefix.*)) - _mpprefix = .; - } .bss.pprefix (NOLOAD) : AT ( _end_lma ) { - _epprefix = .; - } - _pprefix_filesz = ABSOLUTE ( _mpprefix ) - ABSOLUTE ( _pprefix ); - _pprefix_memsz = ABSOLUTE ( _epprefix ) - ABSOLUTE ( _pprefix ); - - /* - * Compressor information block - * - */ - - .zinfo 0x0 : AT ( _zinfo_lma ) { - _zinfo = .; - KEEP(*(.zinfo)) - KEEP(*(.zinfo.*)) - _mzinfo = .; - } .bss.zinfo (NOLOAD) : AT ( _end_lma ) { - _ezinfo = .; - } - _zinfo_filesz = ABSOLUTE ( _mzinfo ) - ABSOLUTE ( _zinfo ); - _zinfo_memsz = ABSOLUTE ( _ezinfo ) - ABSOLUTE ( _zinfo ); - - /* - * Weak symbols that need zero values if not otherwise defined - * - */ - - .weak 0x0 : AT ( _end_lma ) { - _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.*) - *(.eh_frame) - *(.eh_frame.*) - *(.rel) - *(.rel.*) - *(.einfo) - *(.einfo.*) - *(.discard) - *(.discard.*) - } - - /* - * Load address calculations. In older versions of ld, ALIGN() - * can operate only on the location counter, so we use that. - * - */ - - . = 0; - - . = ALIGN ( _max_align ); - _prefix_lma = .; - . += _prefix_filesz; - - . = ALIGN ( _max_align ); - _text16_early_lma = .; - . += _text16_early_filesz; - - . = ALIGN ( _max_align ); - . = ALIGN ( _payload_align ); - _pprefix_lma = .; - . += _pprefix_filesz; - - . = ALIGN ( _max_align ); - _payload_lma = .; - _pprefix_skip = ABSOLUTE ( _payload_lma ) - ABSOLUTE ( _pprefix_lma ); - _text16_late_lma = .; - . += _text16_late_filesz; - - . = ALIGN ( _max_align ); - _data16_lma = .; - . += _data16_filesz; - - . = ALIGN ( _max_align ); - _textdata_lma = .; - . += _textdata_filesz; - - _filesz = .; /* Do not include zinfo block in file size */ - - . = ALIGN ( _max_align ); - _zinfo_lma = .; - . += _zinfo_filesz; - - . = ALIGN ( _max_align ); - _end_lma = .; - - /* - * Values calculated to save code from doing it - * - */ - _text16_memsz_pgh = ( ( _text16_memsz + 15 ) / 16 ); - _data16_memsz_pgh = ( ( _data16_memsz + 15 ) / 16 ); - _textdata_memsz_pgh = ( ( _textdata_memsz + 15 ) / 16 ); - _textdata_memsz_kb = ( ( _textdata_memsz + 1023 ) / 1024 ); -} diff --git a/qemu/roms/ipxe/src/arch/i386/scripts/linux.lds b/qemu/roms/ipxe/src/arch/i386/scripts/linux.lds deleted file mode 100644 index 9f2eeaf3c..000000000 --- a/qemu/roms/ipxe/src/arch/i386/scripts/linux.lds +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- sh -*- */ - -/* - * Linker script for i386 Linux images - * - */ - -OUTPUT_FORMAT ( "elf32-i386", "elf32-i386", "elf32-i386" ) -OUTPUT_ARCH ( i386 ) - -SECTIONS { - _max_align = 32; - - . = 0x08048000; - - /* - * 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.*) - } -} |