This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [gold][PATCH] PR gold/18321: gold doesn't support SHF_COMPRESSED sections
- From: Cary Coutant <ccoutant at gmail dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Binutils <binutils at sourceware dot org>
- Date: Sun, 12 Jul 2015 07:23:53 -0700
- Subject: Re: [gold][PATCH] PR gold/18321: gold doesn't support SHF_COMPRESSED sections
- Authentication-results: sourceware.org; auth=none
- References: <20150424145913 dot GA388 at intel dot com> <CAJimCsGU9-L0MhvLU2SLG4r=io78wK-QLpiDcojrqtOgxkgD7g at mail dot gmail dot com> <CAMe9rOr8+cG3b8t43i+BRR-FqFuQEXM6k43XA8x+SwHzwT-RYw at mail dot gmail dot com> <CAJimCsEyUypcU3maeGWxmywP7UzQG+viUf2SVxq4yQiSmUY-dw at mail dot gmail dot com> <20150628133722 dot GA23466 at gmail dot com> <20150711182713 dot GA2823 at gmail dot com>
> 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