binutils-gdb/bfd
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
..
doc Revert the AM_ZLIB change in bfd 2015-03-31 06:39:57 -07:00
hosts
po
.gitignore
acinclude.m4 Add --with-system-zlib in bfd 2015-03-29 07:13:00 -07:00
aclocal.m4 Revert the AM_ZLIB change in bfd 2015-03-31 06:39:57 -07:00
aix5ppc-core.c
aix386-core.c
aout0.c
aout32.c
aout64.c
aout-adobe.c
aout-arm.c
aout-cris.c
aout-ns32k.c
aout-sparcle.c
aout-target.h
aout-tic30.c
aoutf1.h
aoutx.h
archive64.c
archive.c Add SHF_COMPRESSED support to gas and objcopy 2015-04-08 07:54:09 -07:00
archures.c
armnetbsd.c
bfd-in2.h Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
bfd-in.h Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
bfd.c Add SHF_COMPRESSED support to gas and objcopy 2015-04-08 07:54:09 -07:00
bfd.m4
bfdio.c
bfdwin.c
binary.c
bout.c
cache.c Revert the last 2 commits on pagesize_m1 2015-04-11 19:34:42 -07:00
cf-i386lynx.c
cf-sparclynx.c
ChangeLog Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
ChangeLog-0001
ChangeLog-0203
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-9193
ChangeLog-9495
ChangeLog-9697
ChangeLog-9899
cisco-core.c
coff64-rs6000.c
coff-alpha.c
coff-apollo.c
coff-arm.c
coff-aux.c
coff-bfd.c
coff-bfd.h
coff-go32.c
coff-h8300.c
coff-h8500.c
coff-i386.c
coff-i860.c
coff-i960.c
coff-ia64.c
coff-m68k.c
coff-m88k.c
coff-mcore.c
coff-mips.c
coff-ppc.c
coff-rs6000.c
coff-sh.c
coff-sparc.c
coff-stgo32.c
coff-svm68k.c
coff-tic4x.c
coff-tic30.c
coff-tic54x.c
coff-tic80.c
coff-u68k.c
coff-w65.c
coff-we32k.c
coff-x86_64.c
coff-z8k.c
coff-z80.c
coffcode.h Fixes illegal memory access errors and arithmetic overflows when running strip on fuzzed binaries. 2015-02-26 21:32:04 +00:00
coffgen.c Fixes a bug introduced by the new ranges checks on COFF symbol tables. 2015-03-24 17:20:00 +00:00
cofflink.c
coffswap.h
compress.c Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
config.bfd Add support for configuring an aarch64-freebsd target. 2015-04-02 15:07:27 +01:00
config.in Add --with-system-zlib in bfd 2015-03-29 07:13:00 -07:00
configure Regenerate configure in bfd/binutils/gas/gdb/gold 2015-04-02 05:45:03 -07:00
configure.ac Add support for Nuxi CloudABI on x86-64 2015-03-31 08:11:08 -07:00
configure.com
configure.host
COPYING
corefile.c
cpu-aarch64.c
cpu-alpha.c
cpu-arc.c
cpu-arm.c
cpu-avr.c
cpu-bfin.c
cpu-cr16.c
cpu-cr16c.c
cpu-cris.c
cpu-crx.c
cpu-d10v.c
cpu-d30v.c
cpu-dlx.c
cpu-epiphany.c
cpu-fr30.c
cpu-frv.c
cpu-ft32.c
cpu-h8300.c
cpu-h8500.c
cpu-hppa.c
cpu-i370.c
cpu-i386.c
cpu-i860.c
cpu-i960.c
cpu-ia64-opc.c
cpu-ia64.c
cpu-ip2k.c
cpu-iq2000.c
cpu-k1om.c
cpu-l1om.c
cpu-lm32.c
cpu-m9s12x.c
cpu-m9s12xg.c
cpu-m32c.c
cpu-m32r.c
cpu-m68hc11.c
cpu-m68hc12.c
cpu-m68k.c
cpu-m88k.c
cpu-m10200.c
cpu-m10300.c
cpu-mcore.c
cpu-mep.c
cpu-metag.c
cpu-microblaze.c
cpu-mips.c
cpu-mmix.c
cpu-moxie.c
cpu-msp430.c
cpu-mt.c
cpu-nds32.c
cpu-nios2.c
cpu-ns32k.c
cpu-or1k.c
cpu-pdp11.c
cpu-pj.c
cpu-plugin.c
cpu-powerpc.c
cpu-rl78.c
cpu-rs6000.c
cpu-rx.c
cpu-s390.c S390: Place "s390:31-bit" after default arch in 64-bit arch list 2015-03-04 10:40:39 +01:00
cpu-score.c
cpu-sh.c
cpu-sparc.c
cpu-spu.c
cpu-tic4x.c
cpu-tic6x.c
cpu-tic30.c
cpu-tic54x.c
cpu-tic80.c
cpu-tilegx.c
cpu-tilepro.c
cpu-v850_rh850.c
cpu-v850.c
cpu-vax.c
cpu-visium.c
cpu-w65.c Fixes a couple of typos in the license header of the cpu-w65.c file. 2015-02-23 13:39:51 +00:00
cpu-we32k.c
cpu-xc16x.c
cpu-xgate.c
cpu-xstormy16.c
cpu-xtensa.c
cpu-z8k.c
cpu-z80.c
demo64.c
dep-in.sed
development.sh
dwarf1.c
dwarf2.c Allows the binutils to cope with PE binaries where the section addresses have been changed, but the DWARF debug info has not been altered. 2015-03-05 12:14:26 +00:00
ecoff.c
ecofflink.c
ecoffswap.h
elf32-am33lin.c
elf32-arc.c
elf32-arm.c [ARM] PR ld/16572: Remove EF_ARM_HASENTRY flag 2015-03-10 11:15:13 +00:00
elf32-avr.c AVR/ld: Use .avr.prop data during linker relaxation. 2015-02-25 23:19:11 +00:00
elf32-avr.h avr/objdump: Support dumping .avr.prop section. 2015-02-25 23:17:27 +00:00
elf32-bfin.c
elf32-cr16.c
elf32-cr16c.c
elf32-cris.c
elf32-crx.c
elf32-d10v.c
elf32-d30v.c
elf32-dlx.c
elf32-epiphany.c
elf32-fr30.c
elf32-frv.c
elf32-ft32.c
elf32-gen.c
elf32-h8300.c Add support for the h8300-linux target. 2015-02-23 17:04:53 +00:00
elf32-hppa.c
elf32-hppa.h
elf32-i370.c
elf32-i386.c Replace SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL 2015-04-11 07:56:48 -07:00
elf32-i860.c
elf32-i960.c
elf32-ip2k.c
elf32-iq2000.c
elf32-lm32.c
elf32-m32c.c
elf32-m32r.c
elf32-m68hc1x.c
elf32-m68hc1x.h
elf32-m68hc11.c
elf32-m68hc12.c
elf32-m68k.c
elf32-m88k.c
elf32-mcore.c
elf32-mep.c
elf32-metag.c
elf32-metag.h
elf32-microblaze.c
elf32-mips.c
elf32-moxie.c
elf32-msp430.c Fixes the generation of dwarf line debug information for the msp430, even in the presence of function sections and linker garbage collection. 2015-02-23 14:53:02 +00:00
elf32-mt.c
elf32-nds32.c
elf32-nds32.h
elf32-nios2.c
elf32-nios2.h
elf32-or1k.c
elf32-pj.c
elf32-ppc.c PowerPC non-PIC to PIC editing for protected var access 2015-04-07 23:00:07 +09:30
elf32-ppc.h PowerPC non-PIC to PIC editing for protected var access 2015-04-07 23:00:07 +09:30
elf32-rl78.c Fix typo in commit 6ff71e76 2015-04-15 11:26:34 +09:30
elf32-rx.c Add support to the RX toolchain to restrict the use of string instructions. 2015-04-09 12:48:37 +01:00
elf32-rx.h
elf32-s390.c S/390: Disable relocation sort against code sections. 2015-03-14 11:45:05 +01:00
elf32-score7.c
elf32-score.c
elf32-score.h
elf32-sh64-com.c
elf32-sh64.c
elf32-sh64.h
elf32-sh-relocs.h
elf32-sh-symbian.c
elf32-sh.c
elf32-sparc.c
elf32-spu.c
elf32-spu.h
elf32-tic6x.c
elf32-tic6x.h
elf32-tilegx.c
elf32-tilegx.h
elf32-tilepro.c
elf32-tilepro.h
elf32-v850.c Adds support for generating notes in V850 binaries. 2015-02-24 17:54:09 +00:00
elf32-vax.c
elf32-visium.c
elf32-xc16x.c
elf32-xgate.c
elf32-xgate.h
elf32-xstormy16.c
elf32-xtensa.c xtensa: replace action list with splay tree 2015-04-09 19:10:25 +03:00
elf32.c
elf64-alpha.c
elf64-gen.c
elf64-hppa.c
elf64-hppa.h
elf64-ia64-vms.c
elf64-mips.c
elf64-mmix.c
elf64-ppc.c Make powerpc bfd ld reloc overflow vs undefined symbols match gold 2015-03-24 17:42:36 +10:30
elf64-ppc.h
elf64-s390.c S/390: Disable relocation sort against code sections. 2015-03-14 11:45:05 +01:00
elf64-sh64.c
elf64-sparc.c
elf64-tilegx.c
elf64-tilegx.h
elf64-x86-64.c Replace SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL 2015-04-11 07:56:48 -07:00
elf64.c
elf-attrs.c
elf-bfd.h Add extern_protected_data and set it for x86 2015-04-10 11:06:34 -07:00
elf-eh-frame.c
elf-hppa.h
elf-ifunc.c
elf-linux-psinfo.h
elf-m10200.c
elf-m10300.c
elf-nacl.c
elf-nacl.h
elf-s390-common.c S/390: Disable relocation sort against code sections. 2015-03-14 11:45:05 +01:00
elf-strtab.c
elf-vxworks.c
elf-vxworks.h
elf.c Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
elfcode.h
elfcore.h
elflink.c Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
elfn32-mips.c
elfnn-aarch64.c [AArch64] Workaround for Cortex A53 erratum 843419 2015-04-01 13:16:38 +01:00
elfnn-ia64.c
elfxx-aarch64.c [AArch64] Workaround for Cortex A53 erratum 843419 2015-04-01 13:16:38 +01:00
elfxx-aarch64.h [AArch64] Workaround for Cortex A53 erratum 843419 2015-04-01 13:16:38 +01:00
elfxx-ia64.c
elfxx-ia64.h
elfxx-mips.c
elfxx-mips.h
elfxx-sparc.c
elfxx-sparc.h
elfxx-target.h Add extern_protected_data and set it for x86 2015-04-10 11:06:34 -07:00
elfxx-tilegx.c
elfxx-tilegx.h
epoc-pe-arm.c
epoc-pei-arm.c
format.c
freebsd.h
gen-aout.c
genlink.h
go32stub.h
hash.c
host-aout.c
hp300bsd.c
hp300hpux.c
hppabsd-core.c
hpux-core.c
i386aout.c
i386bsd.c
i386dynix.c
i386freebsd.c
i386linux.c
i386lynx.c
i386mach3.c
i386msdos.c
i386netbsd.c
i386os9k.c
ieee.c
ihex.c
init.c
irix-core.c
libaout.h
libbfd-in.h Allows the binutils to cope with PE binaries where the section addresses have been changed, but the DWARF debug info has not been altered. 2015-03-05 12:14:26 +00:00
libbfd.c
libbfd.h Allows the binutils to cope with PE binaries where the section addresses have been changed, but the DWARF debug info has not been altered. 2015-03-05 12:14:26 +00:00
libcoff-in.h
libcoff.h
libecoff.h
libhppa.h
libieee.h
libnlm.h
liboasys.h
libpei.h
libxcoff.h
linker.c
lynx-core.c
m68k4knetbsd.c
m68klinux.c
m68knetbsd.c
m88kmach3.c
m88kopenbsd.c
mach-o-i386.c
mach-o-target.c
mach-o-x86-64.c
mach-o.c Fixes illegal memory access errors and arithmetic overflows when running strip on fuzzed binaries. 2015-02-26 21:32:04 +00:00
mach-o.h
MAINTAINERS
Makefile.am Add --with-system-zlib in bfd 2015-03-29 07:13:00 -07:00
Makefile.in Revert the AM_ZLIB change in bfd 2015-03-31 06:39:57 -07:00
makefile.vms
mep-relocs.pl
merge.c Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
mipsbsd.c
mmo.c
netbsd-core.c
netbsd.h
newsos3.c
nlm32-alpha.c
nlm32-i386.c
nlm32-ppc.c
nlm32-sparc.c
nlm32.c
nlm64.c
nlm-target.h
nlm.c
nlmcode.h
nlmswap.h
ns32k.h
ns32knetbsd.c
oasys.c
opncls.c
osf-core.c
pc532-mach.c
pdp11.c Fix the gas test align2 for the PDP11 by ensuring that the .text and .data sections are written to their aligned sizes. 2015-02-24 10:13:51 +00:00
pe-arm-wince.c
pe-arm.c
pe-i386.c
pe-mcore.c
pe-mips.c
pe-ppc.c
pe-sh.c
pe-x86_64.c
pef-traceback.h
pef.c
pef.h
pei-arm-wince.c
pei-arm.c
pei-i386.c
pei-ia64.c
pei-mcore.c
pei-mips.c
pei-ppc.c
pei-sh.c
pei-x86_64.c
peicode.h Fixes a problem generating relocs for import libraries created by Microsoft tools for the x85_64 architecture. 2015-03-18 16:19:59 +00:00
peXXigen.c Fixes illegal memory access errors and arithmetic overflows when running strip on fuzzed binaries. 2015-02-26 21:32:04 +00:00
plugin.c
plugin.h
PORTING
ppcboot.c
ptrace-core.c
README
reloc16.c
reloc.c Add ADR :tlsgd: directive and TLSGD_ADR_PREL21 support. 2015-02-26 22:23:09 +00:00
riscix.c
rs6000-core.c
sco5-core.c
section.c Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] 2015-04-14 22:01:38 -07:00
simple.c
som.c
som.h
sparclinux.c
sparclynx.c
sparcnetbsd.c
srec.c
stab-syms.c
stabs.c
stamp-h.in
sunos.c
syms.c
sysdep.h
targets.c Add support for Nuxi CloudABI on x86-64 2015-03-31 08:11:08 -07:00
targmatch.sed
tekhex.c
TODO
trad-core.c
vax1knetbsd.c
vaxbsd.c
vaxnetbsd.c
verilog.c Fix buffer overrun in verilog code 2015-02-19 22:08:05 +10:30
versados.c
version.h Automatic date update in version.in 2015-04-15 00:00:07 +00:00
version.m4
vms-alpha.c
vms-lib.c
vms-misc.c
vms.h
warning.m4
xcofflink.c
xsym.c
xsym.h
xtensa-isa.c
xtensa-modules.c

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

