From 480586639d6b814b2e87f6f106b8635cf7442b20 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 12 Jul 2015 10:50:25 -0700 Subject: Add SHF_COMPRESSED section decompression to gold This patch adds SHF_COMPRESSED section decompression to gold. PR gold/18321 * compressed_output.h (decompress_input_section): Add arguments for ELF class, big endian and sh_flags. * compressed_output.cc (decompress_input_section): Likewise. Support the SHF_COMPRESSED section. * dynobj.h (Dynobj): Add elfsize and is_big_endian member functions. * plugin.h (Pluginobj): Likewise. * layout.cc (Layout::get_output_section_flags): Also clear the SHF_COMPRESSED bit. * object.h (Compressed_section_info): Add flag to store sh_flags. (Object): Add pure virtual elfsize and is_big_endian member functions. * object.cc (need_decompressed_section): Don't skip the ".zdebug" prefix here. (build_compressed_section_map): Check SHF_COMPRESSED for uncompressed size. Store sh_flags in Compressed_section_info. Pass size, big_endian and sh_flags to decompress_input_section. Skip the ".debug"/".zdebug" prefix when passing section name to need_decompressed_section. (Sized_relobj_file::do_find_special_section): Don't check ".zdebug_*" sections. (Object::decompressed_section_contents): Pass ELF class, big endian and sh_flags to decompress_input_section. * reloc.cc (Sized_relobj_file::write_sections): Likewise. * testsuite/Makefile.am (check_DATA): Add debug_msg_cdebug_gabi.err and gdb_index_test_2_gabi.stdout. (MOSTLYCLEANFILES): Add debug_msg_cdebug_gabi.err and gdb_index_test_2_gabi.stdout. (debug_msg_cdebug_gabi.o): New. (odr_violation1_cdebug_gabi.o): Likewise. (odr_violation2_cdebug_gabi.o): Likewise. (debug_msg_cdebug_gabi.err): Likewise. (check_SCRIPTS): Add gdb_index_test_2_gabi.sh. (gdb_index_test_cdebug_gabi.o): Likewise. (gdb_index_test_2_gabi): Likewise. (gdb_index_test_2_gabi.stdout): Likewise. * testsuite/gdb_index_test_2_gabi.sh: New file. * testsuite/Makefile.in: Regenerated. --- gold/ChangeLog | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gold/ChangeLog') diff --git a/gold/ChangeLog b/gold/ChangeLog index c308f3f..93b363a 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,46 @@ +2015-07-12 H.J. Lu + + PR gold/18321 + * compressed_output.h (decompress_input_section): Add arguments + for ELF class, big endian and sh_flags. + * compressed_output.cc (decompress_input_section): Likewise. + Support the SHF_COMPRESSED section. + * dynobj.h (Dynobj): Add elfsize and is_big_endian member + functions. + * plugin.h (Pluginobj): Likewise. + * layout.cc (Layout::get_output_section_flags): Also clear the + SHF_COMPRESSED bit. + * object.h (Compressed_section_info): Add flag to store sh_flags. + (Object): Add pure virtual elfsize and is_big_endian member + functions. + * object.cc (need_decompressed_section): Don't skip the ".zdebug" + prefix here. + (build_compressed_section_map): Check SHF_COMPRESSED for + uncompressed size. Store sh_flags in Compressed_section_info. + Pass size, big_endian and sh_flags to decompress_input_section. + Skip the ".debug"/".zdebug" prefix when passing section name to + need_decompressed_section. + (Sized_relobj_file::do_find_special_section): + Don't check ".zdebug_*" sections. + (Object::decompressed_section_contents): Pass ELF class, big + endian and sh_flags to decompress_input_section. + * reloc.cc (Sized_relobj_file::write_sections): + Likewise. + * testsuite/Makefile.am (check_DATA): Add + debug_msg_cdebug_gabi.err and gdb_index_test_2_gabi.stdout. + (MOSTLYCLEANFILES): Add debug_msg_cdebug_gabi.err and + gdb_index_test_2_gabi.stdout. + (debug_msg_cdebug_gabi.o): New. + (odr_violation1_cdebug_gabi.o): Likewise. + (odr_violation2_cdebug_gabi.o): Likewise. + (debug_msg_cdebug_gabi.err): Likewise. + (check_SCRIPTS): Add gdb_index_test_2_gabi.sh. + (gdb_index_test_cdebug_gabi.o): Likewise. + (gdb_index_test_2_gabi): Likewise. + (gdb_index_test_2_gabi.stdout): Likewise. + * testsuite/gdb_index_test_2_gabi.sh: New file. + * testsuite/Makefile.in: Regenerated. + 2015-07-09 Han Shen Use "gold_info" instead of "gold_warning" for erratum fix. -- cgit v1.1