All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@in.ibm.com>
To: linux kernel mailing list <linux-kernel@vger.kernel.org>
Cc: Reloc Kernel List <fastboot@lists.osdl.org>,
	ebiederm@xmission.com, akpm@osdl.org, ak@suse.de,
	horms@verge.net.au, lace@jankratochvil.net, hpa@zytor.com,
	magnus.damm@gmail.com, lwang@redhat.com, dzickus@redhat.com,
	maneesh@in.ibm.com
Subject: [PATCH 7/12] Make linux/elf.h safe to be included in assembly files
Date: Tue, 3 Oct 2006 13:17:55 -0400	[thread overview]
Message-ID: <20061003171755.GG3164@in.ibm.com> (raw)
In-Reply-To: <20061003170032.GA30036@in.ibm.com>



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@xmission.com>
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
---

 include/linux/elf.h |   22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff -puN include/linux/elf.h~Make-linux-elf.h-safe-to-be-included-in-assembly-files include/linux/elf.h
--- linux-2.6.18-git17/include/linux/elf.h~Make-linux-elf.h-safe-to-be-included-in-assembly-files	2006-10-02 13:17:58.000000000 -0400
+++ linux-2.6.18-git17-root/include/linux/elf.h	2006-10-02 14:35:25.000000000 -0400
@@ -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 */
_

  parent reply	other threads:[~2006-10-03 17:32 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-03 17:00 [RFC][PATCH 0/12] ELF Relocatable x86 bzImage (V2) Vivek Goyal
2006-10-03 17:04 ` [PATCH 1/12] i386: Distinguish absolute symbols Vivek Goyal
2006-10-07  6:35   ` Andrew Morton
2006-10-08 16:47     ` Vivek Goyal
2006-10-09  7:35       ` Gerd Hoffmann
2006-10-09 13:49         ` Vivek Goyal
2006-10-03 17:06 ` [PATCH 2/12] i386: align data section to 4K boundary Vivek Goyal
2006-10-04 11:17   ` Andi Kleen
2006-10-04 15:18     ` H. Peter Anvin
2006-10-03 17:09 ` [PATCH 3/12] i386: Force section size to be non-zero to prevent a symbol becoming absolute Vivek Goyal
2006-10-04 11:02   ` Andi Kleen
2006-10-04 14:07     ` Eric W. Biederman
2006-10-04 14:45       ` Vivek Goyal
2006-10-04 16:09   ` Andrew Morton
2006-10-04 16:14     ` Vivek Goyal
2006-10-03 17:10 ` [PATCH 4/12] i386: define __pa_symbol() Vivek Goyal
2006-10-04  8:26   ` Franck Bui-Huu
2006-10-04 19:44     ` Vivek Goyal
2006-10-06 13:10       ` Franck Bui-Huu
2006-10-06 18:33         ` Vivek Goyal
2006-10-03 17:12 ` [PATCH 5/12] i386 setup.c: Reserve kernel memory starting from _text Vivek Goyal
2006-10-03 17:15 ` [PATCH 6/12] i386: CONFIG_PHYSICAL_START cleanup Vivek Goyal
2006-10-03 18:45   ` Dave Hansen
2006-10-03 18:52     ` Vivek Goyal
2006-10-03 18:59     ` Eric W. Biederman
2006-10-03 19:35       ` Vivek Goyal
2006-10-03 17:17 ` Vivek Goyal [this message]
2006-10-03 17:19 ` [PATCH 8/12] elf: Add ELFOSABI_STANDALONE to elf.h Vivek Goyal
2006-10-03 17:21 ` [PATCH 9/12] kallsyms: Generate relocatable symbols Vivek Goyal
2006-10-03 17:22 ` [PATCH 10/12] i386: Relocatable kernel support Vivek Goyal
2006-10-03 17:24 ` [PATCH 11/12] i386: Implement CONFIG_PHYSICAL_ALIGN Vivek Goyal
2006-10-03 17:25 ` [PATCH 12/12] i386 boot: Add an ELF header to bzImage Vivek Goyal
2006-10-04  3:13   ` Andrew Morton
2006-10-04  4:28     ` Vivek Goyal
2006-10-04  4:40       ` H. Peter Anvin
2006-10-04  8:04         ` Eric W. Biederman
2006-10-04 15:18           ` H. Peter Anvin
2006-10-05  4:12             ` Eric W. Biederman
2006-10-05  4:17               ` H. Peter Anvin
2006-10-04 20:22         ` Vivek Goyal
2006-10-04 20:27           ` H. Peter Anvin
2006-10-04 20:48             ` Vivek Goyal
2006-10-04 20:52               ` H. Peter Anvin
2006-10-04 21:06                 ` Vivek Goyal
2006-10-04 21:09                   ` H. Peter Anvin
2006-10-04  5:37       ` Andrew Morton
2006-10-05  4:06     ` Eric W. Biederman
2006-10-05  4:12       ` H. Peter Anvin
2006-10-05  4:44       ` Andrew Morton
2006-10-05  6:13         ` Eric W. Biederman
2006-10-05  6:31           ` Andrew Morton
2006-10-05  6:48             ` Eric W. Biederman
2006-10-05 21:54               ` Vivek Goyal
2006-10-05 15:25             ` H. Peter Anvin
2006-10-05 15:35               ` Eric W. Biederman
2006-10-05 15:29             ` Eric W. Biederman
2006-10-05 15:44               ` H. Peter Anvin
2006-10-06  6:59               ` Andrew Morton
2006-10-06 12:56                 ` Eric W. Biederman
2006-10-06 18:38                   ` Vivek Goyal
2006-10-06 18:54                     ` H. Peter Anvin
2006-10-06 19:09                       ` Eric W. Biederman
2006-10-06 21:54                         ` H. Peter Anvin
2006-10-09 14:33                           ` Vivek Goyal
2006-10-10  3:14                             ` Andrew Morton
2006-10-10  4:51                               ` Eric W. Biederman
2006-10-10 14:30                               ` Vivek Goyal
2006-10-10 18:46                                 ` Andrew Morton
2006-10-10 21:40                               ` Vivek Goyal
2006-10-11  2:35                                 ` Andrew Morton
2006-10-06 19:01                     ` Eric W. Biederman
2006-10-04  7:08   ` Eric W. Biederman
2006-10-04 14:23     ` Vivek Goyal
2006-10-05  3:09       ` Eric W. Biederman
2006-10-04 17:03     ` Vivek Goyal
2006-10-05  6:25       ` Eric W. Biederman
2006-10-05 21:34         ` Vivek Goyal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061003171755.GG3164@in.ibm.com \
    --to=vgoyal@in.ibm.com \
    --cc=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=dzickus@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=fastboot@lists.osdl.org \
    --cc=horms@verge.net.au \
    --cc=hpa@zytor.com \
    --cc=lace@jankratochvil.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lwang@redhat.com \
    --cc=magnus.damm@gmail.com \
    --cc=maneesh@in.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.