Skip to content
  • H.J. Lu's avatar
    Add SHF_COMPRESSED section decompression to gold · 48058663
    H.J. Lu authored
    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<size, big_endian>::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<size, big_endian>::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.
    48058663