diff options
author | Piotr Jaroszyński | 2010-04-08 01:25:38 +0200 |
---|---|---|
committer | Michael Brown | 2010-08-19 13:25:06 +0200 |
commit | e84db1121b206736eb2958322abd0830b068132d (patch) | |
tree | 53254f2f9e10ac4531fb0bb4cbe271f9079cc3be /src/arch/i386/scripts | |
parent | [libc] Add strtoull() (diff) | |
download | ipxe-e84db1121b206736eb2958322abd0830b068132d.tar.gz ipxe-e84db1121b206736eb2958322abd0830b068132d.tar.xz ipxe-e84db1121b206736eb2958322abd0830b068132d.zip |
[linux] Add linux platform skeleton
Add makefiles, ld scripts and default config for linux platform for
both i386 and x86_64.
Signed-off-by: Piotr Jaroszyński <p.jaroszynski@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386/scripts')
-rw-r--r-- | src/arch/i386/scripts/linux.lds | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/arch/i386/scripts/linux.lds b/src/arch/i386/scripts/linux.lds new file mode 100644 index 00000000..94b7b900 --- /dev/null +++ b/src/arch/i386/scripts/linux.lds @@ -0,0 +1,101 @@ +/* -*- sh -*- */ + +/* + * Linker script for i386 Linux images + * + */ + +OUTPUT_FORMAT ( "elf32-i386", "elf32-i386", "elf32-i386" ) +OUTPUT_ARCH ( i386 ) + +ENTRY ( _start ) + +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 + * + */ + + . = ALIGN ( _max_align ); + .data : { + _data = .; + *(.data) + *(.data.*) + *(SORT(.tbl.*)) /* Various tables. See include/tables.h */ + _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) + _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.*) + *(.discard) + } +} |