source: mainline/arch/ia32/_link.ld.in@ 49c1f93

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 49c1f93 was 941d1e9, checked in by Jakub Jermar <jakub@…>, 20 years ago

Make cross-compiler the default compiler on IA-32.
For native compilations, use ./build.ia32 native.

Small changes elsewhere.

  • Property mode set to 100644
File size: 2.0 KB
Line 
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 */
10
11#define __ASM__
12#include <arch/boot/boot.h>
13#include <arch/mm/page.h>
14
15OUTPUT_FORMAT(binary)
16ENTRY(kernel_image_start)
17
18SECTIONS {
19 .unmapped BOOTSTRAP_OFFSET: AT (BOOTSTRAP_OFFSET) {
20 unmapped_ktext_start = .;
21 *(K_TEXT_START);
22 *(K_TEXT_START_2);
23 unmapped_ktext_end = .;
24
25 unmapped_kdata_start = .;
26 *(K_DATA_START);
27 unmapped_kdata_end = .;
28
29 LONG(0xdeadbeaf); /* TODO: remove 0xdeadbeaf */
30 }
31
32 .mapped (PA2KA(BOOT_OFFSET+BOOTSTRAP_OFFSET)+SIZEOF(.unmapped)): AT (BOOTSTRAP_OFFSET+SIZEOF(.unmapped)) {
33 ktext_start = .;
34 *(BOOT_DATA);
35 *(.text);
36 ktext_end = .;
37
38 kdata_start = .;
39 *(.data); /* initialized data */
40 *(.rodata*); /* string literals */
41 *(COMMON); /* global variables */
42 hardcoded_load_address = .;
43 LONG(PA2KA(BOOT_OFFSET+BOOTSTRAP_OFFSET));
44 hardcoded_ktext_size = .;
45 LONG((ktext_end - ktext_start) + (unmapped_ktext_end - unmapped_ktext_start));
46 hardcoded_kdata_size = .;
47 LONG((kdata_end - kdata_start) + (unmapped_kdata_end - unmapped_kdata_start));
48 hardcoded_unmapped_ktext_size = .;
49 LONG(unmapped_ktext_end - unmapped_ktext_start);
50 hardcoded_unmapped_kdata_size = .;
51 LONG(unmapped_kdata_end - unmapped_kdata_start);
52 *(.bss); /* uninitialized static variables */
53 symbol_table = .;
54 *(symtab.*); /* Symbol table, must be LAST symbol! */
55
56 kdata_end = .;
57 }
58
59 /DISCARD/ : {
60 *(.note.GNU-stack);
61 *(.comment);
62 }
63
64
65 _hardcoded_kernel_size = (ktext_end - ktext_start) + (unmapped_ktext_end - unmapped_ktext_start) + (kdata_end - kdata_start) + (unmapped_kdata_end - unmapped_kdata_start);
66 _hardcoded_unmapped_size = (unmapped_ktext_end - unmapped_ktext_start) + (unmapped_kdata_end - unmapped_kdata_start);
67
68 e820table_boot = KA2PA(e820table) - BOOT_OFFSET;
69 e820counter_boot = KA2PA(e820counter) - BOOT_OFFSET;
70 real_bootstrap_gdtr = PA2KA(real_bootstrap_gdtr_boot);
71}
Note: See TracBrowser for help on using the repository browser.