8sa1-binutils-gdb/bfd
Nick Alcock 211bcd0133 bfd, ld, libctf: skip zero-refcount strings in CTF string reporting
This is a tricky one.  BFD, on the linker's behalf, reports symbols to
libctf via the ctf_new_symbol and ctf_new_dynsym callbacks, which
ultimately call ctf_link_add_linker_symbol.  But while this happens
after strtab offsets are finalized, it happens before the .dynstr is
actually laid out, so we can't iterate over it at this stage and
it is not clear what the reported symbols are actually called.  So
a second callback, examine_strtab, is called after the .dynstr is
finalized, which calls ctf_link_add_strtab and ultimately leads
to ldelf_ctf_strtab_iter_cb being called back repeatedly until the
offsets of every string in the .dynstr is passed to libctf.

libctf can then use this to get symbol names out of the input (which
usually stores symbol types in the form of a name -> type mapping at
this stage) and extract the types of those symbols, feeding them back
into their final form as a 1:1 association with the real symtab's
STT_OBJ and STT_FUNC symbols (with a few skipped, see
ctf_symtab_skippable).

This representation is compact, but has one problem: if libctf somehow
gets confused about the st_type of a symbol, it'll stick an entry into
the function symtypetab when it should put it into the object
symtypetab, or vice versa, and *every symbol from that one on* will have
the wrong CTF type because it's actually looking up the type for a
different symbol.

And we have just such a bug.  ctf_link_add_strtab was not taking the
refcounts of strings into consideration, so even strings that had been
eliminated from the strtab by virtue of being in objects eliminated via
--as-needed etc were being reported.  This is harmful because it can
lead to multiple strings with the same apparent offset, and if the last
duplicate to be reported relates to an eliminated symbol, we look up the
wrong symbol from the input and gets its type wrong: if it's unlucky and
the eliminated symbol is also of the wrong st_type, we will end up with
a corrupted symtypetab.

Thankfully the wrong-st_type case is already diagnosed by a
this-can-never-happen paranoid warning:

  CTF warning: Symbol 61a added to CTF as a function but is of type 1

or the converse

 * CTF warning: Symbol a3 added to CTF as a data object but is of type 2

so at least we can tell when the corruption has spread to more than one
symbol's type.

Skipping zero-refcounted strings is easy: teach _bfd_elf_strtab_str to
skip them, and ldelf_ctf_strtab_iter_cb to loop over skipped strings
until it falls off the end or finds one that isn't skipped.

bfd/ChangeLog
2021-03-02  Nick Alcock  <nick.alcock@oracle.com>

	* elf-strtab.c (_bfd_elf_strtab_str): Skip strings with zero refcount.

ld/ChangeLog
2021-03-02  Nick Alcock  <nick.alcock@oracle.com>

	* ldelfgen.c (ldelf_ctf_strtab_iter_cb): Skip zero-refcount strings.

libctf/ChangeLog
2021-03-02  Nick Alcock  <nick.alcock@oracle.com>

	* ctf-create.c (symtypetab_density): Report the symbol name as
	well as index in the name != object error; note the likely
	consequences.
	* ctf-link.c (ctf_link_shuffle_syms): Report the symbol index
	as well as name.
