binutils-gdb/bfd
H.J. Lu dd7e64d45b Optimize out i386/x86-64 JUMP_SLOT relocation
When there are both PLT and GOT references to the same function symbol,
linker will create a GOTPLT slot for PLT entry and a GOT slot for GOT
reference.  A run-time JUMP_SLOT relocation is created to update the
GOTPLT slot and a run-time GLOB_DAT relocation is created to update the
GOT slot.  Both JUMP_SLOT and GLOB_DAT relocations will apply the same
symbol value to GOTPLT and GOT slots, respectively, at run-time.

This optimization combines GOTPLT and GOT slots into a single GOT slot
and removes the run-time JUMP_SLOT relocation.  It replaces the regular
PLT entry:

	indirect jump	[GOTPLT slot]
	push		relocation index
	jump		PLT0

with an GOT PLT entry with an indirect jump via the GOT slot:

	indirect jump	[GOT slot]
	nop

and resolves PLT reference to the GOT PLT entry.

We must avoid this optimization if pointer equality is needed since
we don't clear symbol value in this case and the dynamic linker won't
update the GOT slot.  Otherwise, the resulting binary will get into an
infinite loop at run-time.

bfd/

	* elf32-i386.c (elf_i386_got_plt_entry): New.
	(elf_i386_pic_got_plt_entry): Likewise.
	(elf_i386_link_hash_entry): Add plt_got.
	(elf_i386_link_hash_table): Likewise.
	(elf_i386_link_hash_newfunc): Initialize plt_got.offset to -1.
	(elf_i386_get_local_sym_hash): Likewise.
	(elf_i386_check_relocs): Create the GOT PLT if there are both
	PLT and GOT references when the regular PLT is used.
	(elf_i386_allocate_dynrelocs): Use the GOT PLT if there are
	both PLT and GOT references unless pointer equality is needed.
	(elf_i386_relocate_section): Also check the GOT PLT when
	resolving R_386_PLT32.
	(elf_i386_finish_dynamic_symbol): Use the GOT PLT if it is
	available.

	* elf64-x86-64.c (elf_x86_64_link_hash_entry): Add plt_got.
	(elf_x86_64_link_hash_table): Likewise.
	(elf_x86_64_link_hash_newfunc): Initialize plt_got.offset to -1.
	(elf_x86_64_get_local_sym_hash): Likewise.
	(elf_x86_64_check_relocs): Create the GOT PLT if there are both
	PLT and GOT references when the regular PLT is used.
	(elf_x86_64_allocate_dynrelocs): Use the GOT PLT if there are
	both PLT and GOT references unless pointer equality is needed.
	(elf_x86_64_relocate_section): Also check the GOT PLT when
	resolving R_X86_64_PLT32.
	(elf_x86_64_finish_dynamic_symbol): Use the GOT PLT if it is
	available.

ld/

	* emulparams/elf_i386.sh (TINY_READONLY_SECTION): New.
	* emulparams/elf_x86_64.sh (TINY_READONLY_SECTION): Add .plt.got.

ld/testsuite/

	* ld-i386/i386.exp: Add run-time relocation tests for plt-main.
	* ld-i386/plt-main.rd: New file.
	* ld-x86-64/plt-main-bnd.dd: Likewise.
	* ld-x86-64/plt-main.rd: Likewise.
	* ld-x86-64/x86-64.exp: Add run-time relocation tests for
	plt-main.
