binutils-gdb/bfd
Maciej W. Rozycki 1f599d0e7b ELF/LD: Avoid producing hidden and internal dynamic symbols
Always turn hidden and internal symbols which have a dynamic index into
local ones.  This is required by the the ELF gABI[1]:

"A hidden symbol contained in a relocatable object must be either
removed or converted to STB_LOCAL binding by the link-editor when the
relocatable object is included in an executable file or shared object."

"An internal symbol contained in a relocatable object must be either
removed or converted to STB_LOCAL binding by the link-editor when the
relocatable object is included in an executable file or shared object."

The ELF linker usually respects this requirement, however in the case
where a dynamic symbol has been preallocated due to a reference of the
default export class aka visibility from the object being linked, and
then merged with a hidden or internal symbol definition from within the
same object, then the original export class is carried over to the
output dynamic symbol table, because while merging the generic ELF
linker only converts affected dynamic symbols to local when they are
defined or referenced by the object being linked and a dynamic object
involved in the link both at a time.

The dynamic symbol produced confuses then the dynamic loader at the run
time -- the hidden or internal export class is ignored and the symbol
follows preemption rules as with the default export class.

In the MIPS target it happens when `mips_elf_record_global_got_symbol'
creates a dynamic symbol when a call relocation is encountered.
Additionally if the undefined symbol referred by such a relocation does
specify the intended export class, then a local dynamic symbol is
created instead, which is harmless and allowed, but useless.  Normally
no local dynamic symbols are created, except for a single dummy one at
the beginning.

Correct the problem by removing the extra check for a dynamic symbol
being defined or referenced by the object being linked and a dynamic
object involved in the link both at a time.  The test cases included
cover the internal and hidden symbol cases, as well as a protected
symbol for a reference, the handling of which is unchanged by this fix.
Both cases described above are covered, that is where an internal or
hidden dynamic symbol is produced and where a local one is.

NB this change affects CRIS results where some symbols in the static
table produced in a final link are now converted from STV_HIDDEN to
STB_LOCAL.  This happens whenever the `elf_backend_hide_symbol' handler
is called, so the affected symbols must have been chosen for entering
into the dynamic symbol table, except in these test cases no such symbol
table is produced.  In fully linked binaries the static symbol table is
only used for debugging though, so such a change is fine.

References:

[1] "System V Application Binary Interface - DRAFT - 24 April 2001",
    The Santa Cruz Operation, Inc., "Symbol Table",
    <http://www.sco.com/developers/gabi/2001-04-24/ch4.symtab.html>

	bfd/
	PR ld/19908
	* elflink.c (elf_link_add_object_symbols): Always turn hidden
	and internal symbols which have a dynamic index into local
	ones.

	ld/
	PR ld/19908
	* testsuite/ld-cris/tls-e-20.d: Adjust for hidden symbol
	handling fix.
	* testsuite/ld-cris/tls-e-20a.d: Likewise.
	* testsuite/ld-cris/tls-e-21.d: Likewise.
	* testsuite/ld-cris/tls-e-23.d: Likewise.
	* testsuite/ld-cris/tls-e-80.d: Likewise.
	* testsuite/ld-cris/tls-gd-3h.d: Likewise.
	* testsuite/ld-cris/tls-leie-19.d: Likewise.
	* testsuite/ld-mips-elf/export-class-ref-lib.sd: New test.
	* testsuite/ld-mips-elf/export-hidden-ref.sd: New test.
	* testsuite/ld-mips-elf/export-internal-ref.sd: New test.
	* testsuite/ld-mips-elf/export-protected-ref.sd: New test.
	* testsuite/ld-mips-elf/export-class-ref-f0.s: New test source.
	* testsuite/ld-mips-elf/export-class-ref-f1.s: New test source.
	* testsuite/ld-mips-elf/export-class-ref-f2.s: New test source.
	* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
