Fix build with -O1
[helenos.git] / kernel / arch / ia32 / _link.ld.in
blob5f37713ffdaefe9e3cb378963320423c9ad1e471
1 /** IA-32 linker script
2  *
3  * umapped section:
4  *  kernel text
5  *  kernel data
6  * mapped section:
7  *  kernel text
8  *  kernel data
9  */
11 #include <arch/boot/boot.h>
12 #include <arch/mm/page.h>
14 SECTIONS {
15         kernel_load_address = PA2KA(BOOT_OFFSET);
17         .unmapped (BOOT_OFFSET + SIZEOF_HEADERS): AT (BOOT_OFFSET + SIZEOF_HEADERS) {
18                 unmapped_start = .;
19                 *(K_TEXT_START);
20                 *(K_DATA_START);
21                 unmapped_end = .;
22         }
24         .mapped (PA2KA(BOOT_OFFSET) + SIZEOF_HEADERS + SIZEOF(.unmapped)): AT (BOOT_OFFSET + SIZEOF_HEADERS + SIZEOF(.unmapped)) {
25                 ktext_start = .;
26                 *(.text .text.*);
27                 ktext_end = .;
29                 kdata_start = .;
30                 *(.data);               /* initialized data */
31                 *(.rodata .rodata.*);   /* string literals */
32                 *(COMMON);              /* global variables */
34                 /* bss can't be omitted from the ELF image. */
35                 *(.bss);                /* uninitialized static variables */
37                 . = ALIGN(8);
38                 symbol_table = .;
39                 *(symtab.*);            /* Symbol table, must be LAST symbol! */
40                 kdata_end = .;
41         }
43 #ifdef CONFIG_LINE_DEBUG
44         .comment 0 : { *(.comment); }
45         .debug_abbrev 0 : { *(.debug_abbrev); }
46         .debug_aranges 0 : { *(.debug_aranges); }
47         .debug_info 0 : { *(.debug_info); }
48         .debug_line 0 : { *(.debug_line); }
49         .debug_loc 0 : { *(.debug_loc); }
50         .debug_pubnames 0 : { *(.debug_pubnames); }
51         .debug_pubtypes 0 : { *(.debug_pubtypes); }
52         .debug_ranges 0 : { *(.debug_ranges); }
53         .debug_str 0 : { *(.debug_str); }
54 #endif
56         /DISCARD/ : {
57                 *(*);
58         }
60 #ifdef CONFIG_SMP
62         ap_boot = unmapped_ap_boot - BOOT_OFFSET + AP_BOOT_OFFSET;
63         ap_gdtr = unmapped_ap_gdtr - BOOT_OFFSET + AP_BOOT_OFFSET;
64         protected_ap_gdtr = PA2KA(ap_gdtr);
66 #endif /* CONFIG_SMP */