diff options
| author | Helge Deller <deller@gmx.de> | 2009-11-28 15:33:11 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-30 11:20:24 -0500 |
| commit | 33a932d14323b957a4e17a6c8428d3f048a30822 (patch) | |
| tree | e8006fb0418b17d0bf7e003aa28467f04081672d | |
| parent | a8a8a669ea13d792296737505adc43ccacf3a648 (diff) | |
parisc: fix unwind with recent gcc versions
kernel unwinding is broken with gcc >= 4.x. Part of the problem is that
binutils seems very sensitive to where the unwind information is stored.
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | arch/parisc/kernel/unwind.c | 2 | ||||
| -rw-r--r-- | arch/parisc/kernel/vmlinux.lds.S | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c index 69dad5a850a8..a36799e85693 100644 --- a/arch/parisc/kernel/unwind.c +++ b/arch/parisc/kernel/unwind.c | |||
| @@ -28,7 +28,7 @@ | |||
| 28 | #define dbg(x...) | 28 | #define dbg(x...) |
| 29 | #endif | 29 | #endif |
| 30 | 30 | ||
| 31 | #define KERNEL_START (KERNEL_BINARY_TEXT_START - 0x1000) | 31 | #define KERNEL_START (KERNEL_BINARY_TEXT_START) |
| 32 | 32 | ||
| 33 | extern struct unwind_table_entry __start___unwind[]; | 33 | extern struct unwind_table_entry __start___unwind[]; |
| 34 | extern struct unwind_table_entry __stop___unwind[]; | 34 | extern struct unwind_table_entry __stop___unwind[]; |
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index fda4baa059b5..9dab4a4e09f7 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S | |||
| @@ -78,9 +78,6 @@ SECTIONS | |||
| 78 | */ | 78 | */ |
| 79 | . = ALIGN(PAGE_SIZE); | 79 | . = ALIGN(PAGE_SIZE); |
| 80 | data_start = .; | 80 | data_start = .; |
| 81 | EXCEPTION_TABLE(16) | ||
| 82 | |||
| 83 | NOTES | ||
| 84 | 81 | ||
| 85 | /* unwind info */ | 82 | /* unwind info */ |
| 86 | .PARISC.unwind : { | 83 | .PARISC.unwind : { |
| @@ -89,6 +86,9 @@ SECTIONS | |||
| 89 | __stop___unwind = .; | 86 | __stop___unwind = .; |
| 90 | } | 87 | } |
| 91 | 88 | ||
| 89 | EXCEPTION_TABLE(16) | ||
| 90 | NOTES | ||
| 91 | |||
| 92 | /* Data */ | 92 | /* Data */ |
| 93 | RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) | 93 | RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) |
| 94 | 94 | ||
