2022-09-14 16:50:44 -05:00
|
|
|
OUTPUT_FORMAT(binary)
|
|
|
|
ENTRY(entry)
|
|
|
|
|
|
|
|
SECTIONS {
|
2023-01-31 21:26:43 -06:00
|
|
|
. = 0x100000;
|
2022-09-14 16:50:44 -05:00
|
|
|
|
2023-02-08 10:33:49 -06:00
|
|
|
.text : {
|
2023-01-31 21:26:43 -06:00
|
|
|
*(.text);
|
2022-09-14 16:50:44 -05:00
|
|
|
}
|
|
|
|
|
2023-02-08 10:33:49 -06:00
|
|
|
.data : {
|
2023-01-31 21:26:43 -06:00
|
|
|
*(.data);
|
2023-02-10 19:20:17 -06:00
|
|
|
*(.data*);
|
2023-01-31 21:26:43 -06:00
|
|
|
*(.rodata);
|
|
|
|
*(.rodata*);
|
|
|
|
_edata = .;
|
2022-09-14 16:50:44 -05:00
|
|
|
}
|
|
|
|
|
2023-02-02 14:52:26 -06:00
|
|
|
.realmode 0x4000 :
|
2023-02-10 19:20:17 -06:00
|
|
|
AT ( _edata )
|
2023-01-31 21:26:43 -06:00
|
|
|
{ _v86code = .; *(.v86); _ev86code = .; }
|
|
|
|
|
2023-02-10 19:20:17 -06:00
|
|
|
. = _edata + SIZEOF(.realmode);
|
2023-01-31 21:26:43 -06:00
|
|
|
.thing : { _loadusercode = .; }
|
|
|
|
|
2023-02-10 19:20:17 -06:00
|
|
|
.usermode 0x400000 : AT(_loadusercode) {
|
|
|
|
_usercode = .; *(.user); _eusercode = .;
|
|
|
|
}
|
|
|
|
.bss 0x400000 (NOLOAD) : AT(_loadusercode + SIZEOF(.usermode)) {
|
2023-02-10 03:42:53 -06:00
|
|
|
_bprogstart = .;
|
2023-02-10 19:20:17 -06:00
|
|
|
*(.progbss);
|
|
|
|
*(.progbss*);
|
2023-02-10 03:42:53 -06:00
|
|
|
_bprogend = .;
|
2023-02-10 19:20:17 -06:00
|
|
|
*(.proglatebss);
|
|
|
|
*(.proglatebss*);
|
2023-02-10 03:42:53 -06:00
|
|
|
}
|
|
|
|
|
2023-01-31 21:26:43 -06:00
|
|
|
. = ADDR(.data) + SIZEOF(.data) + SIZEOF(.realmode) + SIZEOF(.usermode);
|
|
|
|
|
|
|
|
.bss : ALIGN(0x1000)
|
|
|
|
{
|
2023-02-10 19:20:17 -06:00
|
|
|
_bstart = .; *(.bss); *(.bss*) _bend = .;
|
|
|
|
}
|
|
|
|
|
|
|
|
/DISCARD/ : {
|
|
|
|
*(.note*)
|
|
|
|
*(.comment*)
|
2022-09-14 16:50:44 -05:00
|
|
|
}
|
|
|
|
}
|