linux/include
Ian Campbell 5091e74684 [PATCH] Translate asm version of ELFNOTE macro into preprocessor macro
I've come across some problems with the assembly version of the ELFNOTE
macro currently in -mm. (in
x86-put-note-sections-into-a-pt_note-segment-in-vmlinux.patch)

The first is that older gas does not support :varargs in .macro
definitions (in my testing 2.17 does while 2.15 does not, I don't know
when it became supported). The Changes file says binutils >= 2.12 so I
think we need to avoid using it. There are no other uses in mainline or
-mm. Old gas appears to just ignore it so you get "too many arguments"
type errors.

Secondly it seems that passing strings as arguments to assembler macros
is broken without varargs. It looks like they get unquoted or each
character is treated as a separate argument or something and this causes
all manner of grief. I think this is because of the use of -traditional
when compiling assembly files.

Therefore I have translated the assembler macro into a pre-processor
macro.

I added the desctype as a separate argument instead of including it with
the descdata as the previous version did since -traditional means the
ELFNOTE definition after the #else needs to have the same number of
arguments (I think so anyway, the -traditional CPP semantics are pretty
fscking strange!).

With this patch I am able to define elfnotes in assembly like this with
both old and new assemblers.

	ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS,       .asciz, "linux")
	ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION,  .asciz, "2.6")
	ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION,    .asciz, "xen-3.0")
	ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE,      .long,  __PAGE_OFFSET)

Which seems reasonable enough.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
Acked-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-26 08:48:56 -07:00
..
acpi Pull acpi_os_allocate into test branch 2006-07-10 02:39:47 -04:00
asm-alpha [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-arm [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-arm26 [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-avr32 [PATCH] AVR32 MTD: Static Memory Controller driver 2006-09-26 08:48:54 -07:00
asm-cris [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-frv [PATCH] FRV: Optimise ffs() 2006-09-26 08:48:54 -07:00
asm-generic [PATCH] x86: put .note.* sections into a PT_NOTE segment in vmlinux 2006-09-26 08:48:55 -07:00
asm-h8300 Fix H8300 exported headers. 2006-09-21 08:51:43 +01:00
asm-i386 [PATCH] x86: make __FIXADDR_TOP variable to allow it to make space for a hypervisor 2006-09-26 08:48:55 -07:00
asm-ia64 [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-m32r [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-m68k [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-m68knommu Fix m68knommu exported headers 2006-09-21 08:50:36 +01:00
asm-mips [PATCH] Alchemy: Delete unused pt_regs * argument from au1xxx_dbdma_chan_alloc 2006-09-26 08:48:54 -07:00
asm-parisc [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-powerpc [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-ppc [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-s390 [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-sh [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-sh64 [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-sparc [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-sparc64 [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-um [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-v850 Fix v850 exported headers 2006-09-21 09:05:25 +01:00
asm-x86_64 [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
asm-xtensa [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
crypto [CRYPTO] digest: Added user API for new hash type 2006-09-21 11:46:17 +10:00
keys
linux [PATCH] Translate asm version of ELFNOTE macro into preprocessor macro 2006-09-26 08:48:56 -07:00
math-emu
media V4L/DVB (4605): Fixes an issue with V4L1 and make headers-install 2006-09-10 13:45:55 -03:00
mtd Merge git://git.infradead.org/~dwmw2/hdroneline 2006-09-22 12:56:22 -07:00
net [NetLabel]: rework the Netlink attribute handling (part 1) 2006-09-25 15:56:09 -07:00
pcmcia
rdma IB/sa: fix ib_sa_selector names 2006-09-22 15:22:55 -07:00
rxrpc
scsi [PATCH] SCSI gfp_t annotations 2006-09-24 20:07:49 -07:00
sound [ALSA] ak4xxx - Remove bogus IPGA controls 2006-09-23 10:46:55 +02:00
video [HEADERS] One line per header in Kbuild files to reduce conflicts 2006-09-19 12:43:58 +01:00
Kbuild [HEADERS] One line per header in Kbuild files to reduce conflicts 2006-09-19 12:43:58 +01:00