Gold: Don't fail on R_X86_64_[REX_]GOTPCRELX relocations
[deliverable/binutils-gdb.git] / elfcpp / arm.h
index 08a17ad8871f005af10d484f79bd6be5a774c9d2..14109b9797c9ec072d3f9a6b6ea1562baa02ff44 100644 (file)
@@ -1,6 +1,6 @@
 // arm.h -- ELF definitions specific to EM_ARM  -*- C++ -*-
 
-// Copyright 2009, Free Software Foundation, Inc.
+// Copyright (C) 2009-2015 Free Software Foundation, Inc.
 // Written by Doug Kwan <dougkwan@google.com>.
 
 // This file is part of elfcpp.
@@ -192,11 +192,12 @@ enum
   R_ARM_PRIVATE_14 = 126,
   R_ARM_PRIVATE_15 = 127,
   R_ARM_ME_TOO = 128,          // Obsolete
-  R_ARM_THM_TLS_DESCSEQ16 = 129,// Static      Thumb16 
+  R_ARM_THM_TLS_DESCSEQ16 = 129,// Static      Thumb16
   R_ARM_THM_TLS_DESCSEQ32 = 130,// Static      Thumb32
   // 131 - 139                 Unallocated
   // 140 - 159                 Dynamic         Reserved for future allocation
-  // 160 - 255                 Unallocated
+  R_ARM_IRELATIVE = 160,       // Dynamic
+  // 161 - 255                 Unallocated
 };
 
 // e_flags values used for ARM.  We only support flags defined in AAELF.
@@ -222,6 +223,14 @@ inline Elf_Word
 arm_eabi_version(Elf_Word flags)
 { return flags & EF_ARM_EABIMASK; }
 
+// EABI_VER5 e_flags values for identifying soft- and hard-float ABI
+// choice.
+enum
+{
+  EF_ARM_ABI_FLOAT_SOFT = 0x200,
+  EF_ARM_ABI_FLOAT_HARD = 0x400,
+};
+
 // Values for the Tag_CPU_arch EABI attribute.
 enum
 {
@@ -239,7 +248,8 @@ enum
   TAG_CPU_ARCH_V6_M,
   TAG_CPU_ARCH_V6S_M,
   TAG_CPU_ARCH_V7E_M,
-  MAX_TAG_CPU_ARCH = TAG_CPU_ARCH_V7E_M,
+  TAG_CPU_ARCH_V8,
+  MAX_TAG_CPU_ARCH = TAG_CPU_ARCH_V8,
   // Pseudo-architecture to allow objects to be compatible with the subset of
   // armv4t and armv6-m.  This value should never be stored in object files.
   TAG_CPU_ARCH_V4T_PLUS_V6_M = (MAX_TAG_CPU_ARCH + 1)
@@ -255,7 +265,7 @@ enum
   Tag_CPU_arch_profile = 7,
   Tag_ARM_ISA_use = 8,
   Tag_THUMB_ISA_use = 9,
-  Tag_VFP_arch = 10,
+  Tag_FP_arch = 10,
   Tag_WMMX_arch = 11,
   Tag_Advanced_SIMD_arch = 12,
   Tag_PCS_config = 13,
@@ -269,8 +279,8 @@ enum
   Tag_ABI_FP_exceptions = 21,
   Tag_ABI_FP_user_exceptions = 22,
   Tag_ABI_FP_number_model = 23,
-  Tag_ABI_align8_needed = 24,
-  Tag_ABI_align8_preserved = 25,
+  Tag_ABI_align_needed = 24,
+  Tag_ABI_align_preserved = 25,
   Tag_ABI_enum_size = 26,
   Tag_ABI_HardFP_use = 27,
   Tag_ABI_VFP_args = 28,
@@ -281,17 +291,28 @@ enum
   Tag_undefined33 = 33,
   Tag_CPU_unaligned_access = 34,
   Tag_undefined35 = 35,
-  Tag_VFP_HP_extension = 36,
+  Tag_FP_HP_extension = 36,
   Tag_undefined37 = 37,
   Tag_ABI_FP_16bit_format = 38,
   Tag_undefined39 = 39,
+  Tag_undefined40 = 40,
+  Tag_undefined41 = 41,
+  Tag_MPextension_use = 42,
+  Tag_undefined43 = 43,
+  Tag_DIV_use = 44,
   Tag_nodefaults = 64,
   Tag_also_compatible_with = 65,
   Tag_T2EE_use = 66,
   Tag_conformance = 67,
   Tag_Virtualization_use = 68,
   Tag_undefined69 = 69,
-  Tag_MPextension_use = 70
+  Tag_MPextension_use_legacy = 70,
+
+  // The following tags are legacy names for other tags.
+  Tag_VFP_arch = Tag_FP_arch,
+  Tag_ABI_align8_needed = Tag_ABI_align_needed,
+  Tag_ABI_align8_preserved = Tag_ABI_align_preserved,
+  Tag_VFP_HP_extension = Tag_FP_HP_extension
 };
 
 // Values for Tag_ABI_PCS_R9_use.
@@ -321,6 +342,31 @@ enum
   AEABI_enum_forced_wide = 3
 };
 
+// Values for Tag_ABI_FP_number_model.
+enum
+{
+  AEABI_FP_number_model_none = 0,
+  AEABI_FP_number_model_ieee754_number = 1,
+  AEABI_FP_number_model_rtabi = 2,
+  AEABI_FP_number_model_ieee754_all = 3
+};
+
+// Values for Tag_ABI_VFP_args.
+enum
+{
+  AEABI_VFP_args_base = 0,
+  AEABI_VFP_args_vfp = 1,
+  AEABI_VFP_args_toolchain = 2,
+  AEABI_VFP_args_compatible = 3
+};
+
+// For Exception Index Table. (Exception handling ABI for the ARM
+// architectue, Section 5)
+enum
+{
+  EXIDX_CANTUNWIND = 1,
+};
+
 } // End namespace elfcpp.
 
 #endif // !defined(ELFCPP_ARM_H)
This page took 0.027344 seconds and 4 git commands to generate.