[gold][PATCH] PR gold/18321: gold doesn't support SHF_COMPRESSED sections

Cary Coutant ccoutant@gmail.com
Sun Jul 12 14:23:00 GMT 2015


> 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.

This is OK. Thanks!

-cary



More information about the Binutils mailing list