binutils-gdb/elfcpp
Doug Kwan a0351a698b 2009-12-10 Doug Kwan <dougkwan@google.com>
elfcpp/ChangeLog
	* arm.h: New enums for EABI object attribute tags and values.

gold/ChangeLog
	* arm.cc (attributes.h): New include.
	(Arm_relobj::Arm_relobj): Initialize attributes_section_data_.
	(Arm_relobj::~Arm_relobj): Delete object pointed by
	attributes_section_data_.
	(Arm_relobj::attributes_section_data): New method definition.
	(Arm_relobj::attributes_section_data_): New data member declaration.
	(Arm_dynobj::Arm_dynobj): Initialize attributes_section_data_.
	(Arm_dynobj::~Arm_dynobj): Delete object pointed by
	attributes_section_data_.
	(Arm_dynobj::attributes_section_data): New method definition.
	(Arm_dynobj::attributes_section_data_): New data member declaration.
	(Target_arm::Target_arm): Initialize attributes_section_data_.  Change
	initialization value of may_use_blx_ to false.
   	(Target_arm::using_thumb2, Target_arm::using_thumb_only,
	Target_arm::may_use_arm_nop, Target_arm::may_use_thumb2_nop): Use
	object attributes to compute results instead of hard-coding.
	(Target_arm::do_attribute_arg_type, Target_arm::do_attributes_order,
	Target_arm::get_secondary_compatible_arch,
	Target_arm::set_secondary_compatible_arch
	Target_arm::tag_cpu_arch_combine, Target_arm::aeabi_enum_name,
	Target_arm::tag_cpu_name_value, Target_arm::merge_object_attributes):
	New method declarations.
	(Target_arm::get_aeabi_object_attribute): New method definition.
	(Target_arm::attributes_section_data_): New data member declaration.
	(read_arm_attributes_section): New template definition.
	(Arm_relobj::do_read_symbols): Read attributes section if it exists.
	(Arm_dynobj::do_read_symbols): Ditto.
	(Target_arm::do_finalize_sections): Merge attributes sections from
	input.  Check for BLX use after attributes section merging.
	Fix __exidx_start and __exidx_end visibility.  Create an
	.ARM.attributes section if necessary.
	(Target_arm::get_secondary_compatible_arch,
	Target_arm::set_secondary_compatible_arch,
	Target_arm::tag_cpu_arch_combine, Target_arm::aeabi_enum_name,
	Target_arm::tag_cpu_name_value, Target_arm::merge_object_attributes,
	Target_arm::do_attribute_arg_type, Target_arm::do_attributes_order):
	New method definitions.
2009-12-10 20:55:33 +00:00
..
ChangeLog 2009-12-10 Doug Kwan <dougkwan@google.com> 2009-12-10 20:55:33 +00:00
README
arm.h 2009-12-10 Doug Kwan <dougkwan@google.com> 2009-12-10 20:55:33 +00:00
dwarf.h elfcpp/: 2008-05-28 20:48:16 +00:00
elfcpp.h * elfcpp.h: Remove trailing commas from enum definitions. 2009-11-03 15:12:03 +00:00
elfcpp_file.h 2009-11-24 Rafael Avila de Espindola <espindola@google.com> 2009-11-25 00:10:05 +00:00
elfcpp_internal.h Add licensing text to every source file. 2007-09-22 21:02:10 +00:00
elfcpp_swap.h elfcpp:/ 2009-03-02 02:45:29 +00:00
i386.h From Craig Silverstein: Add more DWARF info, add some i386 comments. 2007-11-02 03:31:41 +00:00
powerpc.h 2008-06-12 David S. Miller <davem@davemloft.net> 2008-06-12 16:58:40 +00:00
sparc.h * sparc.h (EF_SPARC_EXT_MASK, EF_SPARC_32PLUS_MASK, 2008-04-16 01:56:33 +00:00
x86_64.h Remove Andrew's e-mail address. 2008-01-09 19:40:24 +00:00

README

elfcpp is a C++ library for reading and writing ELF information.  This
was written to support gold, the ELF linker, and may not be generally
useful.

elfcpp does not do file I/O.  It deals only with offsets and memory
data.

For efficiency, most accessors are templates with two arguments: the
ELF file class (32 or 64 bits) and the endianness.