SECTIONS { . = 0; .jh.cmdline : { cmdline = 0xf0000; /* adjust relocation address of variable */ header-32-inmate.o (.cmdline) BYTE(0); /* empty string in case no buffer is provided */ } /* 16-bit sections */ .jh.startup : { header-32-inmate.o (.startup) } . = 0xfff0; .jh.boot : { header-32-inmate.o (.boot) . = ALIGN(16); } /* 32/64-bit sections */ . = 0xe0000; stack_top = .; bss_start = .; .jh.bss : { header-32-inmate.o (.bss) . = ALIGN(8); } bss_dwords = SIZEOF(.jh.bss) / 4; bss_qwords = SIZEOF(.jh.bss) / 8; . = 0xf0000 + ADDR(.jh.startup) + SIZEOF( .jh.startup ); .jh.text : AT (ADDR( .jh.text ) & 0xffff) { header-32-inmate.o ( .text) } . = ALIGN(16); .jh.rodata : AT (ADDR(.jh.rodata) & 0xffff) { header-32-inmate.o (.rodata) } . = ALIGN(16); .jh.data : AT (ADDR(.jh.data) & 0xffff) { header-32-inmate.o (.data) } /*fiasco section*/ . = 0x01000000 ; _image_start = .; .text 0x01000000 : AT(0x00100000 - 0xf0000) { *( EXCLUDE_FILE (header-32-inmate.o) .text .text.*) *( EXCLUDE_FILE (header-32-inmate.o) .rodata .rodata.*) } =0x9090 .data : AT(0x01000000 + SIZEOF(.text) - 0xf0000) { *( EXCLUDE_FILE (header-32-inmate.o) .data .data.*) *( EXCLUDE_FILE (header-32-inmate.o) .bss .bss.*) *( EXCLUDE_FILE (header-32-inmate.o) COMMON) } _image_end = .; .sixtyfour 0x2d0000 : AT(0x2d0000 - 0xf0000) { . = . + 500000; } /DISCARD/ : { *(.note.gnu.build-id) *(.interp) *(.comment) *(.note) *(.eh_frame) } } ENTRY(__reset_entry)