Add ldscripts.

This commit is contained in:
Martin Whitaker 2020-05-25 14:39:03 +01:00
parent 1594752e30
commit c5a21e7ff1
4 changed files with 138 additions and 0 deletions

View File

@ -0,0 +1,16 @@
OUTPUT_FORMAT("binary")
OUTPUT_ARCH("i386")
ENTRY(boot);
SECTIONS {
. = 0;
.bootsect : { *(.bootsect) }
.setup : { *(.setup) }
.memtest : {
_start = . ;
*(.data)
_end = . ;
}
_syssize = (_end - _start + 15) >> 4;
_initsize = (_end - _start);
}

View File

@ -0,0 +1,53 @@
OUTPUT_FORMAT("elf32-i386");
OUTPUT_ARCH(i386);
ENTRY(startup32);
SECTIONS {
. = 0;
.text : {
_start = .;
*(.text)
*(.text.*)
*(.plt)
_etext = . ;
} = 0x9090
.rodata : {
*(.rodata)
*(.rodata.*)
}
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynamic : { *(.dynamic) }
.rel.text : { *(.rel.text .rel.text.*) }
.rel.rodata : { *(.rel.rodata .rel.rodata.*) }
.rel.data : { *(.rel.data .rel.data.*) }
.rel.got : { *(.rel.got .rel.got.*) }
.rel.plt : { *(.rel.plt .rel.plt.*) }
. = ALIGN(4);
.data : {
_data = .;
*(.data)
*(.data.*)
}
.got : {
*(.got.plt)
*(.got)
_edata = . ;
}
. = ALIGN(4);
.bss : {
_bss = .;
*(.dynbss)
*(.bss)
*(.bss.*)
*(COMMON)
/* _end must be at least 256 byte aligned */
. = ALIGN(256);
_end = .;
}
/DISCARD/ : { *(*) }
}

View File

@ -0,0 +1,16 @@
OUTPUT_FORMAT("binary")
OUTPUT_ARCH(i386:x86-64)
ENTRY(boot);
SECTIONS {
. = 0;
.bootsect : { *(.bootsect) }
.setup : { *(.setup) }
.memtest : {
_start = . ;
*(.data)
_end = . ;
}
_syssize = (_end - _start + 15) >> 4;
_initsize = (_end - _start);
}

View File

@ -0,0 +1,53 @@
OUTPUT_FORMAT("elf64-x86-64");
OUTPUT_ARCH(i386:x86-64);
ENTRY(startup64);
SECTIONS {
. = 0;
.text : {
_start = .;
*(.text)
*(.text.*)
*(.plt)
_etext = . ;
} = 0x9090
.rodata : {
*(.rodata)
*(.rodata.*)
}
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynamic : { *(.dynamic) }
.rela.text : { *(.rela.text .rela.text.*) }
.rela.rodata : { *(.rela.rodata .rela.rodata.*) }
.rela.data : { *(.rela.data .rela.data.*) }
.rela.got : { *(.rela.got .rela.got.*) }
.rela.plt : { *(.rela.plt .rela.plt.*) }
. = ALIGN(4);
.data : {
_data = .;
*(.data)
*(.data.*)
}
.got : {
*(.got.plt)
*(.got)
_edata = . ;
}
. = ALIGN(4);
.bss : {
_bss = .;
*(.dynbss)
*(.bss)
*(.bss.*)
*(COMMON)
/* _end must be at least 256 byte aligned */
. = ALIGN(256);
_end = .;
}
/DISCARD/ : { *(*) }
}