2021-03-02 15:10:10 +00:00
..
doc bfd: use $(LN_S) in favor of "cp -p" when populating pre-built *.texi 2021-02-15 12:10:41 +01:00
hosts Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
po RISC-V: Add bfd/cpu-riscv.h to support all spec versions controlling. 2021-02-18 15:09:16 +08:00
.gitignore
acinclude.m4 Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
aclocal.m4 Implement a workaround for GNU mak jobserver 2021-01-12 05:45:44 -08:00
aix5ppc-core.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
aix386-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
aout32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
aout64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
aout-cris.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
aout-ns32k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
aout-target.h ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
aoutx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
arc-got.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
arc-plt.def Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
arc-plt.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
archive64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
archive.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
archures.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
bfd-in2.h SHF_LINK_ORDER fixup_link_order in ld 2021-01-13 22:06:02 +10:30
bfd-in.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
bfd.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
bfd.m4 Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
bfdio.c Fix another path length problem opening files on Win32 systems. 2021-01-07 12:05:43 +00:00
bfdwin.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
binary.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
cache.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cf-i386lynx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ChangeLog bfd, ld, libctf: skip zero-refcount strings in CTF string reporting 2021-03-02 15:10:10 +00:00
ChangeLog-0001
ChangeLog-0203
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009 PR27116, Spelling errors found by Debian style checker 2021-01-01 14:36:35 +10:30
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014 PR27116, Spelling errors found by Debian style checker 2021-01-01 14:36:35 +10:30
ChangeLog-2015 PR27116, Spelling errors found by Debian style checker 2021-01-01 14:36:35 +10:30
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog-2019
ChangeLog-2020 ChangeLog rotation 2021-01-01 10:31:02 +10:30
ChangeLog-9193
ChangeLog-9495
ChangeLog-9697
ChangeLog-9899
cisco-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coff64-rs6000.c Don't handle BFD_RELOC_16 in XCOFF reloc_type_lookup 2021-02-22 14:05:13 +10:30
coff-alpha.c alpha_ecoff_get_relocated_section_contents 2021-02-15 13:34:08 +10:30
coff-arm.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coff-arm.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coff-bfd.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coff-bfd.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coff-go32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coff-i386.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coff-ia64.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coff-mcore.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coff-mips.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coff-rs6000.c Don't handle BFD_RELOC_16 in XCOFF reloc_type_lookup 2021-02-22 14:05:13 +10:30
coff-sh.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coff-stgo32.c PR27459, segmentation fault in go32exe_check_format 2021-02-24 10:55:36 +10:30
coff-tic4x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coff-tic30.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coff-tic54x.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coff-x86_64.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coff-z8k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coff-z80.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coffcode.h ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
coffgen.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cofflink.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
coffswap.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
compress.c Tidy inflateEnd calls 2021-01-16 11:11:52 +10:30
config.bfd Remove ia64 from obsolete list 2021-02-11 22:33:48 +10:30
config.in PR26469 UBSAN: elflink.c:8742 shift exponent 6148914691236511722 2020-08-27 22:05:00 +09:30
configure bfd, opcodes, libctf: support --with-included-gettext 2021-02-10 15:26:57 +00:00
configure.ac bfd, opcodes, libctf: support --with-included-gettext 2021-02-10 15:26:57 +00:00
configure.com Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
configure.host Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
COPYING
corefile.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-aarch64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-aarch64.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-alpha.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-arc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-arm.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-arm.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-avr.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-bfin.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-bpf.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-cr16.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-cris.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-crx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-csky.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-d10v.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-d30v.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-dlx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-epiphany.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-fr30.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-frv.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-ft32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-h8300.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-h8300.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-hppa.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-i386.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-ia64-opc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-ia64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-iamcu.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-ip2k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-iq2000.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-k1om.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-l1om.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-lm32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m9s12x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m9s12xg.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m32c.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m32r.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m68hc11.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m68hc12.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m68k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m68k.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m10200.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-m10300.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-mcore.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-mep.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-metag.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-microblaze.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-mips.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-mmix.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-moxie.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-msp430.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-mt.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-nds32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-nfp.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-nios2.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-ns32k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-or1k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-pdp11.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-pj.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-powerpc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-pru.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-riscv.c RISC-V: Add bfd/cpu-riscv.h to support all spec versions controlling. 2021-02-18 15:09:16 +08:00
cpu-riscv.h RISC-V: Add bfd/cpu-riscv.h to support all spec versions controlling. 2021-02-18 15:09:16 +08:00
cpu-rl78.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-rs6000.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-rx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-s12z.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-s390.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-score.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-sh.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-sparc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-spu.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-tic4x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-tic6x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-tic30.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-tic54x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-tilegx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-tilepro.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-v850_rh850.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-v850.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-vax.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-visium.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-wasm32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-xc16x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-xgate.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-xstormy16.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-xtensa.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-z8k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cpu-z80.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
dep-in.sed
development.sh Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
dwarf1.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
dwarf2.c DWARF-5: Ignore empty range in DWARF-5 line number tables 2021-01-24 07:00:49 -08:00
ecoff-bfd.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ecoff.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ecofflink.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ecoffswap.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-am33lin.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-arc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-arm.c Remove arm-symbianelf 2021-02-09 23:36:16 +10:30
elf32-arm.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-avr.c PR27294, avr OOM 2021-02-11 19:42:15 +10:30
elf32-avr.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-bfin.c bfin: Skip non SEC_ALLOC section for R_BFIN_FUNCDESC 2021-01-14 05:24:10 -08:00
elf32-bfin.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-cr16.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-cr16.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-cris.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-crx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-csky.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-csky.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-d10v.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-d30v.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-dlx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-dlx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-epiphany.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-fr30.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-frv.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-ft32.c pr27228 testcase 2021-01-26 20:54:43 +10:30
elf32-gen.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-h8300.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-hppa.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-hppa.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-i386.c ld/x86: Add -z report-relative-reloc 2021-01-15 18:07:07 -08:00
elf32-ip2k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-iq2000.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-lm32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-m32c.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-m32r.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-m68hc1x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-m68hc1x.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-m68hc11.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-m68hc12.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-m68k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-m68k.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-mcore.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-mep.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-metag.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-metag.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-microblaze.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-mips.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-moxie.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-msp430.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-mt.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-nds32.c nds32_elf_get_relocated_section_contents 2021-02-15 13:34:08 +10:30
elf32-nds32.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-nios2.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-nios2.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-or1k.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-pj.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-ppc.c PowerPC: Don't generate unused section symbols 2021-01-20 16:12:06 +10:30
elf32-ppc.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-pru.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-rl78.c Wrong operand for SADDR (rl78) 2021-02-01 16:45:26 +00:00
elf32-rx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-rx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-s12z.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-s390.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-score7.c score-elf binutils-all/strip-13 fail 2021-01-06 21:03:55 +10:30
elf32-score.c score-elf binutils-all/strip-13 fail 2021-01-06 21:03:55 +10:30
elf32-score.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-sh-relocs.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-sh.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-sparc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-spu.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-spu.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-tic6x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-tic6x.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-tilegx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-tilegx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-tilepro.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-tilepro.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-v850.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-v850.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-vax.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-visium.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-wasm32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-xc16x.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-xgate.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-xstormy16.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-xtensa.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32-z80.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf32.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-alpha.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-bpf.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-gen.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-hppa.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-hppa.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-ia64-vms.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-mips.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-mmix.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-nfp.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-ppc.c PR27451, -z start_stop_gc for powerpc64 2021-03-02 21:49:56 +10:30
elf64-ppc.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-s390.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-sparc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-tilegx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-tilegx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf64-x86-64.c x86-64: Provide more info when failed to convert GOTPCREL 2021-02-04 06:06:44 -08:00
elf64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-attrs.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-bfd.h PR27441, inconsistency in weak definitions 2021-02-25 14:19:24 +10:30
elf-eh-frame.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-hppa.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-ifunc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-linker-x86.h ld/x86: Add -z report-relative-reloc 2021-01-15 18:07:07 -08:00
elf-linux-core.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-m10200.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-m10300.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-nacl.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-nacl.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-properties.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-s390-common.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-s390.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-strtab.c bfd, ld, libctf: skip zero-refcount strings in CTF string reporting 2021-03-02 15:10:10 +00:00
elf-vxworks.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf-vxworks.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elf.c bfd: add elfcore_write_file_note 2021-01-26 13:22:35 +01:00
elfcode.h ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
elfcore.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elflink.c PR27451, -z start_stop_gc 2021-03-01 17:28:03 +10:30
elfn32-mips.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfnn-aarch64.c When displaying ARM private file flag bits, use a 0x prefix. 2021-01-04 15:13:57 +00:00
elfnn-ia64.c Revert "ia64: Check UNDEFWEAK_NO_DYNAMIC_RELOC" 2021-02-11 22:33:48 +10:30
elfnn-riscv.c RISC-V: PR27158, fixed UJ/SB types and added CSS/CL/CS types for .insn. 2021-02-19 11:44:49 +08:00
elfxx-aarch64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-aarch64.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-ia64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-ia64.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-mips.c Modernise _bfd_elf_mips_get_relocated_section_contents 2021-02-14 22:54:34 +10:30
elfxx-mips.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-riscv.c RISC-V: PR27158, fixed UJ/SB types and added CSS/CL/CS types for .insn. 2021-02-19 11:44:49 +08:00
elfxx-riscv.h RISC-V: Add bfd/cpu-riscv.h to support all spec versions controlling. 2021-02-18 15:09:16 +08:00
elfxx-sparc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-sparc.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-target.h ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
elfxx-tilegx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-tilegx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
elfxx-x86.c ld/elf/x86: Don't compare IFUNC address in the shared object 2021-01-16 07:02:36 -08:00
elfxx-x86.h ld/x86: Add -z report-relative-reloc 2021-01-15 18:07:07 -08:00
format.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
gen-aout.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
genlink.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
go32stub.h
hash.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
host-aout.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
hppabsd-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
hpux-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
i386aout.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
i386bsd.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
i386lynx.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
i386msdos.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
ihex.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
init.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
irix-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
libaout.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
libbfd-in.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
libbfd.c ubsan: shift exponent is too large 2021-02-16 19:31:15 +10:30
libbfd.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
libcoff-in.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
libcoff.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
libecoff.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
libhppa.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
libpei.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
libxcoff.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
linker.c PR27451, -z start_stop_gc 2021-03-01 17:28:03 +10:30
lynx-core.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mach-o-aarch64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mach-o-arm.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mach-o-i386.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mach-o-target.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
mach-o-x86-64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mach-o.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mach-o.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
MAINTAINERS Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
Makefile.am RISC-V: Add bfd/cpu-riscv.h to support all spec versions controlling. 2021-02-18 15:09:16 +08:00
Makefile.in RISC-V: Add bfd/cpu-riscv.h to support all spec versions controlling. 2021-02-18 15:09:16 +08:00
makefile.vms Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mep-relocs.pl Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
merge.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mmo.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
netbsd-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
netbsd.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ns32k.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ns32knetbsd.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
opncls.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
osf-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
pc532-mach.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pdp11.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
pe-arm-wince.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pe-arm.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pe-i386.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pe-mcore.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pe-sh.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pe-x86_64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pef-traceback.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pef.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
pef.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pei-arm-wince.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pei-arm.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pei-i386.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pei-ia64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pei-mcore.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pei-sh.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pei-x86_64.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
peicode.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
peXXigen.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
plugin.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
plugin.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
PORTING Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ppcboot.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
ptrace-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
README Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
reloc16.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
reloc.c elf/x86-64: Adjust R_AMD64_DIR64/R_AMD64_DIR32 for PE/x86-64 inputs 2021-01-12 05:19:24 -08:00
rs6000-core.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
sco5-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
section.c PR27291, integer overflow in bfd_get_section_contents 2021-02-11 11:58:19 +10:30
simple.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
som.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
som.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
srec.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
stab-syms.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
stabs.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
stamp-h.in
syms.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
sysdep.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
targets.c Remove arm-symbianelf 2021-02-09 23:36:16 +10:30
targmatch.sed
tekhex.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
TODO Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
trad-core.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
vax1knetbsd.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
vaxnetbsd.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
verilog.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
version.h Automatic date update in version.in 2021-03-02 00:00:18 +00:00
version.m4 Change version number to 2.36.50 and regenerate files 2021-01-09 11:01:01 +00:00
vms-alpha.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
vms-lib.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
vms-misc.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
vms.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
warning.m4 Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
wasm-module.c read_leb128 overflow checking 2021-02-17 16:57:59 +10:30
wasm-module.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
xcofflink.c PR27116, Spelling errors found by Debian style checker 2021-01-01 14:36:35 +10:30
xcofflink.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
xsym.c ELF: Don't generate unused section symbols 2021-01-07 06:46:55 -08:00
xsym.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
xtensa-isa.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
xtensa-modules.c Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +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-2021 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.