2005-10-08 Paul Brook <paul@codesourcery.com>
[deliverable/binutils-gdb.git] / include / elf / arm.h
index 738ed8393190bd668e6bfa58fa38620a8e32653c..2d76ab643a33c9900de69ad8fedaf2445421280e 100644 (file)
@@ -71,6 +71,8 @@
 
 /* Additional section types.  */
 #define SHT_ARM_EXIDX     0x70000001   /* Section holds ARM unwind info.  */
+#define SHT_ARM_PREEMPTMAP 0x70000002  /* Section pre-emption details.  */
+#define SHT_ARM_ATTRIBUTES 0x70000003  /* Section holds attributes.  */
 
 /* ARM-specific values for sh_flags.  */
 #define SHF_ENTRYSECT      0x10000000   /* Section contains an entry point.  */
@@ -89,7 +91,6 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
   RELOC_NUMBER (R_ARM_PC24,                      1)   /* deprecated */
   RELOC_NUMBER (R_ARM_ABS32,                     2)
   RELOC_NUMBER (R_ARM_REL32,                     3)
-#ifndef OLD_ARM_ABI
   RELOC_NUMBER (R_ARM_LDR_PC_G0,                 4)
   RELOC_NUMBER (R_ARM_ABS16,                     5)
   RELOC_NUMBER (R_ARM_ABS12,                     6)
@@ -101,19 +102,6 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
   RELOC_NUMBER (R_ARM_BREL_ADJ,                 12)
   RELOC_NUMBER (R_ARM_SWI24,                    13)   /* obsolete */
   RELOC_NUMBER (R_ARM_THM_SWI8,                 14)   /* obsolete */
-#else
-  RELOC_NUMBER (R_ARM_ABS8,                      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_CALL,                  8)
-  RELOC_NUMBER (R_ARM_SBREL32,                   9)
-  RELOC_NUMBER (R_ARM_BREL_ADJ,                 10)
-  RELOC_NUMBER (R_ARM_THM_JUMP11,               11)
-  RELOC_NUMBER (R_ARM_THM_JUMP8,                12)
-  RELOC_NUMBER (R_ARM_GNU_VTINHERIT,            13)
-  RELOC_NUMBER (R_ARM_GNU_VTENTRY,              14)
-#endif
   RELOC_NUMBER (R_ARM_XPC25,                    15)   /* obsolete */
   RELOC_NUMBER (R_ARM_THM_XPC22,                16)   /* obsolete */
   RELOC_NUMBER (R_ARM_TLS_DTPMOD32,             17)
@@ -196,12 +184,10 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
   RELOC_NUMBER (R_ARM_GOT_BREL12,               97)
   RELOC_NUMBER (R_ARM_GOTOFF12,                 98)
   RELOC_NUMBER (R_ARM_GOTRELAX,                 99)
-#ifndef OLD_ARM_ABI
   RELOC_NUMBER (R_ARM_GNU_VTENTRY,     100)   /* deprecated - old C++ abi */
   RELOC_NUMBER (R_ARM_GNU_VTINHERIT,   101)   /* deprecated - old C++ abi */
   RELOC_NUMBER (R_ARM_THM_JUMP11,      102)
   RELOC_NUMBER (R_ARM_THM_JUMP8,       103)
-#endif
   RELOC_NUMBER (R_ARM_TLS_GD32,                104)
   RELOC_NUMBER (R_ARM_TLS_LDM32,       105)
   RELOC_NUMBER (R_ARM_TLS_LDO32,       106)
@@ -234,11 +220,57 @@ START_RELOC_NUMBERS (elf_arm_reloc_type)
   FAKE_RELOC (R_ARM_GOT32,              R_ARM_GOT_BREL)   /* 32 bit GOT entry.  */
   FAKE_RELOC (R_ARM_ROSEGREL32,         R_ARM_SBREL31)    /* ??? */
   FAKE_RELOC (R_ARM_AMP_VCALL9,         R_ARM_BREL_ADJ)   /* Thumb-something.  Not used.  */
-#ifndef OLD_ARM_ABI
   FAKE_RELOC (R_ARM_PC13,               R_ARM_LDR_PC_G0)  /* Unclear whether meaning is different.  */
-#endif
 END_RELOC_NUMBERS (R_ARM_max)
 
+#ifdef BFD_ARCH_SIZE
+/* Routines for manipulating EABI object attributes.  */
+void elf32_arm_add_eabi_attr_int (bfd *, int, unsigned int);
+void elf32_arm_add_eabi_attr_string (bfd *, int, const char *);
+void elf32_arm_add_eabi_attr_compat (bfd *, unsigned int, const char *);
+
+void elf32_arm_set_eabi_attr_contents (bfd *, bfd_byte *, bfd_vma);
+bfd_vma elf32_arm_eabi_attr_size (bfd *);
+
+enum
+{
+  Tag_NULL,
+  Tag_File,
+  Tag_Section,
+  Tag_Symbol,
+  Tag_CPU_raw_name,
+  Tag_CPU_name,
+  Tag_CPU_arch,
+  Tag_CPU_arch_profile,
+  Tag_ARM_ISA_use,
+  Tag_THUMB_ISA_use,
+  Tag_VFP_arch,
+  Tag_WMMX_arch,
+  Tag_NEON_arch,
+  Tag_PCS_config,
+  Tag_ABI_PCS_R9_use,
+  Tag_ABI_PCS_RW_data,
+  Tag_ABI_PCS_RO_data,
+  Tag_ABI_PCS_GOT_use,
+  Tag_ABI_PCS_wchar_t,
+  Tag_ABI_FP_rounding,
+  Tag_ABI_FP_denormal,
+  Tag_ABI_FP_exceptions,
+  Tag_ABI_FP_user_exceptions,
+  Tag_ABI_FP_number_model,
+  Tag_ABI_align8_needed,
+  Tag_ABI_align8_preserved,
+  Tag_ABI_enum_size,
+  Tag_ABI_HardFP_use,
+  Tag_ABI_VFP_args,
+  Tag_ABI_WMMX_args,
+  Tag_ABI_optimization_goals,
+  Tag_ABI_FP_optimization_goals,
+  Tag_compatibility,
+};
+
+#endif
+
 /* The name of the note section used to identify arm variants.  */
 #define ARM_NOTE_SECTION ".note.gnu.arm.ident"
 
This page took 0.027753 seconds and 4 git commands to generate.