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
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
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
ld-checks
ld-cris Strip undefined symbols from .symtab 2015-02-19 13:36:34 +10:30
ld-crx
ld-cygwin
ld-d10v
ld-discard
ld-elf Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
ld-elfcomm
ld-elfvers
ld-elfvsb
ld-elfweak
ld-fastcall
ld-frv
ld-gc xfail pr18223 test for tic6x 2015-04-15 12:01:33 +09:30
ld-h8300
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
ld-libs
ld-linkonce
ld-m68hc11
ld-m68k
ld-mep
ld-metag
ld-mips-elf Strip undefined symbols from .symtab 2015-02-19 13:36:34 +10:30
ld-misc
ld-mmix Strip undefined symbols from .symtab 2015-02-19 13:36:34 +10:30
ld-mn10300
ld-nds32
ld-nios2
ld-pe
ld-pie
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
ld-sh [SH] Fix clrs, sets, pref insn arch memberships. 2015-02-25 21:26:59 +01:00
ld-shared
ld-size
ld-sparc Pad only text sections at end by default 2015-02-28 22:26:56 +10:30
ld-spu
ld-srec
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
ld-unique
ld-v850
ld-vax-elf
ld-versados
ld-visium
ld-vxworks
ld-x86-64 Add -z noextern-protected-data to ld for ELF/x86 2015-04-14 04:13:11 -07:00
ld-xc16x
ld-xstormy16
ld-xtensa
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-9303