Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / linux / elf.h
index 7f21bfa..d3bfacb 100644 (file)
@@ -2,8 +2,16 @@
 #define _LINUX_ELF_H
 
 #include <linux/types.h>
+#include <linux/auxvec.h>
 #include <asm/elf.h>
 
+#ifndef elf_read_implies_exec
+  /* Executables for which elf_read_implies_exec() returns TRUE will
+     have the READ_IMPLIES_EXEC personality flag set automatically.
+     Override in asm/elf.h as needed.  */
+# define elf_read_implies_exec(ex, have_pt_gnu_stack)  0
+#endif
+
 /* 32-bit ELF base types. */
 typedef __u32  Elf32_Addr;
 typedef __u16  Elf32_Half;
@@ -29,8 +37,9 @@ typedef __s64 Elf64_Sxword;
 #define PT_NOTE    4
 #define PT_SHLIB   5
 #define PT_PHDR    6
-#define PT_LOOS           0x60000000
-#define PT_HIOS           0x6fffffff
+#define PT_TLS     7               /* Thread local storage segment */
+#define PT_LOOS    0x60000000      /* OS-specific */
+#define PT_HIOS    0x6fffffff      /* OS-specific */
 #define PT_LOPROC  0x70000000
 #define PT_HIPROC  0x7fffffff
 #define PT_GNU_EH_FRAME                0x6474e550
@@ -81,8 +90,9 @@ typedef __s64 Elf64_Sxword;
 
 #define EM_V850                87      /* NEC v850 */
 
-#define EM_H8_300H      47      /* Hitachi H8/300H */
-#define EM_H8S          48      /* Hitachi H8S     */
+#define EM_M32R                88      /* Renesas M32R */
+
+#define EM_H8_300       46      /* Renesas H8/300,300H,H8S */
 
 /*
  * This is an interim value that we will use until the committee comes
@@ -93,11 +103,16 @@ typedef __s64      Elf64_Sxword;
 /* Bogus old v850 magic number, used by old tools.  */
 #define EM_CYGNUS_V850 0x9080
 
+/* Bogus old m32r magic number, used by old tools.  */
+#define EM_CYGNUS_M32R 0x9041
+
 /*
  * This is the old interim value for S/390 architecture
  */
 #define EM_S390_OLD     0xA390
 
+#define EM_FRV         0x5441          /* Fujitsu FR-V */
+
 /* This is the info that is needed to parse the dynamic section of the file */
 #define DT_NULL                0
 #define DT_NEEDED      1
@@ -136,6 +151,8 @@ typedef __s64       Elf64_Sxword;
 #define STT_FUNC    2
 #define STT_SECTION 3
 #define STT_FILE    4
+#define STT_COMMON  5
+#define STT_TLS     6
 
 #define ELF_ST_BIND(x)         ((x) >> 4)
 #define ELF_ST_TYPE(x)         (((unsigned int) x) & 0xf)
@@ -144,29 +161,6 @@ typedef __s64      Elf64_Sxword;
 #define ELF64_ST_BIND(x)       ELF_ST_BIND(x)
 #define ELF64_ST_TYPE(x)       ELF_ST_TYPE(x)
 
-/* Symbolic values for the entries in the auxiliary table
-   put on the initial stack */
-#define AT_NULL   0    /* end of vector */
-#define AT_IGNORE 1    /* entry should be ignored */
-#define AT_EXECFD 2    /* file descriptor of program */
-#define AT_PHDR   3    /* program headers for program */
-#define AT_PHENT  4    /* size of program header entry */
-#define AT_PHNUM  5    /* number of program headers */
-#define AT_PAGESZ 6    /* system page size */
-#define AT_BASE   7    /* base address of interpreter */
-#define AT_FLAGS  8    /* flags */
-#define AT_ENTRY  9    /* entry point of program */
-#define AT_NOTELF 10   /* program is not ELF */
-#define AT_UID    11   /* real uid */
-#define AT_EUID   12   /* effective uid */
-#define AT_GID    13   /* real gid */
-#define AT_EGID   14   /* effective gid */
-#define AT_PLATFORM 15  /* string identifying CPU for optimizations */
-#define AT_HWCAP  16    /* arch dependent hints at CPU capabilities */
-#define AT_CLKTCK 17   /* frequency at which times() increments */
-
-#define AT_SECURE 23   /* secure mode boolean */
-
 typedef struct dynamic{
   Elf32_Sword d_tag;
   union{