diff options
author | Roland McGrath <roland@redhat.com> | 2007-07-19 04:48:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-19 13:04:47 -0400 |
commit | cbe87121f1545bb3e98ae114519bf0c4db27d6ab (patch) | |
tree | 5654badf0076dad480ae5832be943930d1cfe6a6 | |
parent | b38bd33a6bf5095736620ca8e85fe61820c2d312 (diff) |
i386: Put allocated ELF notes in read-only data segment
This changes the i386 linker script and the asm-generic macro it uses so that
ELF note sections with SHF_ALLOC set are linked into the kernel image along
with other read-only data. The PT_NOTE also points to their location.
This paves the way for putting useful build-time information into ELF notes
that can be found easily later in a kernel memory dump.
Signed-off-by: Roland McGrath <roland@redhat.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/i386/kernel/vmlinux.lds.S | 6 | ||||
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index 4dc44b8007cc..7d72cce00529 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S | |||
@@ -60,7 +60,9 @@ SECTIONS | |||
60 | __stop___ex_table = .; | 60 | __stop___ex_table = .; |
61 | } | 61 | } |
62 | 62 | ||
63 | BUG_TABLE | 63 | NOTES :text :note |
64 | |||
65 | BUG_TABLE :text | ||
64 | 66 | ||
65 | . = ALIGN(4); | 67 | . = ALIGN(4); |
66 | .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) { | 68 | .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) { |
@@ -208,6 +210,4 @@ SECTIONS | |||
208 | STABS_DEBUG | 210 | STABS_DEBUG |
209 | 211 | ||
210 | DWARF_DEBUG | 212 | DWARF_DEBUG |
211 | |||
212 | NOTES | ||
213 | } | 213 | } |
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index a2b09ed852ad..0240e0506a07 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -224,7 +224,11 @@ | |||
224 | } | 224 | } |
225 | 225 | ||
226 | #define NOTES \ | 226 | #define NOTES \ |
227 | .notes : { *(.note.*) } :note | 227 | .notes : AT(ADDR(.notes) - LOAD_OFFSET) { \ |
228 | VMLINUX_SYMBOL(__start_notes) = .; \ | ||
229 | *(.note.*) \ | ||
230 | VMLINUX_SYMBOL(__stop_notes) = .; \ | ||
231 | } | ||
228 | 232 | ||
229 | #define INITCALLS \ | 233 | #define INITCALLS \ |
230 | *(.initcall0.init) \ | 234 | *(.initcall0.init) \ |