binutils-gdb/ld/testsuite
H.J. Lu 0ce398f106 Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]
This patch adds --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi]
to ld for ELF targets to support generating compressed DWARF debug
sections.  We always generate .zdebug_* section since section names have
been finalized and they can't be changed easily when compression is
being performed.

bfd/

	* bfd-in.h (compressed_debug_section_type): New.
	* compress.c (bfd_compress_section_contents): Add an argument
	for linker write compression and always generate .zdebug_*
	section when linking.
	(bfd_init_section_compress_status): Pass FALSE to
	bfd_compress_section_contents.
	(bfd_compress_section): New function.
	* elf.c (elf_fake_sections): For linking, set SEC_ELF_COMPRESS
	on DWARF debug sections if COMPRESS_DEBUG is set and rename
	section if COMPRESS_DEBUG_GABI_ZLIB isn't set.
	(assign_file_positions_for_non_load_sections): Set sh_offset
	to -1 if SEC_ELF_COMPRESS is set.
	(assign_file_positions_except_relocs): Likwise.
	(_bfd_elf_assign_file_positions_for_relocs): Renamed to ...
	(_bfd_elf_assign_file_positions_for_non_load): This.  Change
	return time to bfd_boolean.  Compress the section if
	SEC_ELF_COMPRESS is set.
	(_bfd_elf_write_object_contents): Updated.
	(_bfd_elf_set_section_contents): Write section contents to
	the buffer if SEC_ELF_COMPRESS is set.
	* merge.c: Include "elf-bfd.h".
	(sec_merge_emit): Add arguments for contents and offset.  Write
	to contents with offset if contents isn't NULL.
	(_bfd_write_merged_section): Write section contents to the
	buffer if SEC_ELF_COMPRESS is set.  Pass contents and
	output_offset to sec_merge_emit.
	* elflink.c (bfd_elf_final_link): Allocate the buffer for
	output section contents if SEC_ELF_COMPRESS is set.
	* section.c (SEC_ELF_COMPRESS): New.
	* bfd-in2.h: Regenerated.

gas/

	* as.h (compressed_debug_section_type): Removed.

include/

	* bfdlink.h (bfd_link_info): Add compress_debug.

ld/

	* ld.texinfo: Document --compress-debug-sections=.
	* ldmain.c (main): Set BFD_COMPRESS on output_bfd if
	COMPRESS_DEBUG is set.  Set BFD_COMPRESS_GABI on output_bfd
	for COMPRESS_DEBUG_GABI_ZLIB.
	* lexsup.c (elf_static_list_options): Add
	--compress-debug-sections=.
	* emultempl/elf32.em (OPTION_COMPRESS_DEBUG): New.
	(xtra_long): Add "compress-debug-sections".
	(gld${EMULATION_NAME}_handle_option): Handle
	OPTION_COMPRESS_DEBUG.

ld/testsuite/

	* ld-elf/compress.exp (build_tests): Add tests for
	--compress-debug-sections=.
	(run_tests): Likewise.
	Add additonal tests for --compress-debug-sections=.
	* ld-elf/gabiend.rt: New file.
	* ld-elf/gabinormal.rt: Likewise.
	* ld-elf/gnubegin.rS: Likewise.
	* ld-elf/gnunormal.rS: Likewise.
	* ld-elf/zlibbegin.rS: Likewise.
	* ld-elf/zlibnormal.rS: Likewise.
2015-04-14 22:01:38 -07:00
..
config ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-aarch64 [AArch64] Workaround for Cortex A53 erratum 843419 2015-04-01 13:16:38 +01:00
ld-alpha Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
ld-arm Modify get_reloc_section for targets that map .got.plt to .got 2015-04-07 23:22:11 +09:30
ld-auto-import ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-avr AVR/ld: Use .avr.prop data during linker relaxation. 2015-02-25 23:19:11 +00:00
ld-bootstrap Remove --with-zlib from ld 2015-03-31 03:59:04 -07:00
ld-cdtest ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-checks ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-cris Strip undefined symbols from .symtab 2015-02-19 13:36:34 +10:30
ld-crx ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-cygwin ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-d10v ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-discard ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-elf Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
ld-elfcomm ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-elfvers ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-elfvsb ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-elfweak ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-fastcall ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-frv ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-gc xfail pr18223 test for tic6x 2015-04-15 12:01:33 +09:30
ld-h8300 ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-i386 Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
ld-ia64 Strip undefined symbols from .symtab 2015-02-19 13:36:34 +10:30
ld-ifunc ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-libs ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-linkonce ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-m68hc11 ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-m68k ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-mep ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-metag ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-mips-elf Strip undefined symbols from .symtab 2015-02-19 13:36:34 +10:30
ld-misc ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-mmix Strip undefined symbols from .symtab 2015-02-19 13:36:34 +10:30
ld-mn10300 ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-nds32 ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-nios2 Nios II CALL26 linker relaxation 2014-01-30 17:47:07 -08:00
ld-pe ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-pie ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-plugin Add a testcase for PR ld/17973 2015-02-14 06:26:20 -08:00
ld-powerpc Fix ppc32 synthetic symbols when __tls_get_addr_opt stub is generated 2015-03-11 18:04:25 +10:30
ld-s390 Properly place the NULL STT_FILE symbol revistited 2015-02-18 00:31:52 +10:30
ld-scripts Allow symbols in MEMORY region specification 2015-01-28 15:06:48 +10:30
ld-selective ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-sh [SH] Fix clrs, sets, pref insn arch memberships. 2015-02-25 21:26:59 +01:00
ld-shared ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-size ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-sparc Pad only text sections at end by default 2015-02-28 22:26:56 +10:30
ld-spu ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-srec ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-tic6x Modify get_reloc_section for targets that map .got.plt to .got 2015-04-07 23:22:11 +09:30
ld-tilegx Pad only text sections at end by default 2015-02-28 22:26:56 +10:30
ld-tilepro Pad only text sections at end by default 2015-02-28 22:26:56 +10:30
ld-undefined ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-unique ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-v850 ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-vax-elf ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-versados ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-visium ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-vxworks ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-x86-64 Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
ld-xc16x ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-xstormy16 ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ld-xtensa ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
lib Remove is_zlib_supported 2015-04-06 12:19:13 -07:00
ChangeLog Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014 ChangeLog rotatation and copyright year update 2015-01-02 00:53:45 +10:30
ChangeLog-9303