BFD is an object file library.  It permits applications to use the
same routines to process object files regardless of their format.

BFD is used by the GNU debugger, assembler, linker, and the binary
utilities.

The documentation on using BFD is scanty and may be occasionally
incorrect.  Pointers to documentation problems, or an entirely
rewritten manual, would be appreciated.

There is some BFD internals documentation in doc/bfdint.texi which may
help programmers who want to modify BFD.

BFD is normally built as part of another package.  See the build
instructions for that package, probably in a README file in the
appropriate directory.

BFD supports the following configure options:

  --target=TARGET
	The default target for which to build the library.  TARGET is
	a configuration target triplet, such as sparc-sun-solaris.
  --enable-targets=TARGET,TARGET,TARGET...
	Additional targets the library should support.  To include
	support for all known targets, use --enable-targets=all.
  --enable-64-bit-bfd
	Include support for 64 bit targets.  This is automatically
	turned on if you explicitly request a 64 bit target, but not
	for --enable-targets=all.  This requires a compiler with a 64
	bit integer type, such as gcc.
  --enable-shared
	Build BFD as a shared library.
  --with-mmap
	Use mmap when accessing files.  This is faster on some hosts,
	but slower on others.  It may not work on all hosts.

Report bugs with BFD to bug-binutils@gnu.org.

Patches are encouraged.  When sending patches, always send the output
of diff -u or diff -c from the original file to the new file.  Do not
send default diff output.  Do not make the diff from the new file to
the original file.  Remember that any patch must not break other
systems.  Remember that BFD must support cross compilation from any
host to any target, so patches which use ``#ifdef HOST'' are not
acceptable.  Please also read the ``Reporting Bugs'' section of the
gcc manual.

Bug reports without patches will be remembered, but they may never get
fixed until somebody volunteers to fix them.

Copyright (C) 2012-2015 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.