The patch titled Make linux/elf.h safe to be included in assembly files has been added to the -mm tree. Its filename is make-linux-elfh-safe-to-be-included-in-assembly-files.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: Make linux/elf.h safe to be included in assembly files From: Vivek Goyal <vgoyal@xxxxxxxxxx> The motivation for this is that currently we have 512 bytes at the begining of a bzImage that are unused now that we don't have a bootsector there. I plan on putting an ELF header there, and generating it by hand with assebmly data directives to be minimally disrutptive to the current build process. To do that I need the elf magic constants available to my assembly code. Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx> Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx> Cc: Andi Kleen <ak@xxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- include/linux/elf.h | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletion(-) diff -puN include/linux/elf.h~make-linux-elfh-safe-to-be-included-in-assembly-files include/linux/elf.h --- a/include/linux/elf.h~make-linux-elfh-safe-to-be-included-in-assembly-files +++ a/include/linux/elf.h @@ -1,9 +1,11 @@ #ifndef _LINUX_ELF_H #define _LINUX_ELF_H +#include <linux/elf-em.h> + +#ifndef __ASSEMBLY__ #include <linux/types.h> #include <linux/auxvec.h> -#include <linux/elf-em.h> #include <asm/elf.h> #ifndef elf_read_implies_exec @@ -30,6 +32,8 @@ typedef __u32 Elf64_Word; typedef __u64 Elf64_Xword; typedef __s64 Elf64_Sxword; +#endif /* __ASSEMBLY__ */ + /* These constants are for the segment types stored in the image headers */ #define PT_NULL 0 #define PT_LOAD 1 @@ -97,6 +101,8 @@ typedef __s64 Elf64_Sxword; #define STT_COMMON 5 #define STT_TLS 6 +#ifndef __ASSEMBLY__ + #define ELF_ST_BIND(x) ((x) >> 4) #define ELF_ST_TYPE(x) (((unsigned int) x) & 0xf) #define ELF32_ST_BIND(x) ELF_ST_BIND(x) @@ -204,12 +210,16 @@ typedef struct elf64_hdr { Elf64_Half e_shstrndx; } Elf64_Ehdr; +#endif /* __ASSEMBLY__ */ + /* These constants define the permissions on sections in the program header, p_flags. */ #define PF_R 0x4 #define PF_W 0x2 #define PF_X 0x1 +#ifndef __ASSEMBLY__ + typedef struct elf32_phdr{ Elf32_Word p_type; Elf32_Off p_offset; @@ -232,6 +242,8 @@ typedef struct elf64_phdr { Elf64_Xword p_align; /* Segment alignment, file & memory */ } Elf64_Phdr; +#endif /* __ASSEMBLY__ */ + /* sh_type */ #define SHT_NULL 0 #define SHT_PROGBITS 1 @@ -265,6 +277,8 @@ typedef struct elf64_phdr { #define SHN_ABS 0xfff1 #define SHN_COMMON 0xfff2 #define SHN_HIRESERVE 0xffff + +#ifndef __ASSEMBLY__ typedef struct { Elf32_Word sh_name; @@ -292,6 +306,8 @@ typedef struct elf64_shdr { Elf64_Xword sh_entsize; /* Entry size if section holds table */ } Elf64_Shdr; +#endif /* __ASSEMBLY__ */ + #define EI_MAG0 0 /* e_ident[] indexes */ #define EI_MAG1 1 #define EI_MAG2 2 @@ -338,6 +354,8 @@ typedef struct elf64_shdr { #define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */ +#ifndef __ASSEMBLY__ + /* Note header in a PT_NOTE section */ typedef struct elf32_note { Elf32_Word n_namesz; /* Name size */ @@ -368,5 +386,7 @@ extern Elf64_Dyn _DYNAMIC []; #endif +#endif /* __ASSEMBLY__ */ + #endif /* _LINUX_ELF_H */ _ Patches currently in -mm which might be from vgoyal@xxxxxxxxxx are origin.patch i386-distinguish-absolute-symbols.patch i386-align-data-section-to-4k-boundary.patch i386-force-section-size-to-be-non-zero-to-prevent-a-symbol-becoming-absolute.patch i386-define-__pa_symbol.patch i386-setupc-reserve-kernel-memory-starting-from-_text.patch i386-config_physical_start-cleanup.patch make-linux-elfh-safe-to-be-included-in-assembly-files.patch elf-add-elfosabi_standalone-to-elfh.patch kallsyms-generate-relocatable-symbols.patch i386-relocatable-kernel-support.patch i386-implement-config_physical_align.patch i386-boot-add-an-elf-header-to-bzimage.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html