diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2007-05-02 13:27:17 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2007-05-02 13:27:17 -0400 |
commit | 03df4f6ee997589a84d5f9492c6419183724c710 (patch) | |
tree | 94b79a8b18bab6032ce8e241c7a56fe007cd587c | |
parent | 21564fd2a3deb48200b595332f9ed4c9f311f2a7 (diff) |
[PATCH] i386: Clean up ELF note generation
Three cleanups:
1: ELF notes are never mapped, so there's no need to have any access
flags in their phdr.
2: When generating them from asm, tell the assembler to use a SHT_NOTE
section type. There doesn't seem to be a way to do this from C.
3: Use ANSI rather than traditional cpp behaviour to stringify the
macro argument.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Eric W. Biederman <ebiederm@xmission.com>
-rw-r--r-- | arch/i386/kernel/vmlinux.lds.S | 2 | ||||
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 2 | ||||
-rw-r--r-- | include/linux/elfnote.h | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index 568caca87715..23e8614edeee 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S | |||
@@ -30,7 +30,7 @@ jiffies = jiffies_64; | |||
30 | PHDRS { | 30 | PHDRS { |
31 | text PT_LOAD FLAGS(5); /* R_E */ | 31 | text PT_LOAD FLAGS(5); /* R_E */ |
32 | data PT_LOAD FLAGS(7); /* RWE */ | 32 | data PT_LOAD FLAGS(7); /* RWE */ |
33 | note PT_NOTE FLAGS(4); /* R__ */ | 33 | note PT_NOTE FLAGS(0); /* ___ */ |
34 | } | 34 | } |
35 | SECTIONS | 35 | SECTIONS |
36 | { | 36 | { |
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 9fcc8d9fbb14..f3806a74c478 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -208,7 +208,7 @@ | |||
208 | } | 208 | } |
209 | 209 | ||
210 | #define NOTES \ | 210 | #define NOTES \ |
211 | .notes : { *(.note.*) } :note | 211 | .notes : { *(.note.*) } :note |
212 | 212 | ||
213 | #define INITCALLS \ | 213 | #define INITCALLS \ |
214 | *(.initcall0.init) \ | 214 | *(.initcall0.init) \ |
diff --git a/include/linux/elfnote.h b/include/linux/elfnote.h index 67396db141e8..9a1e0674e56c 100644 --- a/include/linux/elfnote.h +++ b/include/linux/elfnote.h | |||
@@ -39,12 +39,12 @@ | |||
39 | * ELFNOTE(XYZCo, 12, .long, 0xdeadbeef) | 39 | * ELFNOTE(XYZCo, 12, .long, 0xdeadbeef) |
40 | */ | 40 | */ |
41 | #define ELFNOTE(name, type, desctype, descdata) \ | 41 | #define ELFNOTE(name, type, desctype, descdata) \ |
42 | .pushsection .note.name ; \ | 42 | .pushsection .note.name, "",@note ; \ |
43 | .align 4 ; \ | 43 | .align 4 ; \ |
44 | .long 2f - 1f /* namesz */ ; \ | 44 | .long 2f - 1f /* namesz */ ; \ |
45 | .long 4f - 3f /* descsz */ ; \ | 45 | .long 4f - 3f /* descsz */ ; \ |
46 | .long type ; \ | 46 | .long type ; \ |
47 | 1:.asciz "name" ; \ | 47 | 1:.asciz #name ; \ |
48 | 2:.align 4 ; \ | 48 | 2:.align 4 ; \ |
49 | 3:desctype descdata ; \ | 49 | 3:desctype descdata ; \ |
50 | 4:.align 4 ; \ | 50 | 4:.align 4 ; \ |