diff options
| author | Jeff Dike <jdike@addtoit.com> | 2007-08-31 02:56:17 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-08-31 04:42:22 -0400 |
| commit | c7ec16da5adc1c1b341b2a83bde7add17dcf811a (patch) | |
| tree | 4e11748671da5c83c894f1fe96ce999f33b52e7d /arch/um/kernel | |
| parent | 641916881322a2dee5b120d509a3bdd05a502510 (diff) | |
uml: fix linker script alignment bugs
Fix a class of bugs in the UML linker scripts which caused section boundary
variables to sometimes not line up with their sections.
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/kernel')
| -rw-r--r-- | arch/um/kernel/dyn.lds.S | 12 | ||||
| -rw-r--r-- | arch/um/kernel/uml.lds.S | 11 |
2 files changed, 13 insertions, 10 deletions
diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S index 24547741b205..41850906116e 100644 --- a/arch/um/kernel/dyn.lds.S +++ b/arch/um/kernel/dyn.lds.S | |||
| @@ -71,11 +71,13 @@ SECTIONS | |||
| 71 | *(.gnu.warning) | 71 | *(.gnu.warning) |
| 72 | 72 | ||
| 73 | . = ALIGN(4096); | 73 | . = ALIGN(4096); |
| 74 | __syscall_stub_start = .; | ||
| 75 | *(.__syscall_stub*) | ||
| 76 | __syscall_stub_end = .; | ||
| 77 | . = ALIGN(4096); | ||
| 78 | } =0x90909090 | 74 | } =0x90909090 |
| 75 | . = ALIGN(4096); | ||
| 76 | .syscall_stub : { | ||
| 77 | __syscall_stub_start = .; | ||
| 78 | *(.__syscall_stub*) | ||
| 79 | __syscall_stub_end = .; | ||
| 80 | } | ||
| 79 | .fini : { | 81 | .fini : { |
| 80 | KEEP (*(.fini)) | 82 | KEEP (*(.fini)) |
| 81 | } =0x90909090 | 83 | } =0x90909090 |
| @@ -138,8 +140,8 @@ SECTIONS | |||
| 138 | .got : { *(.got.plt) *(.got) } | 140 | .got : { *(.got.plt) *(.got) } |
| 139 | _edata = .; | 141 | _edata = .; |
| 140 | PROVIDE (edata = .); | 142 | PROVIDE (edata = .); |
| 141 | __bss_start = .; | ||
| 142 | .bss : { | 143 | .bss : { |
| 144 | __bss_start = .; | ||
| 143 | *(.dynbss) | 145 | *(.dynbss) |
| 144 | *(.bss .bss.* .gnu.linkonce.b.*) | 146 | *(.bss .bss.* .gnu.linkonce.b.*) |
| 145 | *(COMMON) | 147 | *(COMMON) |
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S index 307b9373676b..81acdc24348e 100644 --- a/arch/um/kernel/uml.lds.S +++ b/arch/um/kernel/uml.lds.S | |||
| @@ -44,12 +44,13 @@ SECTIONS | |||
| 44 | /* .gnu.warning sections are handled specially by elf32.em. */ | 44 | /* .gnu.warning sections are handled specially by elf32.em. */ |
| 45 | *(.gnu.warning) | 45 | *(.gnu.warning) |
| 46 | *(.gnu.linkonce.t*) | 46 | *(.gnu.linkonce.t*) |
| 47 | } | ||
| 47 | 48 | ||
| 48 | . = ALIGN(4096); | 49 | . = ALIGN(4096); |
| 49 | __syscall_stub_start = .; | 50 | .syscall_stub : { |
| 50 | *(.__syscall_stub*) | 51 | __syscall_stub_start = .; |
| 51 | __syscall_stub_end = .; | 52 | *(.__syscall_stub*) |
| 52 | . = ALIGN(4096); | 53 | __syscall_stub_end = .; |
| 53 | } | 54 | } |
| 54 | 55 | ||
| 55 | #include "asm/common.lds.S" | 56 | #include "asm/common.lds.S" |
