porting over pcboot codebase
[com32] / com32.ld
1 OUTPUT_FORMAT(binary)
2 ENTRY(_start)
3
4 SECTIONS {
5         /* loader starts at <seg>:100h */
6         . = 0x100;
7         .loader : { * (.loader); }
8
9         . = ALIGN(4);
10         _ldr_main_start = .;
11         _ldr_main_end = _ldr_main_start + _main_size;
12
13         /* main program will be moved to 2MB by the loader */
14         . = 2M;
15         main ALIGN(4): AT (_ldr_main_start) {
16                 _main_start = .;
17                 * (.startup);
18                 * (.text*);
19                 * (.rodata*);
20                 * (.data*);
21
22                 . = ALIGN(4);
23                 _bss_start = .;
24                 * (.bss*);
25                 * (COMMON);
26                 . = ALIGN(4);
27                 _bss_end = .;
28                 _bss_size = _bss_end - _bss_start;
29         }
30
31         . = ALIGN(4);
32         _main_size = . - _main_start;
33         _mem_start = .;
34 }