Subversion Repositories HelenOS-historic

Rev

Rev 36 | Rev 39 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
37 jermar 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
 
35 jermar 10
OUTPUT_FORMAT(elf64-ia64-little)
11
ENTRY(kernel_image_start)
12
 
13
SECTIONS {
36 jermar 14
    .image 0x0000000000001000: AT (0x0000000000001000) { 
37 jermar 15
	    ktext_start = .;
16
	    *(.text .text.* )
17
	    ktext_end = .;
18
	    kdata_start = .;
35 jermar 19
	    *(.interp)
20
	    *(.hash)
21
	    *(.dynsym)
22
	    *(.dynstr)
23
	    *(.rel.init)
24
	    *(.rela.init)
25
	    *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
26
	    *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
27
	    *(.rel.fini)
28
	    *(.rela.fini)
29
	    *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
30
	    *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
31
	    *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
32
	    *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
33
	    *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
34
	    *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
35
	    *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
36
	    *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
37
	    *(.rel.got)
38
	    *(.rela.got)
39
	    *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
40
	    *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
41
	    *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
42
	    *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
43
	    *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
44
	    *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
45
	    *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
46
	    *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
47
	    *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
48
	    *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
49
	    *(.rel.plt)
50
	    *(.rela.plt)
51
	    *(.rela.IA_64.pltoff)
52
	    *(.init)
53
	    *(.plt)
54
	    *(.fini)
55
	    *(.rodata .rodata.* .gnu.linkonce.r.*)
56
	    *(.rodata1)
57
	    *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
58
	    *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
59
	    *(.opd)
60
	    *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*)
61
	    *(.IA_64.unwind* .gnu.linkonce.ia64unw.*)
62
	    *(.eh_frame_hdr)
63
	    *(.preinit_array)
64
	    *(.init_array)
65
	    *(.fini_array)
66
	    *(.data .data.* .gnu.linkonce.d.*)
67
	    *(.data1)
68
	    *(.tdata .tdata.* .gnu.linkonce.td.*)
69
	    *(.tcommon)
70
	    *(.eh_frame)
71
	    *(.gcc_except_table)
72
	    *(.dynamic)
73
	    *(.jcr)
74
	    *(.got)
75
	    *(.IA_64.pltoff)
76
	    *(.sdata .sdata.* .gnu.linkonce.s.*)
77
	    *(.dynsbss)
78
	    *(.sbss .sbss.* .gnu.linkonce.sb.*)
79
	    *(.scommon)
80
	    *(.dynbss)
81
	    *(.bss .bss.* .gnu.linkonce.b.*)
82
	    *(COMMON)
37 jermar 83
	    kdata_end = .;
35 jermar 84
    }
37 jermar 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);
99
    }
100
 
35 jermar 101
}