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 |