* [PATCH] use elfnote.h to generate vsyscall notes
@ 2007-04-28 2:21 Jeremy Fitzhardinge
2007-04-28 7:16 ` Roland McGrath
0 siblings, 1 reply; 4+ messages in thread
From: Jeremy Fitzhardinge @ 2007-04-28 2:21 UTC (permalink / raw)
To: Andi Kleen
Cc: Andrew Morton, Roland McGrath, Eric W. Biederman,
Linux Kernel Mailing List
Use existing elfnote.h to generate vsyscall notes, rather than doing
it locally. Changes elfnote.h a bit to suite, since this is the first
asm user, and it wasn't quite right.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Roland McGrath <roland@redhat.com>
---
arch/i386/kernel/vsyscall-note.S | 23 ++++++-----------------
include/linux/elfnote.h | 18 +++++++++++++-----
2 files changed, 19 insertions(+), 22 deletions(-)
===================================================================
--- a/arch/i386/kernel/vsyscall-note.S
+++ b/arch/i386/kernel/vsyscall-note.S
@@ -3,23 +3,12 @@
* Here we can supply some information useful to userland.
*/
-#include <linux/uts.h>
#include <linux/version.h>
+#include <linux/elfnote.h>
-#define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type) \
- .section name, flags; \
- .balign 4; \
- .long 1f - 0f; /* name length */ \
- .long 3f - 2f; /* data length */ \
- .long type; /* note type */ \
-0: .asciz vendor; /* vendor name */ \
-1: .balign 4; \
-2:
-
-#define ASM_ELF_NOTE_END \
-3: .balign 4; /* pad out section */ \
- .previous
-
- ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
+/* Ideally this would use UTS_NAME, but using a quoted string here
+ doesn't work. Remember to change this when changing the
+ kernel's name. */
+ELFNOTE_START(Linux, 0, "a")
.long LINUX_VERSION_CODE
- ASM_ELF_NOTE_END
+ELFNOTE_END
===================================================================
--- a/include/linux/elfnote.h
+++ b/include/linux/elfnote.h
@@ -38,17 +38,25 @@
* e.g. ELFNOTE(XYZCo, 42, .asciz, "forty-two")
* ELFNOTE(XYZCo, 12, .long, 0xdeadbeef)
*/
-#define ELFNOTE(name, type, desctype, descdata) \
-.pushsection .note.name, "",@note ; \
+#define ELFNOTE_START(name, type, flags) \
+.pushsection .note.name, flags,@note ; \
.align 4 ; \
.long 2f - 1f /* namesz */ ; \
- .long 4f - 3f /* descsz */ ; \
+ .long 4484f - 3f /* descsz */ ; \
.long type ; \
1:.asciz #name ; \
2:.align 4 ; \
-3:desctype descdata ; \
-4:.align 4 ; \
+3:
+
+#define ELFNOTE_END \
+4484:.align 4 ; \
.popsection ;
+
+#define ELFNOTE(name, type, desc) \
+ ELFNOTE_START(name, type, "") \
+ desc ; \
+ ELFNOTE_END
+
#else /* !__ASSEMBLER__ */
#include <linux/elf.h>
/*
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] use elfnote.h to generate vsyscall notes
2007-04-28 2:21 [PATCH] use elfnote.h to generate vsyscall notes Jeremy Fitzhardinge
@ 2007-04-28 7:16 ` Roland McGrath
2007-04-28 7:29 ` Jeremy Fitzhardinge
0 siblings, 1 reply; 4+ messages in thread
From: Roland McGrath @ 2007-04-28 7:16 UTC (permalink / raw)
To: Jeremy Fitzhardinge
Cc: Andi Kleen, Andrew Morton, Eric W. Biederman,
Linux Kernel Mailing List
Please don't change the section name that way. I don't see why the macros
should do differently than what was in vsyscall-note.S to begin with.
Thanks,
Roland
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] use elfnote.h to generate vsyscall notes
2007-04-28 7:16 ` Roland McGrath
@ 2007-04-28 7:29 ` Jeremy Fitzhardinge
2007-04-28 19:01 ` Roland McGrath
0 siblings, 1 reply; 4+ messages in thread
From: Jeremy Fitzhardinge @ 2007-04-28 7:29 UTC (permalink / raw)
To: Roland McGrath
Cc: Andi Kleen, Andrew Morton, Eric W. Biederman,
Linux Kernel Mailing List
Roland McGrath wrote:
> Please don't change the section name that way.
Does the section name matter? I've been operating under the assumption
that it doesn't, other that needing to start with .note. Using
.note.vendor means that all the vendor's notes will get grouped
properly, but other than that it seems much of a muchness.
> I don't see why the macros
> should do differently than what was in vsyscall-note.S to begin with.
>
Well, passing the section name seems redundant unless its actually
needed. In this case it will go from .note.kernel-version to
.note.Linux, but it will end up being called .note in the final vdso
regardless.
J
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-04-28 19:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-28 2:21 [PATCH] use elfnote.h to generate vsyscall notes Jeremy Fitzhardinge
2007-04-28 7:16 ` Roland McGrath
2007-04-28 7:29 ` Jeremy Fitzhardinge
2007-04-28 19:01 ` Roland McGrath
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox