[PATCH] uml: kludgy compilation fixes for x86-64 subarch modules support
[linux-2.6] / include / asm-um / elf.h
1 #ifndef __UM_ELF_H
2 #define __UM_ELF_H
3
4 #include "linux/config.h"
5 #include "asm/archparam.h"
6
7 extern long elf_aux_hwcap;
8 #define ELF_HWCAP (elf_aux_hwcap)
9
10 #define SET_PERSONALITY(ex, ibcs2) do ; while(0)
11
12 #define ELF_EXEC_PAGESIZE 4096
13
14 #define elf_check_arch(x) (1)
15
16 #ifdef CONFIG_64BIT
17 #define ELF_CLASS ELFCLASS64
18 #else
19 #define ELF_CLASS ELFCLASS32
20 #endif
21
22 #define USE_ELF_CORE_DUMP
23
24 #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT)
25
26 #define R_386_NONE      0
27 #define R_386_32        1
28 #define R_386_PC32      2
29 #define R_386_GOT32     3
30 #define R_386_PLT32     4
31 #define R_386_COPY      5
32 #define R_386_GLOB_DAT  6
33 #define R_386_JMP_SLOT  7
34 #define R_386_RELATIVE  8
35 #define R_386_GOTOFF    9
36 #define R_386_GOTPC     10
37 #define R_386_NUM       11
38
39 #elif defined(CONFIG_UML_X86) && defined(CONFIG_64BIT)
40
41 /* x86-64 relocation types */
42 #define R_X86_64_NONE           0       /* No reloc */
43 #define R_X86_64_64             1       /* Direct 64 bit  */
44 #define R_X86_64_PC32           2       /* PC relative 32 bit signed */
45 #define R_X86_64_GOT32          3       /* 32 bit GOT entry */
46 #define R_X86_64_PLT32          4       /* 32 bit PLT address */
47 #define R_X86_64_COPY           5       /* Copy symbol at runtime */
48 #define R_X86_64_GLOB_DAT       6       /* Create GOT entry */
49 #define R_X86_64_JUMP_SLOT      7       /* Create PLT entry */
50 #define R_X86_64_RELATIVE       8       /* Adjust by program base */
51 #define R_X86_64_GOTPCREL       9       /* 32 bit signed pc relative
52                                            offset to GOT */
53 #define R_X86_64_32             10      /* Direct 32 bit zero extended */
54 #define R_X86_64_32S            11      /* Direct 32 bit sign extended */
55 #define R_X86_64_16             12      /* Direct 16 bit zero extended */
56 #define R_X86_64_PC16           13      /* 16 bit sign extended pc relative */
57 #define R_X86_64_8              14      /* Direct 8 bit sign extended  */
58 #define R_X86_64_PC8            15      /* 8 bit sign extended pc relative */
59
60 #define R_X86_64_NUM            16
61
62 #endif
63
64 #endif