diff options
author | Roland McGrath <roland@redhat.com> | 2007-10-15 23:40:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 13:01:50 -0400 |
commit | 1a43be74a7597a1a1fdef73350bb143dd634ae07 (patch) | |
tree | 29f0151911a503a7ecc5e27a6f77a0eadc2b3e4b | |
parent | 1e89a5e15a2c88b3fd1ed3fa17fd767efe44727a (diff) |
ia64 vDSO: linker script indentation
This cleans up the formatting in the vDSO linker script, mostly just the
use of whitespace. It's intended to approximate the kernel standard
conventions for indenting C, treating elements of the linker script about
like initialized variable definitions.
Signed-off-by: Roland McGrath <roland@redhat.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/ia64/kernel/gate.lds.S | 135 |
1 files changed, 72 insertions, 63 deletions
diff --git a/arch/ia64/kernel/gate.lds.S b/arch/ia64/kernel/gate.lds.S index 6d198339bf85..44817d97ab43 100644 --- a/arch/ia64/kernel/gate.lds.S +++ b/arch/ia64/kernel/gate.lds.S | |||
@@ -1,7 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * Linker script for gate DSO. The gate pages are an ELF shared object prelinked to its | 2 | * Linker script for gate DSO. The gate pages are an ELF shared object |
3 | * virtual address, with only one read-only segment and one execute-only segment (both fit | 3 | * prelinked to its virtual address, with only one read-only segment and |
4 | * in one page). This script controls its layout. | 4 | * one execute-only segment (both fit in one page). This script controls |
5 | * its layout. | ||
5 | */ | 6 | */ |
6 | 7 | ||
7 | 8 | ||
@@ -9,72 +10,80 @@ | |||
9 | 10 | ||
10 | SECTIONS | 11 | SECTIONS |
11 | { | 12 | { |
12 | . = GATE_ADDR + SIZEOF_HEADERS; | 13 | . = GATE_ADDR + SIZEOF_HEADERS; |
13 | 14 | ||
14 | .hash : { *(.hash) } :readable | 15 | .hash : { *(.hash) } :readable |
15 | .gnu.hash : { *(.gnu.hash) } | 16 | .gnu.hash : { *(.gnu.hash) } |
16 | .dynsym : { *(.dynsym) } | 17 | .dynsym : { *(.dynsym) } |
17 | .dynstr : { *(.dynstr) } | 18 | .dynstr : { *(.dynstr) } |
18 | .gnu.version : { *(.gnu.version) } | 19 | .gnu.version : { *(.gnu.version) } |
19 | .gnu.version_d : { *(.gnu.version_d) } | 20 | .gnu.version_d : { *(.gnu.version_d) } |
20 | .gnu.version_r : { *(.gnu.version_r) } | 21 | .gnu.version_r : { *(.gnu.version_r) } |
21 | .dynamic : { *(.dynamic) } :readable :dynamic | 22 | |
22 | 23 | .dynamic : { *(.dynamic) } :readable :dynamic | |
23 | /* | 24 | |
24 | * This linker script is used both with -r and with -shared. For the layouts to match, | 25 | /* |
25 | * we need to skip more than enough space for the dynamic symbol table et al. If this | 26 | * This linker script is used both with -r and with -shared. For |
26 | * amount is insufficient, ld -shared will barf. Just increase it here. | 27 | * the layouts to match, we need to skip more than enough space for |
27 | */ | 28 | * the dynamic symbol table et al. If this amount is insufficient, |
28 | . = GATE_ADDR + 0x500; | 29 | * ld -shared will barf. Just increase it here. |
29 | 30 | */ | |
30 | .data.patch : { | 31 | . = GATE_ADDR + 0x500; |
31 | __start_gate_mckinley_e9_patchlist = .; | 32 | |
32 | *(.data.patch.mckinley_e9) | 33 | .data.patch : { |
33 | __end_gate_mckinley_e9_patchlist = .; | 34 | __start_gate_mckinley_e9_patchlist = .; |
34 | 35 | *(.data.patch.mckinley_e9) | |
35 | __start_gate_vtop_patchlist = .; | 36 | __end_gate_mckinley_e9_patchlist = .; |
36 | *(.data.patch.vtop) | 37 | |
37 | __end_gate_vtop_patchlist = .; | 38 | __start_gate_vtop_patchlist = .; |
38 | 39 | *(.data.patch.vtop) | |
39 | __start_gate_fsyscall_patchlist = .; | 40 | __end_gate_vtop_patchlist = .; |
40 | *(.data.patch.fsyscall_table) | 41 | |
41 | __end_gate_fsyscall_patchlist = .; | 42 | __start_gate_fsyscall_patchlist = .; |
42 | 43 | *(.data.patch.fsyscall_table) | |
43 | __start_gate_brl_fsys_bubble_down_patchlist = .; | 44 | __end_gate_fsyscall_patchlist = .; |
44 | *(.data.patch.brl_fsys_bubble_down) | 45 | |
45 | __end_gate_brl_fsys_bubble_down_patchlist = .; | 46 | __start_gate_brl_fsys_bubble_down_patchlist = .; |
46 | } :readable | 47 | *(.data.patch.brl_fsys_bubble_down) |
47 | .IA_64.unwind_info : { *(.IA_64.unwind_info*) } | 48 | __end_gate_brl_fsys_bubble_down_patchlist = .; |
48 | .IA_64.unwind : { *(.IA_64.unwind*) } :readable :unwind | 49 | } :readable |
50 | |||
51 | .IA_64.unwind_info : { *(.IA_64.unwind_info*) } | ||
52 | .IA_64.unwind : { *(.IA_64.unwind*) } :readable :unwind | ||
49 | #ifdef HAVE_BUGGY_SEGREL | 53 | #ifdef HAVE_BUGGY_SEGREL |
50 | .text (GATE_ADDR + PAGE_SIZE) : { *(.text) *(.text.*) } :readable | 54 | .text (GATE_ADDR + PAGE_SIZE) : { *(.text) *(.text.*) } :readable |
51 | #else | 55 | #else |
52 | . = ALIGN (PERCPU_PAGE_SIZE) + (. & (PERCPU_PAGE_SIZE - 1)); | 56 | . = ALIGN(PERCPU_PAGE_SIZE) + (. & (PERCPU_PAGE_SIZE - 1)); |
53 | .text : { *(.text) *(.text.*) } :epc | 57 | .text : { *(.text) *(.text.*) } :epc |
54 | #endif | 58 | #endif |
55 | 59 | ||
56 | /DISCARD/ : { | 60 | /DISCARD/ : { |
57 | *(.got.plt) *(.got) | 61 | *(.got.plt) *(.got) |
58 | *(.data .data.* .gnu.linkonce.d.*) | 62 | *(.data .data.* .gnu.linkonce.d.*) |
59 | *(.dynbss) | 63 | *(.dynbss) |
60 | *(.bss .bss.* .gnu.linkonce.b.*) | 64 | *(.bss .bss.* .gnu.linkonce.b.*) |
61 | *(__ex_table) | 65 | *(__ex_table) |
62 | *(__mca_table) | 66 | *(__mca_table) |
63 | } | 67 | } |
64 | } | 68 | } |
65 | 69 | ||
66 | /* | 70 | /* |
71 | * ld does not recognize this name token; use the constant. | ||
72 | */ | ||
73 | #define PT_IA_64_UNWIND 0x70000001 | ||
74 | |||
75 | /* | ||
67 | * We must supply the ELF program headers explicitly to get just one | 76 | * We must supply the ELF program headers explicitly to get just one |
68 | * PT_LOAD segment, and set the flags explicitly to make segments read-only. | 77 | * PT_LOAD segment, and set the flags explicitly to make segments read-only. |
69 | */ | 78 | */ |
70 | PHDRS | 79 | PHDRS |
71 | { | 80 | { |
72 | readable PT_LOAD FILEHDR PHDRS FLAGS(4); /* PF_R */ | 81 | readable PT_LOAD FILEHDR PHDRS FLAGS(4); /* PF_R */ |
73 | #ifndef HAVE_BUGGY_SEGREL | 82 | #ifndef HAVE_BUGGY_SEGREL |
74 | epc PT_LOAD FILEHDR PHDRS FLAGS(1); /* PF_X */ | 83 | epc PT_LOAD FILEHDR PHDRS FLAGS(1); /* PF_X */ |
75 | #endif | 84 | #endif |
76 | dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ | 85 | dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ |
77 | unwind 0x70000001; /* PT_IA_64_UNWIND, but ld doesn't match the name */ | 86 | unwind PT_IA_64_UNWIND; |
78 | } | 87 | } |
79 | 88 | ||
80 | /* | 89 | /* |
@@ -82,14 +91,14 @@ PHDRS | |||
82 | */ | 91 | */ |
83 | VERSION | 92 | VERSION |
84 | { | 93 | { |
85 | LINUX_2.5 { | 94 | LINUX_2.5 { |
86 | global: | 95 | global: |
87 | __kernel_syscall_via_break; | 96 | __kernel_syscall_via_break; |
88 | __kernel_syscall_via_epc; | 97 | __kernel_syscall_via_epc; |
89 | __kernel_sigtramp; | 98 | __kernel_sigtramp; |
90 | 99 | ||
91 | local: *; | 100 | local: *; |
92 | }; | 101 | }; |
93 | } | 102 | } |
94 | 103 | ||
95 | /* The ELF entry point can be used to set the AT_SYSINFO value. */ | 104 | /* The ELF entry point can be used to set the AT_SYSINFO value. */ |