Subversion Repositories HelenOS-historic

Rev

Rev 16 | Rev 105 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 16 Rev 65
1
/*
-
 
2
 *  ia32 linker script
1
/** IA-32 linker script
3
 *  
2
 *  
4
 *  kernel text
3
 *  kernel text
5
 *  kernel data
4
 *  kernel data
6
 *  
5
 *  
7
 */
6
 */
8
 
7
 
9
OUTPUT_FORMAT(binary)
8
OUTPUT_FORMAT(binary)
10
ENTRY(kernel_image_start)
9
ENTRY(kernel_image_start)
11
 
10
 
12
SECTIONS {
11
SECTIONS {
13
    .image 0x8000: AT (0x8000) { 
12
    .image 0x8000: AT (0x8000) { 
14
	ktext_start = .;
13
	ktext_start = .;
15
	*(K_TEXT_START);
14
	*(K_TEXT_START);
16
	delta_start = .;
15
	delta_start = .;
17
	*(K_DATA_START);
16
	*(K_DATA_START);
18
	delta_end = .;			
17
	delta_end = .;			
19
	*(.text);
18
	*(.text);
20
	ktext_end = .;
19
	ktext_end = .;
21
 
20
 
22
	kdata_start = .;
21
	kdata_start = .;
23
	*(.data);		/* initialized data */
22
	*(.data);		/* initialized data */
24
	*(.rodata*);		/* string literals */
23
	*(.rodata*);		/* string literals */
25
	*(COMMON);		/* global variables */
24
	*(COMMON);		/* global variables */
26
	*(.bss);		/* uninitialized static variables */
25
	*(.bss);		/* uninitialized static variables */
27
	*(K_DATA_END);
26
	*(K_DATA_END);
28
	kdata_end = .;
27
	kdata_end = .;
29
    }
28
    }
30
 
29
 
31
    . = ABSOLUTE(hardcoded_ktext_size);
30
    . = ABSOLUTE(hardcoded_ktext_size);
32
    .patch_1 : {
31
    .patch_1 : {
33
        LONG(ktext_end - ktext_start - (delta_end - delta_start));
32
        LONG(ktext_end - ktext_start - (delta_end - delta_start));
34
    }
33
    }
35
 
34
 
36
    . = ABSOLUTE(hardcoded_kdata_size);
35
    . = ABSOLUTE(hardcoded_kdata_size);
37
    .patch_2 : {
36
    .patch_2 : {
38
        LONG(kdata_end - kdata_start + (delta_end - delta_start));
37
        LONG(kdata_end - kdata_start + (delta_end - delta_start));
39
    }
38
    }
40
 
39
 
41
    . = ABSOLUTE(hardcoded_load_address);
40
    . = ABSOLUTE(hardcoded_load_address);
42
    .patch_3 : {
41
    .patch_3 : {
43
        LONG(0x8000);
42
        LONG(0x8000);
44
    }
43
    }
45
 
44
 
46
}
45
}
47
 
46