Jakub Jelinek <jj@ultra.linux.cz>
[deliverable/binutils-gdb.git] / include / elf / arm.h
index 45f7069a0b0fec1012b7b4be4763d4347ab2a8b7..2c94b13e2042738d0427cceedfe62e0ebabcb230 100644 (file)
@@ -1,5 +1,5 @@
 /* ARM ELF support for BFD.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
 #include "elf/reloc-macros.h"
 
 /* Processor specific flags for the ELF header e_flags field.  */
-#define EF_ARM_RELEXEC   0x01
-#define EF_ARM_HASENTRY  0x02
+#define EF_ARM_RELEXEC     0x01
+#define EF_ARM_HASENTRY    0x02
+#define EF_INTERWORK       0x04
+#define EF_APCS_26         0x08
+#define EF_APCS_FLOAT      0x10
+#define EF_PIC             0x20
+#define EF_ALIGN8         0x40         /* 8-bit structure alignment is in use */
+#define EF_NEW_ABI         0x80
+#define EF_OLD_ABI         0x100
+
+/* Local aliases for some flags to match names used by COFF port.  */
+#define F_INTERWORK       EF_INTERWORK
+#define F_APCS26          EF_APCS_26
+#define F_APCS_FLOAT      EF_APCS_FLOAT
+#define F_PIC              EF_PIC
+
+/* Additional symbol types for Thumb */
+#define STT_ARM_TFUNC     0xd
 
 /* ARM-specific values for sh_flags */
 #define SHF_ENTRYSECT      0x10000000   /* Section contains an entry point */
@@ -39,17 +55,36 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
   RELOC_NUMBER (R_ARM_PC24,         1)
   RELOC_NUMBER (R_ARM_ABS32,        2)
   RELOC_NUMBER (R_ARM_REL32,        3)
-  RELOC_NUMBER (R_ARM_ABS8,         4)
+  RELOC_NUMBER (R_ARM_PC13,         4)
   RELOC_NUMBER (R_ARM_ABS16,        5)
   RELOC_NUMBER (R_ARM_ABS12,        6)
   RELOC_NUMBER (R_ARM_THM_ABS5,     7)
-  RELOC_NUMBER (R_ARM_THM_PC22,     8)
+  RELOC_NUMBER (R_ARM_ABS8,         8)
   RELOC_NUMBER (R_ARM_SBREL32,      9)
-  RELOC_NUMBER (R_ARM_AMP_VCALL9,  10)
-  RELOC_NUMBER (R_ARM_THM_PC11,    11)       /* cygnus extension to abi: thumb unconditional branch */
-  RELOC_NUMBER (R_ARM_THM_PC9,     12)       /* cygnus extension to abi: thumb conditional branch */
-  FAKE_RELOC   (FIRST_INVALID_RELOC, 13)
-  FAKE_RELOC   (LAST_INVALID_RELOC,  249)
+  RELOC_NUMBER (R_ARM_THM_PC22,    10)
+  RELOC_NUMBER (R_ARM_THM_PC8,     11)
+  RELOC_NUMBER (R_ARM_AMP_VCALL9,  12)
+  RELOC_NUMBER (R_ARM_SWI24,       13)
+  RELOC_NUMBER (R_ARM_THM_SWI8,    14)
+  RELOC_NUMBER (R_ARM_XPC25,       15)
+  RELOC_NUMBER (R_ARM_THM_XPC22,   16)
+  RELOC_NUMBER (R_ARM_COPY,        20)       /* copy symbol at runtime */
+  RELOC_NUMBER (R_ARM_GLOB_DAT,    21)       /* create GOT entry */
+  RELOC_NUMBER (R_ARM_JUMP_SLOT,   22)       /* create PLT entry */
+  RELOC_NUMBER (R_ARM_RELATIVE,    23)       /* adjust by program base */
+  RELOC_NUMBER (R_ARM_GOTOFF,      24)       /* 32 bit offset to GOT */
+  RELOC_NUMBER (R_ARM_GOTPC,       25)       /* 32 bit PC relative offset to GOT */
+  RELOC_NUMBER (R_ARM_GOT32,       26)       /* 32 bit GOT entry */
+  RELOC_NUMBER (R_ARM_PLT32,       27)       /* 32 bit PLT address */
+  FAKE_RELOC   (FIRST_INVALID_RELOC1, 28)
+  FAKE_RELOC   (LAST_INVALID_RELOC1,  99)
+  RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100)
+  RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101)
+  RELOC_NUMBER (R_ARM_THM_PC11,    102)       /* cygnus extension to abi: thumb unconditional branch */
+  RELOC_NUMBER (R_ARM_THM_PC9,     103)       /* cygnus extension to abi: thumb conditional branch */
+  FAKE_RELOC   (FIRST_INVALID_RELOC2, 104)
+  FAKE_RELOC   (LAST_INVALID_RELOC2,  248)
+  RELOC_NUMBER (R_ARM_RXPC25,     249)
   RELOC_NUMBER (R_ARM_RSBREL32,   250)
   RELOC_NUMBER (R_ARM_THM_RPC22,  251)
   RELOC_NUMBER (R_ARM_RREL32,     252)
This page took 0.023745 seconds and 4 git commands to generate.