aboutsummaryrefslogtreecommitdiff
path: root/elfcpp
diff options
context:
space:
mode:
authorDoug Kwan <dougkwan@google.com>2009-10-30 18:49:59 +0000
committerDoug Kwan <dougkwan@google.com>2009-10-30 18:49:59 +0000
commitd5b40221bcfffa99532547f0b94a852d834426aa (patch)
treeca58152d05c8faaa6ac2f3fca06eaeb4810b53c6 /elfcpp
parentebabffbd89147c0f657eadb488f8a1df1c46e1a2 (diff)
downloadfsf-binutils-gdb-d5b40221bcfffa99532547f0b94a852d834426aa.zip
fsf-binutils-gdb-d5b40221bcfffa99532547f0b94a852d834426aa.tar.gz
fsf-binutils-gdb-d5b40221bcfffa99532547f0b94a852d834426aa.tar.bz2
2009-10-30 Doug Kwan <dougkwan@google.com>
elfcpp/ChangeLog: * arm.h (EF_ARM_BE8, EF_ARM_EABIMASK, EF_ARM_EABI_UNKNOWN, EF_ARM_EABI_VER1, EF_ARM_EABI_VER2, EF_ARM_EABI_VER3, EF_ARM_EABI_VER4, EF_ARM_EABI_VER5): New enums for processor-specific flags. (arm_eabi_version): New inline function. * elfcpp.h: Add a comment about DT_ENCODING. gold/ChangeLog: * arm.cc (Arm_relobj::processor_specific_flags): New method definition. (Arm_relobj::do_read_symbols): New method declaration. (Arm_relobj::processor_specific_flags_): New data member declaration. (Arm_dynobj): New class definition. (Target_arm::do_finalize_sections): Add input_objects parameter. (Target_arm::do_adjust_elf_header): New method declaration. (Target_arm::are_eabi_versions_compatible, (Target_arm::merge_processor_specific_flags): New method declaration. (Target_arm::do_make_elf_object): New overloaded method definitions and declaration. (Arm_relobj::do_read_symbols): New method definition. (Arm_dynobj::do_read_symbols): Ditto. (Target_arm::do_finalize_sections): Add input_objects parameters. Merge processor-specific flags from all input objects. (Target_arm::are_eabi_versions_compatible, Target_arm::merge_processor_specific_flags, Target_arm::do_adjust_elf_header, Target_arm::do_make_elf_object): New method definitions. * i386.cc (Target_i386::do_finalize_sections): Add unnamed Input_objects pointer type parameter. * layout.cc (Layout::finalize): Pass input objects to target's. finalize_sections function. * output.cc (Output_file_header::do_sized_write): Set ELF file header's processor-specific flags. * powerpc.cc (Target_powerpc::do_finalize_sections): Add unnamed Input_objects pointer type parameter. * sparc.cc (Target_sparc::do_finalize_sections): Same. * target.h (Input_objects): New forward class declaration. (Target::processor_specific_flags, Target::are_processor_specific_flags_sect): New method definitions. (Target::finalize_sections): Add input_objects parameter. (Target::Target): Initialize processor_specific_flags_ and are_processor_specific_flags_set_. (Target::do_finalize_sections): Add unnamed Input_objects pointer type parameter. (Target::set_processor_specific_flags): New method definition. (Target::processor_specific_flags_, Target::are_processor_specific_flags_set_): New data member declarations. * x86_64.cc (Target_x86_64::do_finalize_sections): Add unnamed Input_objects pointer type parameter.
Diffstat (limited to 'elfcpp')
-rw-r--r--elfcpp/ChangeLog9
-rw-r--r--elfcpp/arm.h23
-rw-r--r--elfcpp/elfcpp.h4
3 files changed, 36 insertions, 0 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 0a9906c..2439880 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,3 +1,12 @@
+2009-10-30 Doug Kwan <dougkwan@google.com>
+
+ * arm.h (EF_ARM_BE8, EF_ARM_EABIMASK, EF_ARM_EABI_UNKNOWN,
+ EF_ARM_EABI_VER1, EF_ARM_EABI_VER2, EF_ARM_EABI_VER3,
+ EF_ARM_EABI_VER4, EF_ARM_EABI_VER5): New enums for processor-specific
+ flags.
+ (arm_eabi_version): New inline function.
+ * elfcpp.h: Add a comment about DT_ENCODING.
+
2009-10-16 Doug Kwan <dougkwan@google.com>
* elfcpp/elfcpp.h (DT_PREINIT_ARRAY): Correct enum value.
diff --git a/elfcpp/arm.h b/elfcpp/arm.h
index 7ad827a..027cf34 100644
--- a/elfcpp/arm.h
+++ b/elfcpp/arm.h
@@ -199,6 +199,29 @@ enum
// 160 - 255 Unallocated
};
+// e_flags values used for ARM. We only support flags defined in AAELF.
+
+enum
+{
+ EF_ARM_BE8 = 0x00800000,
+
+ // Mask to extract EABI version, not really a flag value.
+ EF_ARM_EABIMASK = 0xFF000000,
+
+ EF_ARM_EABI_UNKNOWN = 0x00000000,
+ EF_ARM_EABI_VER1 = 0x01000000,
+ EF_ARM_EABI_VER2 = 0x02000000,
+ EF_ARM_EABI_VER3 = 0x03000000,
+ EF_ARM_EABI_VER4 = 0x04000000,
+ EF_ARM_EABI_VER5 = 0x05000000,
+};
+
+// Extract EABI version from flags.
+
+inline Elf_Word
+arm_eabi_version(Elf_Word flags)
+{ return flags & EF_ARM_EABIMASK; }
+
} // End namespace elfcpp.
#endif // !defined(ELFCPP_ARM_H)
diff --git a/elfcpp/elfcpp.h b/elfcpp/elfcpp.h
index c5c93c3..4ace47c 100644
--- a/elfcpp/elfcpp.h
+++ b/elfcpp/elfcpp.h
@@ -656,7 +656,11 @@ enum DT
DT_FINI_ARRAYSZ = 28,
DT_RUNPATH = 29,
DT_FLAGS = 30,
+
+ // This is used to mark a range of dynamic tags. It is not really
+ // a tag value.
DT_ENCODING = 32,
+
DT_PREINIT_ARRAY = 32,
DT_PREINIT_ARRAYSZ = 33,
DT_LOOS = 0x6000000d,