source: mainline/arch/ia32/_link.ld@ 0d2f805

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

Switch from mm-based 'the' mechanism to macro-based 'cpu_private_data[CPU_ID_ARCH]' mechanism.
Added l_apic_id() and some other minor APIC changes.
Move gdtr to K_DATA_START section.
Move K_DATA_START section immediately behind K_TEXT_START section so that real-mode addresses work even with growing size of kernel code.

  • Property mode set to 100644
File size: 851 bytes
RevLine 
[f761f1eb]1/*
[397c77f]2 * ia32 linker script
[f761f1eb]3 *
4 * kernel text
5 * kernel data
6 *
7 */
8
9OUTPUT_FORMAT(binary)
10ENTRY(kernel_image_start)
11
12SECTIONS {
13 .image 0x8000: AT (0x8000) {
14 ktext_start = .;
15 *(K_TEXT_START);
[8262010]16 delta_start = .;
17 *(K_DATA_START);
18 delta_end = .;
[f761f1eb]19 *(.text);
20 ktext_end = .;
21
22 kdata_start = .;
23 *(.data); /* initialized data */
24 *(.rodata*); /* string literals */
25 *(COMMON); /* global variables */
26 *(.bss); /* uninitialized static variables */
27 *(K_DATA_END);
28 kdata_end = .;
29 }
30
31 . = ABSOLUTE(hardcoded_ktext_size);
32 .patch_1 : {
[8262010]33 LONG(ktext_end - ktext_start - (delta_end - delta_start));
[f761f1eb]34 }
35
36 . = ABSOLUTE(hardcoded_kdata_size);
37 .patch_2 : {
[8262010]38 LONG(kdata_end - kdata_start + (delta_end - delta_start));
[f761f1eb]39 }
40
41 . = ABSOLUTE(hardcoded_load_address);
42 .patch_3 : {
43 LONG(0x8000);
44 }
45
46}
Note: See TracBrowser for help on using the repository browser.