binutils-gdb/bfd
Senthil Kumar Selvaraj bf1865065f Fix PR ld/20545 - relaxation bugs in avr backend
Prior to the patch, addends for relocs were being adjusted even if
they went beyond an alignment boundary. This is wrong - to
preserve alignment constraints, the relaxation logic adds as many padding
bytes at the alignment boundary as was deleted, so addends beyond the
boundary should not be adjusted. avr-prop-7.s reproduces this
scenario.

Also, prior to this patch, the relaxation logic assumed that the addr
parameter pointed to the middle of the instruction to be deleted, and
that addr - count would therefore be the shrinked instruction's
address. This is true when actually shrinking instructions.

The alignment constraints handling logic also invokes the same logic
though, with addr as the starting offset of padding bytes and
with count as the number of bytes to be deleted. Calculating the
shrinked insn's address as addr - count is obviously wrong in this
case - that offset would point to count bytes before the last
non-padded byte. avr-prop-8.s reproduces this scenario.

To fix scenario 1, the patch adds an additional check to ensure reloc addends
aren't adjusted if they cross a shrink boundary. The shrink boundary
is either the section size or an alignment boundary. Addends pointing
at an alignment boundary don't need to be adjusted, as padding would
occur and keep the boundary the same. Addends pointing at section size
need to be adjusted though, as no padding occurs and the section size
itself would get decremented. The patch records whether padding
occured (did_pad) and uses that to detect and handle this condition.

To fix scenario 2, the patch adds an additional parameter
(delete_shrinks_insn) to elf32_avr_relax_delete_bytes to distinguish
instruction bytes deletion from padding bytes deletion. It then uses that to
correctly set shrinked_insn_address.

bfd/ChangeLog:

2016-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	PR ld/20545
	* elf32-avr.c (elf32_avr_relax_delete_bytes): Add parameter
	delete_shrinks_insn. Modify computation of shrinked_insn_address.
	Compute shrink_boundary and adjust addend only if
	addend_within_shrink_boundary.
	(elf32_avr_relax_section): Modify calls to
	elf32_avr_relax_delete_bytes to pass extra parameter.

ld/ChangeLog:

2016-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	PR ld/20545
	* testsuite/ld-avr/avr-prop-7.d: New test.
	* testsuite/ld-avr/avr-prop-7.s: New test.
	* testsuite/ld-avr/avr-prop-8.d: New test.
	* testsuite/ld-avr/avr-prop-8.s: New test.