2014-11-25 05:05:39 -08:00
..
doc Fix outputdots so that it doesn't errantly discard the first line of, e.g., 2014-08-05 09:00:40 -07:00
hosts Update copyright years 2014-03-05 22:16:15 +10:30
po Import updated translations supplied by the Translation Project. 2014-11-03 12:26:48 +00:00
.gitignore
acinclude.m4 Update copyright years 2014-03-05 22:16:15 +10:30
aclocal.m4 Regenerate. 2012-11-08 03:03:26 +00:00
aix5ppc-core.c Update copyright years 2014-03-05 22:16:15 +10:30
aix386-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
aout0.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
aout32.c Update copyright years 2014-03-05 22:16:15 +10:30
aout64.c Update copyright years 2014-03-05 22:16:15 +10:30
aout-adobe.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
aout-arm.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
aout-cris.c Update copyright years 2014-03-05 22:16:15 +10:30
aout-ns32k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
aout-sparcle.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
aout-target.h Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
aout-tic30.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
aoutf1.h Update copyright years 2014-03-05 22:16:15 +10:30
aoutx.h aoutx.h tidy 2014-11-07 20:40:41 +10:30
archive64.c Update copyright years 2014-03-05 22:16:15 +10:30
archive.c More fixes for memory access violations whilst scanning corrupt binaries. 2014-11-13 17:46:11 +00:00
archures.c MIPS: Add Octeon 3 support 2014-10-31 13:50:10 -07:00
armnetbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
bfd-in2.h MIPS: Add Octeon 3 support 2014-10-31 13:50:10 -07:00
bfd-in.h [AArch64] Cortex-A53 erratum 835769 linker workaround 2014-10-24 11:39:35 +01:00
bfd.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
bfd.m4 Update copyright years 2014-03-05 22:16:15 +10:30
bfdio.c Update copyright years 2014-03-05 22:16:15 +10:30
bfdwin.c Update copyright years 2014-03-05 22:16:15 +10:30
binary.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
bout.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
cache.c Account for trailing bytes read from bfd_bread 2014-07-15 13:48:08 +09:30
cf-i386lynx.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
cf-sparclynx.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
ChangeLog Optimize out i386/x86-64 JUMP_SLOT relocation 2014-11-25 05:05:39 -08:00
ChangeLog-0001 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-0203 Update copyright years 2014-03-05 22:16:15 +10:30
ChangeLog-2004 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-2005 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-2006 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-2007 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-2008 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-2009 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-2010 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-2011 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-2012 correct pr reference 2013-02-04 05:10:44 +00:00
ChangeLog-2013 New Year - binutils ChangeLog rotation 2014-01-08 05:32:12 -08:00
ChangeLog-9193 Add copyright notices 2012-12-10 12:48:03 +00:00
ChangeLog-9495 Update copyright years 2014-03-05 22:16:15 +10:30
ChangeLog-9697 Update copyright years 2014-03-05 22:16:15 +10:30
ChangeLog-9899 Update copyright years 2014-03-05 22:16:15 +10:30
cisco-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff64-rs6000.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
coff-alpha.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-apollo.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-arm.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-aux.c Change ld "notice" interface for better handling of indirect symbols 2014-08-12 20:47:36 +09:30
coff-go32.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-h8300.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-h8500.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-i386.c More fixes for problems exposed by valgrind and the address sanitizer 2014-11-10 14:27:38 +00:00
coff-i860.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-i960.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-ia64.c Update copyright years 2014-03-05 22:16:15 +10:30
coff-m68k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-m88k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-mcore.c Update copyright years 2014-03-05 22:16:15 +10:30
coff-mips.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-ppc.c Ensure coff-ppc local symbols are zero terminated 2014-08-07 15:41:46 +09:30
coff-rs6000.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
coff-sh.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-sparc.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-stgo32.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-svm68k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-tic4x.c Reorganise struct bfd 2014-07-01 20:43:14 +09:30
coff-tic30.c Update copyright years 2014-03-05 22:16:15 +10:30
coff-tic54x.c Update copyright years 2014-03-05 22:16:15 +10:30
coff-tic80.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-u68k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-w65.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-we32k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-x86_64.c More fixes for problems exposed by valgrind and the address sanitizer 2014-11-10 14:27:38 +00:00
coff-z8k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coff-z80.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
coffcode.h Add cast to unsigned int 2014-11-13 12:56:18 -08:00
coffgen.c Fixes for memory access violations exposed by fuzzinf various binaries. 2014-11-21 21:44:04 +00:00
cofflink.c More fixes for buffer overruns instigated by corrupt binaries. 2014-11-03 17:44:00 +00:00
coffswap.h Update copyright years 2014-03-05 22:16:15 +10:30
compress.c Revert changes in previous deltas that introduced new failures into 2014-11-06 14:39:58 +00:00
config.bfd Add mips*-img-elf* target triple. 2014-09-12 14:25:15 +01:00
config.in Rename configure.in to configure.ac 2014-07-04 13:40:28 +09:30
configure Update libtool.m4 from GCC trunk 2014-11-24 09:14:09 -08:00
configure.ac configury changes to make ld plugin support controlled by --enable-plugins 2014-08-14 13:46:09 +09:30
configure.com bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
configure.host Update "configure.in" in comments and doco 2014-07-04 15:06:40 +09:30
COPYING
corefile.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-aarch64.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-alpha.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-arc.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-arm.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-avr.c Add support for the AVR Tiny series of microcontrollers. 2014-07-01 10:20:17 +01:00
cpu-bfin.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-cr16.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-cr16c.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-cris.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-crx.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-d10v.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-d30v.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-dlx.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-epiphany.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-fr30.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-frv.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-h8300.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-h8500.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-hppa.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-i370.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-i386.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-i860.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-i960.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-ia64-opc.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-ia64.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-ip2k.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-iq2000.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-k1om.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-l1om.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-lm32.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m9s12x.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m9s12xg.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m32c.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m32r.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m68hc11.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m68hc12.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m68k.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m88k.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m10200.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-m10300.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-mcore.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-mep.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-metag.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-microblaze.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-mips.c MIPS: Add Octeon 3 support 2014-10-31 13:50:10 -07:00
cpu-mmix.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-moxie.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-msp430.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-mt.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-nds32.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-nios2.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-ns32k.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-or1k.c Remove support for the (deprecated) openrisc and or32 configurations and replace 2014-04-22 15:57:47 +01:00
cpu-pdp11.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-pj.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-plugin.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-powerpc.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-rl78.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-rs6000.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-rx.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-s390.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-score.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-sh.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-sparc.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-spu.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-tic4x.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-tic6x.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-tic30.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-tic54x.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-tic80.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-tilegx.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-tilepro.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-v850_rh850.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-v850.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-vax.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-w65.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-we32k.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-xc16x.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-xgate.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-xstormy16.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-xtensa.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-z8k.c Update copyright years 2014-03-05 22:16:15 +10:30
cpu-z80.c Update copyright years 2014-03-05 22:16:15 +10:30
demo64.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
dep-in.sed
development.sh Make it easy to make --disable-werror the default for both binutils and gdb 2014-06-05 05:47:29 -07:00
dwarf1.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
dwarf2.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
ecoff.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
ecofflink.c Update copyright years 2014-03-05 22:16:15 +10:30
ecoffswap.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-am33lin.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-arc.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-arm.c Support ARM Cortex-M7 2014-11-21 11:36:06 +08:00
elf32-avr.c When relaxing, update size of symbols. 2014-11-03 20:34:13 +00:00
elf32-avr.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-bfin.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-cr16.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-cr16c.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-cris.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-crx.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-d10v.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-d30v.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-dlx.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-epiphany.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-fr30.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-frv.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-gen.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-h8300.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-hppa.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf32-hppa.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-i370.c Unwrap symbols for debug information 2014-06-10 23:00:22 +09:30
elf32-i386.c Optimize out i386/x86-64 JUMP_SLOT relocation 2014-11-25 05:05:39 -08:00
elf32-i860.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-i960.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-ip2k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-iq2000.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-lm32.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-m32c.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-m32r.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-m68hc1x.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf32-m68hc1x.h Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf32-m68hc11.c Don't call bfd_link_hash_table_free 2014-06-13 19:11:29 +09:30
elf32-m68hc12.c Don't call bfd_link_hash_table_free 2014-06-13 19:11:29 +09:30
elf32-m68k.c Fix 17492, ld segfault with --oformat=binary 2014-10-16 21:18:16 +10:30
elf32-m88k.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-mcore.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-mep.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-metag.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf32-metag.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-microblaze.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-mips.c Add support for MIPS R6. 2014-09-15 12:15:55 +01:00
elf32-moxie.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-msp430.c * elf32-msp430.c (msp430_elf_relax_adjust_locals): Avoid overflow. 2014-05-20 15:42:23 -04:00
elf32-mt.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-nds32.c NDS32/bfd: Synchronize the argument type. 2014-09-22 10:15:49 +08:00
elf32-nds32.h NDS32: Code refactoring of relaxation. 2014-09-16 13:08:00 +08:00
elf32-nios2.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf32-nios2.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-or1k.c bfd: or1k: avoid emitting R_OR1K_INSN_REL_26 in shared libs 2014-08-13 23:32:51 +03:00
elf32-pj.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-ppc.c ppc476 workaround sizing 2014-11-20 21:37:02 +10:30
elf32-ppc.h Rewrite ppc32 backend .sdata and .sdata2 handling 2014-05-20 13:13:23 +09:30
elf32-rl78.c Disambiguate test for relaxation type. 2014-08-26 14:03:29 -04:00
elf32-rx.c * elf32-rx.c (rx_table_map): Use BFD_VMA_FMT for portability. 2014-06-03 16:23:21 -04:00
elf32-rx.h Add new link-map-text hook and RX auto-vector support. 2014-05-27 17:14:49 -04:00
elf32-s390.c S/390: Don't replace R_390_TLS_LE32/64 with R_390_TLS_TPOFF for PIE. 2014-09-19 12:46:50 +02:00
elf32-score7.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-score.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-score.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-sh64-com.c Update copyright years 2014-03-05 22:16:15 +10:30
elf32-sh64.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-sh64.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-sh-relocs.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-sh-symbian.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-sh.c Fix PR10373 which is SH relax bug. 2014-08-01 19:17:47 +09:00
elf32-sparc.c Fix 17492, ld segfault with --oformat=binary 2014-10-16 21:18:16 +10:30
elf32-spu.c Provide stat function for spu overlay manager iovec 2014-11-04 22:36:13 +10:30
elf32-spu.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-tic6x.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-tic6x.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-tilegx.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-tilegx.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-tilepro.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-tilepro.h Update copyright years 2014-03-05 22:16:15 +10:30
elf32-v850.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-vax.c Fix uninitialised VAX .got and .got.plt section 2014-06-16 12:28:23 +09:30
elf32-xc16x.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf32-xgate.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf32-xgate.h Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf32-xstormy16.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf32-xtensa.c Fix 'call8: call target out of range' xtensa ld relaxation bug 2014-09-23 03:41:35 +04:00
elf32.c Update copyright years 2014-03-05 22:16:15 +10:30
elf64-alpha.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
elf64-gen.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf64-hppa.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf64-hppa.h Update copyright years 2014-03-05 22:16:15 +10:30
elf64-ia64-vms.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf64-mips.c Add support for MIPS R6. 2014-09-15 12:15:55 +01:00
elf64-mmix.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elf64-ppc.c PowerPC64 --plt-align 2014-11-24 12:56:59 +10:30
elf64-ppc.h PowerPC64/BFD: Fix ppc64_elf_set_toc indentation 2014-08-21 12:31:58 +01:00
elf64-s390.c S/390: Don't replace R_390_TLS_LE32/64 with R_390_TLS_TPOFF for PIE. 2014-09-19 12:46:50 +02:00
elf64-sh64.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf64-sparc.c Fix 17492, ld segfault with --oformat=binary 2014-10-16 21:18:16 +10:30
elf64-tilegx.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf64-tilegx.h Update copyright years 2014-03-05 22:16:15 +10:30
elf64-x86-64.c Optimize out i386/x86-64 JUMP_SLOT relocation 2014-11-25 05:05:39 -08:00
elf64.c Update copyright years 2014-03-05 22:16:15 +10:30
elf-attrs.c bfd/elf-attrs.c: Fix possible infinite loop parsing attributes 2014-11-06 13:01:18 +00:00
elf-bfd.h Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
elf-eh-frame.c ld -r abort in _bfd_elf_write_section_eh_frame 2014-11-11 20:28:46 +10:30
elf-hppa.h Update copyright years 2014-03-05 22:16:15 +10:30
elf-ifunc.c Update copyright years 2014-03-05 22:16:15 +10:30
elf-linux-psinfo.h Update copyright years 2014-03-05 22:16:15 +10:30
elf-m10200.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
elf-m10300.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elf-nacl.c Update copyright years 2014-03-05 22:16:15 +10:30
elf-nacl.h Update copyright years 2014-03-05 22:16:15 +10:30
elf-s390-common.c Fix 17492, ld segfault with --oformat=binary 2014-10-16 21:18:16 +10:30
elf-strtab.c Update copyright years 2014-03-05 22:16:15 +10:30
elf-vxworks.c Update copyright years 2014-03-05 22:16:15 +10:30
elf-vxworks.h Update copyright years 2014-03-05 22:16:15 +10:30
elf.c More fixes for invalid memory accesses, uncovered by valgrind and binary fuzzers. 2014-11-11 15:34:27 +00:00
elfcode.h Fix regression for Linux vDSO in GDB (PR gdb/17407). 2014-09-18 08:24:59 +02:00
elfcore.h Update copyright years 2014-03-05 22:16:15 +10:30
elflink.c Run eh_frame optimisation for relocatable link 2014-10-13 22:58:44 +10:30
elfn32-mips.c Add support for MIPS R6. 2014-09-15 12:15:55 +01:00
elfnn-aarch64.c [AArch64] Cortex-A53 Erratum 835769 -- sort maps 2014-11-24 13:43:39 +00:00
elfnn-ia64.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elfxx-aarch64.c Fix 17492, ld segfault with --oformat=binary 2014-10-16 21:18:16 +10:30
elfxx-aarch64.h Add support for reading Aarch64 core dumps. 2014-06-13 17:07:21 +01:00
elfxx-ia64.c Update copyright years 2014-03-05 22:16:15 +10:30
elfxx-ia64.h Update copyright years 2014-03-05 22:16:15 +10:30
elfxx-mips.c bfd/ 2014-11-10 20:51:16 +00:00
elfxx-mips.h Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
elfxx-sparc.c This is a series of patches that add support for the SPARC M7 cpu to 2014-10-09 13:16:53 +01:00
elfxx-sparc.h Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
elfxx-target.h Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
elfxx-tilegx.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
elfxx-tilegx.h Update copyright years 2014-03-05 22:16:15 +10:30
epoc-pe-arm.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
epoc-pei-arm.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
format.c Update copyright years 2014-03-05 22:16:15 +10:30
freebsd.h Update copyright years 2014-03-05 22:16:15 +10:30
gen-aout.c Update copyright years 2014-03-05 22:16:15 +10:30
genlink.h Update copyright years 2014-03-05 22:16:15 +10:30
go32stub.h
hash.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
host-aout.c Update copyright years 2014-03-05 22:16:15 +10:30
hp300bsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
hp300hpux.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
hppabsd-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
hpux-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386aout.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386bsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386dynix.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386freebsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386linux.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386lynx.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386mach3.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386msdos.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
i386netbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
i386os9k.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
ieee.c Fixes for memory access violations exposed by fuzzinf various binaries. 2014-11-21 21:44:04 +00:00
ihex.c Fixes a seg-fault in the ihex parser when it encounters a malformed ihex file. 2014-10-30 17:16:17 +00:00
init.c Update copyright years 2014-03-05 22:16:15 +10:30
irix-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
libaout.h Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
libbfd-in.h Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
libbfd.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
libbfd.h Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
libcoff-in.h More fixes for buffer overruns instigated by corrupt binaries. 2014-11-03 17:44:00 +00:00
libcoff.h More fixes for memory access violations whilst scanning corrupt binaries. 2014-11-13 17:46:11 +00:00
libecoff.h Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
libhppa.h Update copyright years 2014-03-05 22:16:15 +10:30
libieee.h Fixes for memory access violations exposed by fuzzinf various binaries. 2014-11-21 21:44:04 +00:00
libnlm.h Update copyright years 2014-03-05 22:16:15 +10:30
liboasys.h Update copyright years 2014-03-05 22:16:15 +10:30
libpei.h Add support for generating and inserting build IDs into COFF binaries. 2014-04-08 10:59:43 +01:00
libxcoff.h Update copyright years 2014-03-05 22:16:15 +10:30
linker.c Change ld "notice" interface for better handling of indirect symbols 2014-08-12 20:47:36 +09:30
lynx-core.c Update copyright years 2014-03-05 22:16:15 +10:30
m68k4knetbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
m68klinux.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
m68knetbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
m88kmach3.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
m88kopenbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
mach-o-i386.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
mach-o-target.c Don't call bfd_link_hash_table_free 2014-06-13 19:11:29 +09:30
mach-o-x86-64.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
mach-o.c Fixes for memory access violations exposed by fuzzinf various binaries. 2014-11-21 21:44:04 +00:00
mach-o.h Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
MAINTAINERS Update copyright years 2014-03-05 22:16:15 +10:30
Makefile.am Update "configure.in" in comments and doco 2014-07-04 15:06:40 +09:30
Makefile.in Update "configure.in" in comments and doco 2014-07-04 15:06:40 +09:30
makefile.vms bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
mep-relocs.pl Update copyright years 2014-03-05 22:16:15 +10:30
merge.c Update copyright years 2014-03-05 22:16:15 +10:30
mipsbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
mmo.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
netbsd-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
netbsd.h Update copyright years 2014-03-05 22:16:15 +10:30
newsos3.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
nlm32-alpha.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
nlm32-i386.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
nlm32-ppc.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
nlm32-sparc.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
nlm32.c Update copyright years 2014-03-05 22:16:15 +10:30
nlm64.c Update copyright years 2014-03-05 22:16:15 +10:30
nlm-target.h Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
nlm.c Update copyright years 2014-03-05 22:16:15 +10:30
nlmcode.h Update copyright years 2014-03-05 22:16:15 +10:30
nlmswap.h Update copyright years 2014-03-05 22:16:15 +10:30
ns32k.h Update copyright years 2014-03-05 22:16:15 +10:30
ns32knetbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
oasys.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
opncls.c Fix a null pointer dereference when reading the debug link info from a corrupt file. 2014-11-14 13:39:29 +00:00
osf-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pc532-mach.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pdp11.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
pe-arm-wince.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pe-arm.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pe-i386.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pe-mcore.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pe-mips.c Avoid coff OOM 2014-11-11 22:13:57 +10:30
pe-ppc.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pe-sh.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pe-x86_64.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pef-traceback.h Update copyright years 2014-03-05 22:16:15 +10:30
pef.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
pef.h Update copyright years 2014-03-05 22:16:15 +10:30
pei-arm-wince.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pei-arm.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pei-i386.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pei-ia64.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pei-mcore.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pei-mips.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pei-ppc.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pei-sh.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
pei-x86_64.c Fixes for memory access violations exposed by fuzzinf various binaries. 2014-11-21 21:44:04 +00:00
peicode.h More fixes for memory access violations whilst scanning corrupt binaries. 2014-11-13 17:46:11 +00:00
peXXigen.c More fixes for illegal memory accesses exposed by fuzzed binaries. 2014-11-18 14:40:05 +00:00
plugin.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
plugin.h Update copyright years 2014-03-05 22:16:15 +10:30
PORTING Update "configure.in" in comments and doco 2014-07-04 15:06:40 +09:30
ppcboot.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
ptrace-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
README Update copyright years 2014-03-05 22:16:15 +10:30
reloc16.c Update copyright years 2014-03-05 22:16:15 +10:30
reloc.c NDS32: Code refactoring of relaxation. 2014-09-16 13:08:00 +08:00
riscix.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
rs6000-core.c AIX 32-bit core loading, high section addresses. 2014-03-07 12:11:40 +00:00
sco5-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
section.c Update copyright years 2014-03-05 22:16:15 +10:30
simple.c Free linker hash table from bfd_close. 2014-06-13 19:11:39 +09:30
som.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
som.h Update copyright years 2014-03-05 22:16:15 +10:30
sparclinux.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
sparclynx.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
sparcnetbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
srec.c This patch fixes a flaw in the SREC parser which could cause a stack overflow 2014-10-28 10:48:14 +00:00
stab-syms.c Update copyright years 2014-03-05 22:16:15 +10:30
stabs.c Return error status from bfd_elf_discard_info. 2014-08-18 09:33:35 +09:30
stamp-h.in
sunos.c Make bfd.link_next field a union 2014-06-13 19:10:57 +09:30
syms.c Update copyright years 2014-03-05 22:16:15 +10:30
sysdep.h Fix build time problem with MingGW hosts, which do not have a strnlen() function. 2014-03-14 11:21:00 +00:00
targets.c Merge bfd_find_nearest_line variants 2014-10-15 22:55:25 +10:30
targmatch.sed
tekhex.c tekhex architecure 2014-11-07 21:24:49 +10:30
TODO Update copyright years 2014-03-05 22:16:15 +10:30
trad-core.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
vax1knetbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
vaxbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
vaxnetbsd.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
verilog.c Don't call bfd_link_hash_table_free 2014-06-13 19:11:29 +09:30
versados.c Fixes for memory access violations exposed by fuzzinf various binaries. 2014-11-21 21:44:04 +00:00
version.h Automatic date update in version.in 2014-11-25 00:00:12 +00:00
version.m4 Bump bfd version. 2014-10-15 10:21:25 +02:00
vms-alpha.c Fixes for memory access violations exposed by fuzzinf various binaries. 2014-11-21 21:44:04 +00:00
vms-lib.c bfd target vector rationalisation 2014-05-02 20:09:40 +09:30
vms-misc.c Update copyright years 2014-03-05 22:16:15 +10:30
vms.h Update copyright years 2014-03-05 22:16:15 +10:30
warning.m4 Update "configure.in" in comments and doco 2014-07-04 15:06:40 +09:30
xcofflink.c More fixes for buffer overruns instigated by corrupt binaries. 2014-11-03 17:44:00 +00:00
xsym.c Define bfd_find_line entry of BFD_JUMP_TABLE_SYMBOLS using NAME. 2014-10-15 22:55:25 +10:30
xsym.h Update copyright years 2014-03-05 22:16:15 +10:30
xtensa-isa.c Update copyright years 2014-03-05 22:16:15 +10:30
xtensa-modules.c Update copyright years 2014-03-05 22:16:15 +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-2014 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.