Subversion Repositories HelenOS

Rev

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

Rev 36 Rev 37
-
 
1
/*
-
 
2
 *  IA-64 linker script
-
 
3
 *
-
 
4
 *  It is ELF format, but its only section looks like this:
-
 
5
 *  kernel text
-
 
6
 *  kernel data
-
 
7
 *
-
 
8
 */
-
 
9
 
1
OUTPUT_FORMAT(elf64-ia64-little)
10
OUTPUT_FORMAT(elf64-ia64-little)
2
ENTRY(kernel_image_start)
11
ENTRY(kernel_image_start)
3
 
12
 
4
SECTIONS {
13
SECTIONS {
5
    .image 0x0000000000001000: AT (0x0000000000001000) { 
14
    .image 0x0000000000001000: AT (0x0000000000001000) { 
-
 
15
	    ktext_start = .;
6
	    *(.text .stub .text.* .gnu.linkonce.t.*)
16
	    *(.text .text.* )
-
 
17
	    ktext_end = .;
-
 
18
	    kdata_start = .;
7
	    *(.interp)
19
	    *(.interp)
8
	    *(.hash)
20
	    *(.hash)
9
	    *(.dynsym)
21
	    *(.dynsym)
10
	    *(.dynstr)
22
	    *(.dynstr)
11
	    *(.rel.init)
23
	    *(.rel.init)
12
	    *(.rela.init)
24
	    *(.rela.init)
13
	    *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
25
	    *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
14
	    *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
26
	    *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
15
	    *(.rel.fini)
27
	    *(.rel.fini)
16
	    *(.rela.fini)
28
	    *(.rela.fini)
17
	    *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
29
	    *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
18
	    *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
30
	    *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
19
	    *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
31
	    *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
20
	    *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
32
	    *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
21
	    *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
33
	    *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
22
	    *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
34
	    *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
23
	    *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
35
	    *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
24
	    *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
36
	    *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
25
	    *(.rel.got)
37
	    *(.rel.got)
26
	    *(.rela.got)
38
	    *(.rela.got)
27
	    *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
39
	    *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
28
	    *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
40
	    *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
29
	    *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
41
	    *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
30
	    *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
42
	    *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
31
	    *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
43
	    *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
32
	    *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
44
	    *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
33
	    *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
45
	    *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
34
	    *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
46
	    *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
35
	    *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
47
	    *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
36
	    *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
48
	    *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
37
	    *(.rel.plt)
49
	    *(.rel.plt)
38
	    *(.rela.plt)
50
	    *(.rela.plt)
39
	    *(.rela.IA_64.pltoff)
51
	    *(.rela.IA_64.pltoff)
40
	    *(.init)
52
	    *(.init)
41
	    *(.plt)
53
	    *(.plt)
42
	    *(.fini)
54
	    *(.fini)
43
	    *(.rodata .rodata.* .gnu.linkonce.r.*)
55
	    *(.rodata .rodata.* .gnu.linkonce.r.*)
44
	    *(.rodata1)
56
	    *(.rodata1)
45
	    *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
57
	    *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
46
	    *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
58
	    *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
47
	    *(.opd)
59
	    *(.opd)
48
	    *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*)
60
	    *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*)
49
	    *(.IA_64.unwind* .gnu.linkonce.ia64unw.*)
61
	    *(.IA_64.unwind* .gnu.linkonce.ia64unw.*)
50
	    *(.eh_frame_hdr)
62
	    *(.eh_frame_hdr)
51
	    *(.preinit_array)
63
	    *(.preinit_array)
52
	    *(.init_array)
64
	    *(.init_array)
53
	    *(.fini_array)
65
	    *(.fini_array)
54
	    *(.data .data.* .gnu.linkonce.d.*)
66
	    *(.data .data.* .gnu.linkonce.d.*)
55
	    *(.data1)
67
	    *(.data1)
56
	    *(.tdata .tdata.* .gnu.linkonce.td.*)
68
	    *(.tdata .tdata.* .gnu.linkonce.td.*)
57
	    *(.tcommon)
69
	    *(.tcommon)
58
	    *(.eh_frame)
70
	    *(.eh_frame)
59
	    *(.gcc_except_table)
71
	    *(.gcc_except_table)
60
	    *(.dynamic)
72
	    *(.dynamic)
61
	    *(.jcr)
73
	    *(.jcr)
62
	    *(.got)
74
	    *(.got)
63
	    *(.IA_64.pltoff)
75
	    *(.IA_64.pltoff)
64
	    *(.sdata .sdata.* .gnu.linkonce.s.*)
76
	    *(.sdata .sdata.* .gnu.linkonce.s.*)
65
	    *(.dynsbss)
77
	    *(.dynsbss)
66
	    *(.sbss .sbss.* .gnu.linkonce.sb.*)
78
	    *(.sbss .sbss.* .gnu.linkonce.sb.*)
67
	    *(.scommon)
79
	    *(.scommon)
68
	    *(.dynbss)
80
	    *(.dynbss)
69
	    *(.bss .bss.* .gnu.linkonce.b.*)
81
	    *(.bss .bss.* .gnu.linkonce.b.*)
70
	    *(COMMON)
82
	    *(COMMON)
-
 
83
	    kdata_end = .;
-
 
84
    }
-
 
85
 
-
 
86
    . = ABSOLUTE(hardcoded_ktext_size);
-
 
87
    .patch_1 : {
-
 
88
        LONG(ktext_end - ktext_start);
-
 
89
    }
-
 
90
 
-
 
91
    . = ABSOLUTE(hardcoded_kdata_size);
-
 
92
    .patch_2 : {
-
 
93
        LONG(kdata_end - kdata_start);
-
 
94
    }
-
 
95
 
-
 
96
    . = ABSOLUTE(hardcoded_load_address);
-
 
97
    .patch_3 : {
-
 
98
        QUAD(0x0000000000001000);
71
    }
99
    }
-
 
100
 
72
}
101
}
73
 
102