2016-09-06 12:28:37 +05:30
..
doc Free the string buffer used by the chew program to hold each file it parses. 2016-08-22 14:23:19 +01:00
hosts Copyright update for binutils 2016-01-01 23:00:01 +10:30
po Update Swedish translation in bfd directory. 2016-08-01 09:59:04 +01:00
.gitignore
acinclude.m4 Copyright update for binutils 2016-01-01 23:00:01 +10:30
aclocal.m4 Regenerate Makefile.in/aclocal.m4 automake 1.11.6 2016-04-15 16:20:55 -07:00
aix5ppc-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aix386-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout0.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout-adobe.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
aout-arm.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout-cris.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout-ns32k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout-sparcle.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout-target.h Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
aout-tic30.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
aoutf1.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
aoutx.h bfd,opcodes: sparc: new opcode v9{c,d,e,v,m} architectures and bfd machine numbers. 2016-06-17 02:12:48 -07:00
arc-got.h Content for TLS_IE_GOT not written to .got. 2016-08-26 12:09:17 +02:00
arc-plt.def Add PIC and TLS support to the ARC target. 2016-01-19 15:25:58 +00:00
arc-plt.h Add PIC and TLS support to the ARC target. 2016-01-19 15:25:58 +00:00
archive64.c Enable 64-bit archives in ar and ranlib 2016-05-25 09:47:03 -07:00
archive.c Set my_archive for thin archives 2016-06-14 13:12:00 +09:30
archures.c Don't include libbfd.h outside of bfd, part 2 2016-07-16 13:27:30 +09:30
armnetbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
bfd-in2.h Reduce parameter list in bfd_elf32_arm_target_relocs 2016-08-26 14:00:39 +01:00
bfd-in.h Reduce parameter list in bfd_elf32_arm_target_relocs 2016-08-26 14:00:39 +01:00
bfd.c Rename bfd_plugin_uknown to bfd_plugin_unknown 2016-06-18 14:15:31 -07:00
bfd.m4 Copyright update for binutils 2016-01-01 23:00:01 +10:30
bfdio.c Set my_archive for thin archives 2016-06-14 13:12:00 +09:30
bfdwin.c Set my_archive for thin archives 2016-06-14 13:12:00 +09:30
binary.c Second fix for grammar in error message. 2016-07-12 15:46:02 +01:00
bout.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
cache.c Set my_archive for thin archives 2016-06-14 13:12:00 +09:30
cf-i386lynx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cf-sparclynx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
ChangeLog Fix PR ld/20545 - relaxation bugs in avr backend 2016-09-06 12:28:37 +05:30
ChangeLog-0001
ChangeLog-0203
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006 Remove trailing spaces in bfd 2015-08-12 04:32:43 -07:00
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-9193 Remove trailing spaces in bfd 2015-08-12 04:32:43 -07:00
ChangeLog-9495 Remove trailing spaces in bfd 2015-08-12 04:32:43 -07:00
ChangeLog-9697
ChangeLog-9899
cisco-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff64-rs6000.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-alpha.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-apollo.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-arm.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-aux.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-bfd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-bfd.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-go32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-h8300.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-h8500.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-i386.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-i860.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-i960.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-ia64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-m68k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-m88k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-mcore.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-mips.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-ppc.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-rs6000.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-sh.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-sparc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-stgo32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-svm68k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-tic4x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-tic30.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-tic54x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-tic80.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-u68k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-w65.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coff-we32k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-x86_64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-z8k.c Add z8k ld testsuite and fix range check in coff-z8k.c 2016-06-04 22:15:52 +02:00
coff-z80.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
coffcode.h Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
coffgen.c Fix seg-fault when running garbage collection on coff binaries. 2016-07-27 10:50:52 +01:00
cofflink.c COFF buffer overflow in mark_relocs 2016-07-15 17:02:00 +09:30
coffswap.h Use a 32-bit value to hold the section number in the internal COFF symbol structure. 2016-01-18 15:58:47 +00:00
compress.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
config.bfd Tidy up debugging in the ARC port of the BFD library. 2016-07-15 12:00:03 +01:00
config.in Enable 64-bit archives in ar and ranlib 2016-05-25 09:47:03 -07:00
configure Set BFD_VERSION to 2.27.51 2016-07-21 15:22:13 -07:00
configure.ac Add new Serbian translation for the bfd library. 2016-06-01 16:51:55 +01:00
configure.com Copyright update for binutils 2016-01-01 23:00:01 +10:30
configure.host Copyright update for binutils 2016-01-01 23:00:01 +10:30
COPYING
corefile.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-aarch64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-alpha.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-arc.c Arc assembler: Convert nps400 from a machine type to an extension. 2016-06-21 14:03:08 +01:00
cpu-arm.c Add "arm_any" architecture type to allow -m option to various binutils to match any ARM architecture. 2016-06-02 17:17:03 +01:00
cpu-avr.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-bfin.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-cr16.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-cr16c.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-cris.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-crx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-d10v.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-d30v.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-dlx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-epiphany.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-fr30.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-frv.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-ft32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-h8300.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-h8500.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-hppa.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-i370.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-i386.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-i860.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-i960.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-ia64-opc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-ia64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-iamcu.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-ip2k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-iq2000.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-k1om.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-l1om.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-lm32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m9s12x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m9s12xg.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m32c.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m32r.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m68hc11.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m68hc12.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m68k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m88k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m10200.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-m10300.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-mcore.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-mep.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-metag.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-microblaze.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-mips.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-mmix.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-moxie.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-msp430.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-mt.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-nds32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-nios2.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-ns32k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-or1k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-pdp11.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-pj.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-plugin.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-powerpc.c PowerPC VLE 2016-06-07 22:04:38 +09:30
cpu-rl78.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-rs6000.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-rx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-s390.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-score.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-sh.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-sparc.c bfd,opcodes: sparc: new opcode v9{c,d,e,v,m} architectures and bfd machine numbers. 2016-06-17 02:12:48 -07:00
cpu-spu.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-tic4x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-tic6x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-tic30.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-tic54x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-tic80.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-tilegx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-tilepro.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-v850_rh850.c Restore v850-rh850 as a recognised v850 architecture name for backwards compatibility. 2016-03-22 11:34:26 +00:00
cpu-v850.c Fix v850 bfd arch info printable names 2016-03-09 15:43:13 +00:00
cpu-vax.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-visium.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-w65.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-we32k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-xc16x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-xgate.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-xstormy16.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-xtensa.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-z8k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cpu-z80.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
demo64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
dep-in.sed
development.sh Copyright update for binutils 2016-01-01 23:00:01 +10:30
dwarf1.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
dwarf2.c Ignore DWARF debug information with a version of 0 - assume that it is padding. 2016-04-04 12:53:33 +01:00
ecoff.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
ecofflink.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
ecoffswap.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-am33lin.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-arc.c Dynamic TLS GOT entries would not be relocated. 2016-08-26 12:09:17 +02:00
elf32-arm.c 2016-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com> 2016-09-01 09:36:29 +01:00
elf32-avr.c Fix PR ld/20545 - relaxation bugs in avr backend 2016-09-06 12:28:37 +05:30
elf32-avr.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-bfin.c Fix typo in previous commit 2016-06-28 17:04:30 +01:00
elf32-cr16.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-cr16c.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-cris.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-crx.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-d10v.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-d30v.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-dlx.c dlx: move prototype of dlx_set_skip_hi16 to elf/dlx.h 2016-06-27 05:57:32 -04:00
elf32-dlx.h dlx: move prototype of dlx_set_skip_hi16 to elf/dlx.h 2016-06-27 05:57:32 -04:00
elf32-epiphany.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-fr30.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-frv.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-ft32.c FT32: Correct 32-bit reloc for BFD_RELOC_32 2016-07-08 11:53:31 -07:00
elf32-gen.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-h8300.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-hppa.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-hppa.h add more extern C 2016-06-01 21:26:32 -04:00
elf32-i370.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-i386.c i386: Issue an error on non-PIC call to IFUNC in PIC object 2016-08-29 08:14:45 -07:00
elf32-i860.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-i960.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-ip2k.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-iq2000.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-lm32.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-m32c.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-m32r.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-m68hc1x.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-m68hc1x.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-m68hc11.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-m68hc12.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-m68k.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-m88k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-mcore.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-mep.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-metag.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-metag.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-microblaze.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-mips.c MIPS16: Add R_MIPS16_PC16_S1 branch relocation support 2016-06-28 01:29:56 +01:00
elf32-moxie.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-msp430.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-mt.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-nds32.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-nds32.h add more extern C 2016-06-01 21:26:32 -04:00
elf32-nios2.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-nios2.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-or1k.c R_OR1K_GOTOFF_* relocations 2016-08-23 12:21:25 +09:30
elf32-pj.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-ppc.c PowerPC VLE sh_flags and p_flags 2016-08-31 13:18:34 +09:30
elf32-ppc.h Don't include libbfd.h outside of bfd, part 1 2016-07-16 13:25:11 +09:30
elf32-rl78.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-rx.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-rx.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-s390.c S390: Add support for core dump NOTE sections 2016-08-25 19:13:57 +02:00
elf32-score7.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-score.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-score.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-sh64-com.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-sh64.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-sh64.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-sh-relocs.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-sh-symbian.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-sh.c Fix SH GOT allocation in the presence of linker garbage collection. 2016-08-02 11:56:55 +01:00
elf32-sparc.c bfd,opcodes: sparc: new opcode v9{c,d,e,v,m} architectures and bfd machine numbers. 2016-06-17 02:12:48 -07:00
elf32-spu.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-spu.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-tic6x.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-tic6x.h add more extern C 2016-06-01 21:26:32 -04:00
elf32-tilegx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-tilegx.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-tilepro.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-tilepro.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-v850.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-vax.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-visium.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-xc16x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-xgate.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-xgate.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-xstormy16.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf32-xtensa.c xtensa: prototype xtensa_make_property_section in elf/xtensa.h 2016-06-25 11:50:33 -04:00
elf32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-alpha.c Correct the calculation of the use_counts of merged .got entries. 2016-08-09 16:18:42 +01:00
elf64-gen.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-hppa.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf64-hppa.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-ia64-vms.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf64-mips.c MIPS16: Add R_MIPS16_PC16_S1 branch relocation support 2016-06-28 01:29:56 +01:00
elf64-mmix.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf64-ppc.c Don't treat .opd section specially when ELFv2 2016-09-01 15:10:07 +09:30
elf64-ppc.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-s390.c S390: Add support for core dump NOTE sections 2016-08-25 19:13:57 +02:00
elf64-sh64.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf64-sparc.c LD/ELF: Unify STB_GNU_UNIQUE handling 2016-05-17 12:21:40 +01:00
elf64-tilegx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-tilegx.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-x86-64.c Align x86-64 .got/.got.plt sections to 8 bytes 2016-07-12 15:33:47 -07:00
elf64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-attrs.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-bfd.h Several fixes related to ARC PIE support. 2016-08-26 12:09:17 +02:00
elf-eh-frame.c Correct assertion in NIOS2 linker to allow signed 16-buit immediate values. 2016-02-10 11:25:59 +00:00
elf-hppa.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-ifunc.c Don't generate PLT for IFUNC GOT/pointer reference 2016-06-18 09:17:25 -07:00
elf-linux-core.h Convert macros in elf-linux-core.h to inline functions 2016-01-21 19:59:33 +10:30
elf-m10200.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf-m10300.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elf-nacl.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-nacl.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-s390-common.c LD/ELF: Unify STB_GNU_UNIQUE handling 2016-05-17 12:21:40 +01:00
elf-strtab.c Use size_t rather than bfd_size_type 2016-06-11 17:24:56 +09:30
elf-vxworks.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-vxworks.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf.c Lack of SHF_GROUP sections result in ld segfault 2016-08-27 09:44:22 +09:30
elfcode.h Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
elfcore.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elflink.c Correct .dynsym sh_info 2016-08-13 00:07:20 +09:30
elfn32-mips.c MIPS16: Add R_MIPS16_PC16_S1 branch relocation support 2016-06-28 01:29:56 +01:00
elfnn-aarch64.c Preserve all mapping symbols in ARM and AArch64 object files. 2016-06-29 11:17:40 +01:00
elfnn-ia64.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elfxx-aarch64.c LD/ELF: Unify STB_GNU_UNIQUE handling 2016-05-17 12:21:40 +01:00
elfxx-aarch64.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-ia64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-ia64.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-mips.c MIPS/BFD: Actually produce short microMIPS LA25 stubs 2016-08-10 22:22:50 +01:00
elfxx-mips.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-sparc.c Don't convert R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64. 2016-06-28 12:00:56 +01:00
elfxx-sparc.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-target.h Add support for creating ELF import libraries 2016-07-15 17:50:48 +01:00
elfxx-tilegx.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
elfxx-tilegx.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
epoc-pe-arm.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
epoc-pei-arm.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
format.c Fix BFD format matching for x86_64-w64-mingw32 -m32 LTO. 2016-02-16 00:27:11 +00:00
freebsd.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
gen-aout.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
genlink.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
go32stub.h
hash.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
host-aout.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
hp300bsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
hp300hpux.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
hppabsd-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
hpux-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386aout.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386bsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386dynix.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386freebsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386linux.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386lynx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386mach3.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386msdos.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
i386netbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386os9k.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
ieee.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
ihex.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
init.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
irix-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
libaout.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
libbfd-in.h Don't include libbfd.h outside of bfd, part 1 2016-07-16 13:25:11 +09:30
libbfd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
libbfd.h Fixes to legacy ARC relocations. 2016-08-26 12:09:17 +02:00
libcoff-in.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
libcoff.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
libecoff.h Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
libhppa.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
libieee.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
libnlm.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
liboasys.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
libpei.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
libxcoff.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
linker.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
lynx-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
m68k4knetbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
m68klinux.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
m68knetbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
m88kmach3.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
m88kopenbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
mach-o-aarch64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
mach-o-arm.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
mach-o-i386.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
mach-o-target.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
mach-o-x86-64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
mach-o.c Set my_archive for thin archives 2016-06-14 13:12:00 +09:30
mach-o.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
MAINTAINERS Copyright update for binutils 2016-01-01 23:00:01 +10:30
Makefile.am Fix NetBSD build with BSD and GNU make(1). 2016-02-01 10:35:38 +00:00
Makefile.in Regenerate Makefile.in/aclocal.m4 automake 1.11.6 2016-04-15 16:20:55 -07:00
makefile.vms Copyright update for binutils 2016-01-01 23:00:01 +10:30
mep-relocs.pl Copyright update for binutils 2016-01-01 23:00:01 +10:30
merge.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
mipsbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
mmo.c add casts to avoid arithmetic on void * 2016-04-26 20:09:57 -04:00
netbsd-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
netbsd.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
newsos3.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlm32-alpha.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlm32-i386.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlm32-ppc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlm32-sparc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlm32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlm64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlm-target.h Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
nlm.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlmcode.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlmswap.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
ns32k.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
ns32knetbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
oasys.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
opncls.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
osf-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pc532-mach.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pdp11.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
pe-arm-wince.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pe-arm.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pe-i386.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pe-mcore.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pe-mips.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
pe-ppc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pe-sh.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pe-x86_64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pef-traceback.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
pef.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
pef.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-arm-wince.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-arm.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-i386.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-ia64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-mcore.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-mips.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-ppc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-sh.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
pei-x86_64.c Remove use of alloca. 2016-03-21 16:31:46 +00:00
peicode.h Add support for importing data from ILF images. 2016-02-01 13:44:15 +00:00
peXXigen.c Fix possible unbounded stack use in peXXigen.c 2016-03-22 10:37:42 +00:00
plugin.c Don't include libbfd.h outside of bfd, part 6 2016-07-16 19:09:00 +09:30
plugin.h Don't include libbfd.h outside of bfd, part 6 2016-07-16 19:09:00 +09:30
PORTING Copyright update for binutils 2016-01-01 23:00:01 +10:30
ppcboot.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
ptrace-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
README Copyright update for binutils 2016-01-01 23:00:01 +10:30
reloc16.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
reloc.c Fixes to legacy ARC relocations. 2016-08-26 12:09:17 +02:00
riscix.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
rs6000-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
sco5-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
section.c [ARM] Change noread to purecode. 2016-07-05 11:28:46 +01:00
simple.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
som.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
som.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
sparclinux.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
sparclynx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
sparcnetbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
srec.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
stab-syms.c update many old style function definitions 2016-04-20 07:04:49 -04:00
stabs.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
stamp-h.in
sunos.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
syms.c Fix some places where octet to byte conversions are needed. 2016-03-11 09:17:28 +00:00
sysdep.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
targets.c Don't include libbfd.h outside of bfd, part 4 2016-07-16 13:29:35 +09:30
targmatch.sed
tekhex.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
TODO Copyright update for binutils 2016-01-01 23:00:01 +10:30
trad-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
vax1knetbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
vaxbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
vaxnetbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
verilog.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
versados.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
version.h Automatic date update in version.in 2016-09-06 00:00:19 +00:00
version.m4 Set BFD_VERSION to 2.27.51 2016-07-21 15:22:13 -07:00
vms-alpha.c Return void from linker callbacks 2016-05-28 11:17:20 +09:30
vms-lib.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
vms-misc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
vms.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
warning.m4 enable -Wwrite-strings for gas 2016-03-31 07:30:56 -04:00
xcofflink.c Set my_archive for thin archives 2016-06-14 13:12:00 +09:30
xsym.c Add support for non-ELF targets to check their relocs. 2016-04-21 15:43:00 +01:00
xsym.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
xtensa-isa.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
xtensa-modules.c Copyright update for binutils 2016-01-01 23:00:01 +10:30

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