ild script to build a .prg (only works with PC REL code!)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23341 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
cd6103fab1
commit
9ecdca6ec1
60
src/system/boot/platform/atari_m68k/prg.ld
Executable file
60
src/system/boot/platform/atari_m68k/prg.ld
Executable file
@ -0,0 +1,60 @@
|
||||
/*OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")*/
|
||||
OUTPUT_FORMAT("binary", "binary", "binary")
|
||||
OUTPUT_ARCH(m68k)
|
||||
|
||||
ENTRY(__text_start)
|
||||
SEARCH_DIR("libgcc");
|
||||
SECTIONS
|
||||
{
|
||||
/*. = 0x80000000 + SIZEOF_HEADERS;*/
|
||||
/* fool the alignment of .text */
|
||||
/*. = 0x20 - 0x1c;*/
|
||||
|
||||
/* .PRG file header */
|
||||
.prgheader : {
|
||||
/*SHORT(0x55aa)*/
|
||||
SHORT(0x601a) /* MAGIC */
|
||||
LONG(__data_start - __text_start) /* TEXT SIZE */
|
||||
LONG(__bss_start - __data_start) /* DATA SIZE */
|
||||
LONG(_end - __bss_start) /* BSS SIZE */
|
||||
LONG(0) /* SYMBOL TABLE SIZE */
|
||||
LONG(0x4841494b) /* (reserved) 'HAIK' */
|
||||
LONG(0x1) /* PRGFLAGS : PF_FASTLOAD */
|
||||
SHORT(0) /* ABSFLAG */
|
||||
}
|
||||
|
||||
__text_start = .;
|
||||
/* ".text ." should align to 0x1c but doesn't work as expected, cf top. */
|
||||
.text . : {
|
||||
*(.text .gnu.linkonce.t.*)
|
||||
*(.rel.text) *(.rel.gnu.linkonce.t*)
|
||||
*(.rela.text) *(.rela.gnu.linkonce.t*)
|
||||
*(.rodata)
|
||||
*(.rel.rodata) *(.rel.gnu.linkonce.r*)
|
||||
*(.rela.rodata) *(.rela.gnu.linkonce.r*)
|
||||
}
|
||||
/* writable data */
|
||||
/* NO! . = ALIGN(0x1000); */
|
||||
__data_start = .;
|
||||
.data : {
|
||||
*(.data .gnu.linkonce.d.*)
|
||||
*(.rel.data) *(.rel.gnu.linkonce.d*)
|
||||
*(.rela.data) *(.rela.gnu.linkonce.d*)
|
||||
}
|
||||
/* unintialized data (in same segment as writable data) */
|
||||
__bss_start = .;
|
||||
.bss : {
|
||||
*(.bss)
|
||||
*(.rel.bss)
|
||||
*(.rela.bss)
|
||||
}
|
||||
/* . = ALIGN(0x1000); */
|
||||
_end = . ;
|
||||
|
||||
.prgtrailer : {
|
||||
LONG(0) /* FIXUP OFFSET */
|
||||
LONG(0)
|
||||
}
|
||||
/* Strip unnecessary stuff */
|
||||
/DISCARD/ : { *(.comment .note .eh_frame) }
|
||||
}
|
Loading…
Reference in New Issue
Block a user