2016-04-05 15:14:54 +01:00
..
doc Copyright update for binutils 2016-01-01 23:00:01 +10:30
hosts Copyright update for binutils 2016-01-01 23:00:01 +10:30
po Regenerate bfd files. 2016-03-02 13:37:47 +10:30
.gitignore
COPYING
ChangeLog ELF/LD: Avoid producing hidden and internal dynamic symbols 2016-04-05 15:14:54 +01:00
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 rotatation and copyright year update 2015-01-02 00:53:45 +10:30
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
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 bfd files. 2016-03-02 13:37:47 +10:30
PORTING 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
TODO Copyright update for binutils 2016-01-01 23:00:01 +10:30
acinclude.m4 Copyright update for binutils 2016-01-01 23:00:01 +10:30
aclocal.m4 Revert the AM_ZLIB change in bfd 2015-03-31 06:39:57 -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
aout-adobe.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
aout-tic30.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
aoutf1.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
aoutx.h Prevent a seg-fault in the linker when accessing a specially crafted, corrupt, aout binary. 2016-02-19 15:55:06 +00: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
archive.c Allow zero length archive elements. 2016-03-07 17:29:25 +00:00
archive64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
archures.c arc: Add nps400 machine type, and assembler flag. 2016-03-21 16:44:49 +00:00
armnetbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
bfd-in.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
bfd-in2.h arc: Add nps400 machine type, and assembler flag. 2016-03-21 16:44:49 +00:00
bfd.c Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
bfd.m4 Copyright update for binutils 2016-01-01 23:00:01 +10:30
bfdio.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
bfdwin.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
binary.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
bout.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cache.c Copyright update for binutils 2016-01-01 23:00:01 +10: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
cisco-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-alpha.c Allow zero length archive elements 2016-03-09 16:54:24 +10:30
coff-apollo.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-arm.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-h8500.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-mips.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-ppc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-rs6000.c Use a 32-bit value to hold the section number in the internal COFF symbol structure. 2016-01-18 15:58:47 +00:00
coff-sh.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-u68k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-w65.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff-z80.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
coff64-rs6000.c Use a 32-bit value to hold the section number in the internal COFF symbol structure. 2016-01-18 15:58:47 +00:00
coffcode.h PE/COFF regression in base of code and data calculation 2016-03-29 16:03:07 +10:30
coffgen.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
cofflink.c For COFF and COFF/PE targets, skip relocations against absolute symbols. 2016-03-09 15:26:45 +00:00
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 Mark the i370 target as obsolete. 2016-03-10 15:29:42 +00:00
config.in Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
configure enable -Wwrite-strings for gas 2016-03-31 07:30:56 -04:00
configure.ac Properly implement STT_COMMON 2016-02-26 05:01:34 -08: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
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: Add nps400 machine type, and assembler flag. 2016-03-21 16:44:49 +00:00
cpu-arm.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
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.c Fix v850 bfd arch info printable names 2016-03-09 15:43:13 +00:00
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-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 Copyright update for binutils 2016-01-01 23:00:01 +10: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
elf-attrs.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-bfd.h Enhance GAS's .section directive so that it can take numeric values for the flags and type fields. (ELF only) 2016-02-15 11:11:46 +00: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-m10300.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf-strtab.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Fix some places where octet to byte conversions are needed. 2016-03-11 09:17:28 +00:00
elf32-am33lin.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-arc.c arc: Add nps400 machine type, and assembler flag. 2016-03-21 16:44:49 +00:00
elf32-arm.c Fix unexpected failures in the linker testsuite for ARM VxWorks targets. 2016-01-21 10:51:25 +00:00
elf32-avr.c Fix a seg-fault in the AVR linker. 2016-03-30 14:52:26 +01:00
elf32-avr.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-bfin.c Relax assertion in BFIN linker to allow for discard GOT relocs. 2016-03-29 10:24:16 +01:00
elf32-cr16.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-cr16c.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-cris.c Fix test-case ld-elf/pr19617b 2016-02-23 02:06:45 +01:00
elf32-crx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-d10v.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-d30v.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-dlx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-epiphany.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-fr30.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-frv.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-ft32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-gen.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-h8300.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-hppa.c Fix /usr/bin/ld: final link failed: File truncated error on hppa. 2016-01-31 11:52:24 -05:00
elf32-hppa.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-i370.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-i386.c Bind defined symbol locally in PIE 2016-03-15 11:47:06 -07:00
elf32-i860.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-i960.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-ip2k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-iq2000.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-lm32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-m32c.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-m32r.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-m68hc1x.c Remove use of alloca. 2016-03-21 16:31:46 +00:00
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 Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-metag.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-metag.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-microblaze.c Fix the genetation of GOT entries for the Microblaze target. 2016-02-23 10:37:24 +00:00
elf32-mips.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-moxie.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-msp430.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-mt.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-nds32.c Remove use of alloca. 2016-03-21 16:31:46 +00:00
elf32-nds32.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-nios2.c Correct assertion in NIOS2 linker to allow signed 16-buit immediate values. 2016-02-10 11:25:59 +00:00
elf32-nios2.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-or1k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-pj.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-ppc.c Convert macros in elf-linux-core.h to inline functions 2016-01-21 19:59:33 +10:30
elf32-ppc.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-rl78.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-rx.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-rx.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-s390.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-score.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-score.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-score7.c 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 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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-sh64.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-sparc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-spu.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-spu.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-tic6x.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-tic6x.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-tilepro.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-v850.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-vax.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-visium.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32-xtensa.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf32.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-alpha.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-gen.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-hppa.c Remove use of alloca. 2016-03-21 16:31:46 +00:00
elf64-hppa.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-ia64-vms.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-mips.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-mmix.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-ppc.c Fix powerpc64 -r --save-restore-funcs 2016-02-26 23:03:23 +10:30
elf64-ppc.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-s390.c elf64-s390.c: Fix -Werror=misleading-indentation 2016-02-01 03:47:47 +01:00
elf64-sh64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elf64-sparc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Bind defined symbol locally in PIE 2016-03-15 11:47:06 -07:00
elf64.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 ELF/LD: Avoid producing hidden and internal dynamic symbols 2016-04-05 15:14:54 +01:00
elfn32-mips.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfnn-aarch64.c [AArch64] Create .got section if _GLOBAL_OFFSET_TABLE_ referenced 2016-03-07 15:40:50 +00:00
elfnn-ia64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-aarch64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Remove use of alloca. 2016-03-21 16:31:46 +00:00
elfxx-mips.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-sparc.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-sparc.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
elfxx-target.h Properly implement STT_COMMON 2016-02-26 05:01:34 -08:00
elfxx-tilegx.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386netbsd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
i386os9k.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
ieee.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
ihex.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
libbfd.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
libbfd.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
mach-o-x86-64.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
mach-o.c Add missing end-of-comment marker to previous delta. (Doh!) 2016-01-25 09:44:18 +00:00
mach-o.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
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
nlm-target.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
nlm.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
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 Fix compile time warnings building the binutils with a gcc6 compiler. 2016-02-09 16:34:24 +00: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 Copyright update for binutils 2016-01-01 23:00:01 +10: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 Fix formatting of pe-mips.c file. 2016-02-05 10:15:26 +00:00
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
peXXigen.c Fix possible unbounded stack use in peXXigen.c 2016-03-22 10:37:42 +00:00
pef-traceback.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
pef.c Remove use of alloca. 2016-03-21 16:31:46 +00: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
plugin.c Binutils fails to build with -O0 2016-03-22 14:24:30 +10:30
plugin.h Copyright update for binutils 2016-01-01 23:00:01 +10:30
ppcboot.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
ptrace-core.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
reloc.c Fix some places where octet to byte conversions are needed. 2016-03-11 09:17:28 +00:00
reloc16.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Fix some places where octet to byte conversions are needed. 2016-03-11 09:17:28 +00:00
simple.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
som.c Remove use of alloca. 2016-03-21 16:31:46 +00: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
stab-syms.c Copyright update for binutils 2016-01-01 23:00:01 +10:30
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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
targmatch.sed
tekhex.c 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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
version.h Automatic date update in version.in 2016-04-05 00:00:18 +00:00
version.m4 Bump version to 2.26.51 2015-11-14 16:24:39 -08:00
vms-alpha.c Copyright update for binutils 2016-01-01 23:00:01 +10: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 Copyright update for binutils 2016-01-01 23:00:01 +10:30
xsym.c Remove use of alloca. 2016-03-21 16:31:46 +00: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

README

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.