and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 29 Jun, 2016 4 commits
    • Tristan Gingold's avatar
      Bump to 2.26.1, commit generated files. · c29838e7
      Tristan Gingold authored
      bfd/
      2016-06-29  Tristan Gingold  <gingold@adacore.com>
      
      	* version.m4: Bump version to 2.26.1
      	* configure: Regenerate.
      
      binutils/
      2016-06-29  Tristan Gingold  <gingold@adacore.com>
      
      	* configure: Regenerate.
      
      gas/
      2016-06-29  Tristan Gingold  <gingold@adacore.com>
      
      	* configure: Regenerate.
      
      gprof/
      2016-06-29  Tristan Gingold  <gingold@adacore.com>
      
      	* configure: Regenerate.
      
      ld/
      2016-06-29  Tristan Gingold  <gingold@adacore.com>
      
      	* configure: Regenerate.
      
      opcodes/
      2016-06-29  Tristan Gingold  <gingold@adacore.com>
      
      	* configure: Regenerate.
      c29838e7
    • Maciej W. Rozycki's avatar
      MIPS/GAS: Fix an ISA override not lifting ABI restrictions · 5475e324
      Maciej W. Rozycki authored
      Correct a regression introduced with commit 919731af ("Add MIPS
      .module directive") causing code like:
      
      	.set	mips3
      	dli	$2, 0x9000000080000000
      
      to fail assembly with the following error message produced:
      
      Error: number (0x9000000080000000) larger than 32 bits
      
      if built with `mips3' selected as the global ISA (e.g. `-march=mips3').
      This is because a `.set' directive doing an ISA override does not lift
      the ABI restriction on register sizes if the ISA remains unchanged.
      Previously the directive always set register sizes from the ISA chosen,
      which is what some code expects.  Restore the old semantics then.
      
      	gas/
      	* config/tc-mips.c (code_option_type): New enum.
      	(parse_code_option): Return status indicating option type.
      	(s_mipsset): Update `parse_code_option' call site accordingly.
      	Always set register sizes from the ISA with ISA overrides.
      	(s_module): Update `parse_code_option' call site.
      	* testsuite/gas/mips/isa-override-1.d: New test.
      	* testsuite/gas/mips/micromips@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips1@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips2@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips32@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips32r2@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips32r3@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips32r5@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips32r6@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips64r2@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips64r3@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips64r5@isa-override-1.d: New test.
      	* testsuite/gas/mips/mips64r6@isa-override-1.d: New test.
      	* testsuite/gas/mips/r3000@isa-override-1.d: New test.
      	* testsuite/gas/mips/r3900@isa-override-1.d: New test.
      	* testsuite/gas/mips/r5900@isa-override-1.d: New test.
      	* testsuite/gas/mips/octeon@isa-override-1.d: New test.
      	* testsuite/gas/mips/octeon3@isa-override-1.d: New test.
      	* testsuite/gas/mips/isa-override-2.l: New list test.
      	* testsuite/gas/mips/mips1@isa-override-2.l: New list test.
      	* testsuite/gas/mips/mips2@isa-override-2.l: New list test.
      	* testsuite/gas/mips/mips32@isa-override-2.l: New list test.
      	* testsuite/gas/mips/mips32r2@isa-override-2.l: New list test.
      	* testsuite/gas/mips/mips32r3@isa-override-2.l: New list test.
      	* testsuite/gas/mips/mips32r5@isa-override-2.l: New list test.
      	* testsuite/gas/mips/mips32r6@isa-override-2.l: New list test.
      	* testsuite/gas/mips/r3000@isa-override-2.l: New list test.
      	* testsuite/gas/mips/r3900@isa-override-2.l: New list test.
      	* testsuite/gas/mips/octeon3@isa-override-2.l: New list test.
      	* testsuite/gas/mips/octeon3@isa-override-1.l: New stderr
      	output.
      	* testsuite/gas/mips/isa-override-1.s: New test source.
      	* testsuite/gas/mips/r5900@isa-override-1.s: New test source.
      	* testsuite/gas/mips/isa-override-2.s: New test source.
      	* testsuite/gas/mips/mips1@isa-override-2.s: New test source.
      	* testsuite/gas/mips/mips2@isa-override-2.s: New test source.
      	* testsuite/gas/mips/mips32@isa-override-2.s: New test source.
      	* testsuite/gas/mips/mips32r2@isa-override-2.s: New test source.
      	* testsuite/gas/mips/mips32r3@isa-override-2.s: New test source.
      	* testsuite/gas/mips/mips32r5@isa-override-2.s: New test source.
      	* testsuite/gas/mips/mips32r6@isa-override-2.s: New test source.
      	* testsuite/gas/mips/r3000@isa-override-2.s: New test source.
      	* testsuite/gas/mips/r3900@isa-override-2.s: New test source.
      	* testsuite/gas/mips/octeon3@isa-override-2.s: New test source.
      	* testsuite/gas/mips/mips.exp: Run the new tests.
      
      (cherry picked from commit 22522f88)
      5475e324
    • Maciej W. Rozycki's avatar
      GAS: Fix `abort' expansion in write.c · 1aa66afd
      Maciej W. Rozycki authored
      Remove an internal diagnostic regression introduced with the inclusion of
      "libbfd.h" from write.c, added with:
      
      commit e7ff5c73
      Author: Alan Modra <amodra@gmail.com>
      Date:   Fri Feb 16 03:40:17 2007 +0000
      
      That change made "libbfd.h" override the `abort' definition provided by
      "as.h" earlier on, making the message produced by any calls reached from
      write.c, which is a part of the GAS proper, look like they came from
      BFD, e.g.:
      
      .../gas/testsuite/gas/elf/type.s: Assembler messages:
      .../gas/testsuite/gas/elf/type.s:30: Error: symbol type "gnu_unique_object" is supported only by GNU targets
      ../as-new: BFD (GNU Binutils) 2.26.51.20160628 internal error, aborting at .../gas/write.c:608 in size_seg
      
      ../as-new: Please report this bug.
      
      vs:
      
      .../gas/testsuite/gas/elf/type.s: Assembler messages:
      .../gas/testsuite/gas/elf/type.s:30: Error: symbol type "gnu_unique_object" is supported only by GNU targets
      .../gas/testsuite/gas/elf/type.s: Internal error, aborting at .../gas/write.c:602 in size_seg
      Please report this bug.
      
      With the removal of "libbfd.h" restore the latter message format.
      
      	gas/
      	* write.c: Remove "libbfd.h" inclusion.
      
      (cherry picked from commit 6d44f09a)
      1aa66afd
    • GDB Administrator's avatar
      Automatic date update in version.in · 9d1b87de
      GDB Administrator authored
      9d1b87de
  2. 28 Jun, 2016 4 commits
  3. 27 Jun, 2016 1 commit
  4. 26 Jun, 2016 1 commit
  5. 25 Jun, 2016 1 commit
  6. 24 Jun, 2016 1 commit
  7. 23 Jun, 2016 2 commits
    • Peter Bergner's avatar
      Add support for yet some more new ISA 3.0 instructions. · 6bc1aeca
      Peter Bergner authored
      opcodes/
      	Apply from master.
      	2016-06-22  Peter Bergner  <bergner@vnet.ibm.com>
      
      	* ppc-opc.c (RM, DRM, VXASH, VXASH_MASK, XMMF, XMMF_MASK): New defines.
      	(powerpc_opcodes) <brd, brh, brw, mffsce, mffscdrn, mffscdrni,
      	mffscrn, mffscrni, mffsl, nandxor, rldixor, setbool,
      	xor3>: New mnemonics.
      	<setb>: Change to a VX form instruction.
      	(insert_sh6): Add support for rldixor.
      	(extract_sh6): Likewise.
      
      gas/
      	Apply from master.
      	2016-06-22  Peter Bergner  <bergner@vnet.ibm.com>
      
      	* testsuite/gas/ppc/power9.d <brd, brh, brw, mffs, mffs., mffsce,
      	mffscdrn, mffscdrni, mffscrn, mffscrni, mffsl, nandxor, rldixor,
      	setbool, xor3>: New tests.
      	* testsuite/gas/ppc/power9.s: Likewise.
      6bc1aeca
    • GDB Administrator's avatar
      Automatic date update in version.in · 0845f860
      GDB Administrator authored
      0845f860
  8. 22 Jun, 2016 1 commit
  9. 21 Jun, 2016 1 commit
  10. 20 Jun, 2016 1 commit
  11. 19 Jun, 2016 1 commit
  12. 18 Jun, 2016 1 commit
  13. 17 Jun, 2016 1 commit
  14. 16 Jun, 2016 1 commit
  15. 15 Jun, 2016 2 commits
    • Senthil Kumar Selvaraj's avatar
      Fix PR ld/20254 · 30d923a4
      Senthil Kumar Selvaraj authored
      This patch fixes another edge case related to alignment property
      records - reloc offsets adjacent to property record offsets were not
      getting adjusted during relaxation.
      
      bfd/
      
      	PR ld/20254
      	* elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust reloc
      	offsets until reloc_toaddr.
      
      ld/
      
      	PR ld/20254
      	* testsuite/ld-avr/avr-prop-6.d: New test.
      	* testsuite/ld-avr/avr-prop-6.s: New test.
      30d923a4
    • GDB Administrator's avatar
      Automatic date update in version.in · a0638475
      GDB Administrator authored
      a0638475
  16. 14 Jun, 2016 5 commits
    • H.J. Lu's avatar
      Add the GOT base for GOT32 relocs against IFUNC · 3cac3e2e
      H.J. Lu authored
      Add the GOT base for R_386_GOT32/R_386_GOT32X relocations against IFUNC
      symbols if there is no base register and disallow them for PIC.
      
      bfd/
      
      	PR ld/20244
      	* elf32-i386.c (elf_i386_relocate_section): Add the .got.plt
      	section address for R_386_GOT32/R_386_GOT32X relocations against
      	IFUNC symbols if there is no base register and return error for
      	PIC.
      
      	* elf32-i386.c (elf_i386_relocate_section): Simplify IFUNC
      	GOT32 adjustment for static executables.
      
      ld/
      
      	PR ld/20244
      	* testsuite/ld-i386/i386.exp: Run pr20244-2a, pr20244-2b,
      	pr20244-2c and pr20244-2d.
      	* testsuite/ld-i386/no-plt.exp: Run pr20244-3a and pr20244-3b.
      	* testsuite/ld-i386/pr20244-2.s: New file.
      	* testsuite/ld-i386/pr20244-2a.d: Likewise.
      	* testsuite/ld-i386/pr20244-2b.d: Likewise.
      	* testsuite/ld-i386/pr20244-2c.d: Likewise.
      	* testsuite/ld-i386/pr20244-2d.d: Likewise.
      	* testsuite/ld-i386/pr20244-3a.c: Likewise.
      	* testsuite/ld-i386/pr20244-3b.S: Likewise.
      	* testsuite/ld-i386/pr20244-3c.S: Likewise.
      	* testsuite/ld-i386/pr20244-3d.S: Likewise.
      
      Add 2 i386 tests to call IFUNC functions via GOT
      
      ld/
      
      	* testsuite/ld-i386/i386.exp: Run ifunc-1a and ifunc-1b.
      	* testsuite/ld-i386/ifunc-1a.c: New file.
      	* testsuite/ld-i386/ifunc-1b.S: Likewise.
      	* testsuite/ld-i386/ifunc-1c.S: Likewise.
      	* testsuite/ld-i386/ifunc-1d.S: Likewise.
      3cac3e2e
    • H.J. Lu's avatar
      Subtract GOT base only with a base register · 9983f9d2
      H.J. Lu authored
      When relocating R_386_GOT32 in "op $0, bar@GOT", we shouldn't subtract
      GOT base without a base register and we should disallow it without a
      base register for PIC.
      
      bfd/
      
      	PR ld/20244
      	* elf32-i386.c (elf_i386_relocate_section): When relocating
      	R_386_GOT32, return error without a base register for PIC and
      	subtract the .got.plt section address only with a base register.
      
      ld/
      
      	PR ld/20244
      	* testsuite/ld-i386/i386.exp: Run pr20244-1a and pr20244-1b.
      	* testsuite/ld-i386/pr20244-1.s: New file.
      	* testsuite/ld-i386/pr20244-1a.d: Likewise.
      	* testsuite/ld-i386/pr20244-1b.d: Likewise.
      	* testsuite/ld-i386/pr20244-1c.d: Likewise.
      9983f9d2
    • H.J. Lu's avatar
      i386: Test external function reference without PLT · a742a02f
      H.J. Lu authored
      To call an external function, the direct branch to the PLT entry can be
      replaced by an indirect branch via the GOT slot, which is similar to the
      first instruction in the PLT slot.  Instead using the PLT slot as function
      address, the function address is retrieved from the GOT slot.  The
      R_386_GOT32X relocation can be used to compute the address of the symbol’s
      GOT entry without base register when PIC is disabled.  In non-PIC
      executable,
      
      call/jmp *func@GOT
      
      should be used for indirect branch via the GOT slot and
      
      movl func@GOT, %eax
      
      should be used to load function address.  Unlike PIC case, no register
      is needed to access GOT.  If linker determines the function is defined
      locally, it converts indirect branch via the GOT slot to direct branch
      with a nop prefix and converts load via the GOT slot to load immediate
      or lea.
      
      	* testsuite/ld-i386/libno-plt-1b.dd: New file.
      	* testsuite/ld-i386/libno-plt-1b.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1a.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1a.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1b.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1b.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1c.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1c.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1d.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1d.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1e.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1e.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1f.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1f.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1g.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1g.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1h.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1h.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1i.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1i.rd: Likewise.
      	* testsuite/ld-i386/no-plt-1j.dd: Likewise.
      	* testsuite/ld-i386/no-plt-1j.rd: Likewise.
      	* testsuite/ld-i386/no-plt-check1a.S: Likewise.
      	* testsuite/ld-i386/no-plt-check1b.S: Likewise.
      	* testsuite/ld-i386/no-plt-extern1a.S: Likewise.
      	* testsuite/ld-i386/no-plt-extern1b.S: Likewise.
      	* testsuite/ld-i386/no-plt-func1.c: Likewise.
      	* testsuite/ld-i386/no-plt-main1.c: Likewise.
      	* testsuite/ld-i386/no-plt.exp: Likewise.
      	* testsuite/ld-i386/pass.out: Likewise.
      a742a02f
    • H.J. Lu's avatar
      X86-64: Test external function reference without PLT · 87cae80d
      H.J. Lu authored
      To call an external function, the direct branch to the PLT entry can be
      replaced by an indirect branch via the GOT slot, which is similar to the
      first instruction in the PLT slot.  Instead using the PLT slot as function
      address, the function address is retrieved from the GOT slot.  If linker
      determines the function is defined locally, it converts indirect branch
      via the GOT slot to direct branch with a nop prefix and converts load via
      the GOT slot to load immediate or lea,
      
      	* testsuite/ld-x86-64/libno-plt-1b.dd: Likewise.
      	* testsuite/ld-x86-64/libno-plt-1b.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1a.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1a.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1b.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1b.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1c.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1c.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1d.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1d.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1e.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1e.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1f.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1f.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1g.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1g.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-check1.S: Likewise.
      	* testsuite/ld-x86-64/no-plt.exp: Likewise.
      	* testsuite/ld-x86-64/no-plt-extern1.S: Likewise.
      	* testsuite/ld-x86-64/no-plt-func1.c: Likewise.
      	* testsuite/ld-x86-64/no-plt-main1.c: Likewise.
      	* testsuite/ld-x86-64/pass.out: Likewise.
      
      Support any relocation order
      
      	* testsuite/ld-x86-64/no-plt-1a.rd: Support any relocation order.
      	* testsuite/ld-x86-64/no-plt-1b.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1c.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1d.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1e.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1f.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1g.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt.exp: Fix a typo.
      
      Update x86-64 no-PLT tests for x32
      
      X32 has different output formats for readelf and objdump as well as a
      different conversion of load symbol address via GOT.
      
      	* testsuite/ld-x86-64/libno-plt-1b.dd: Updated for x32.
      	* testsuite/ld-x86-64/libno-plt-1b.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1a.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1a.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1b.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1b.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1c.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1c.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1d.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1e.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1e.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1f.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1f.rd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1g.dd: Likewise.
      	* testsuite/ld-x86-64/no-plt-1g.rd: Likewise.
      87cae80d
    • GDB Administrator's avatar
      Automatic date update in version.in · 43b95d89
      GDB Administrator authored
      43b95d89
  17. 13 Jun, 2016 3 commits
  18. 12 Jun, 2016 4 commits
    • H.J. Lu's avatar
      Link tmpdir/copyreloc-main.o before tmpdir/copyreloc-lib.so · ca7db478
      H.J. Lu authored
      Since compiler may pass --as-needed to ld by default, link
      tmpdir/copyreloc-main.o before tmpdir/copyreloc-lib.so.
      
      	* testsuite/ld-i386/i386.exp: Link tmpdir/copyreloc-main.o
      	before tmpdir/copyreloc-lib.so and test --as-needed.
      	* testsuite/ld-x86-64/x86-64.exp: Likewise.
      ca7db478
    • H.J. Lu's avatar
      Update x86-64 tests for --as-needed · 576bc8b5
      H.J. Lu authored
      Since compiler may pass --as-needed to ld by default, link .o file
      before .so file in x86-64 tests.
      
      	PR ld/19774
      	* testsuite/ld-x86-64/x86-64.exp: Link tmpdir/pr17689b.o before
      	tmpdir/pr17689.so, fix gotpcrel1 test and add more --as-needed
      	tests.
      576bc8b5
    • H.J. Lu's avatar
      Support --as-needed in i386/x86-64 tests · 5975f54c
      H.J. Lu authored
      Since compiler may pass --as-needed to ld by default, link .o file
      before .so file in i386/x86-64 tests.
      
      	PR ld/19774
      	* testsuite/ld-i386/i386.exp: Link tmpdir/pr18900.o before
      	tmpdir/pr18900.so and test --as-needed.  Link tmpdir/gotpc1.o
      	before tmpdir/got1d.so and test --as-needed.
      	* testsuite/ld-x86-64/x86-64.exp: Link tmpdir/pr18900.o before
      	tmpdir/pr18900.so and test --as-needed.
      5975f54c
    • GDB Administrator's avatar
      Automatic date update in version.in · b7a91f90
      GDB Administrator authored
      b7a91f90
  19. 11 Jun, 2016 1 commit
  20. 10 Jun, 2016 1 commit
  21. 09 Jun, 2016 2 commits
    • Alan Modra's avatar
      Revert PR16467 change · bdf48af1
      Alan Modra authored
      This reverts the pr16467 change, which was incorrect due to faulty
      analysis of the pr16467 testcase.  The failure was not due to a
      mismatch in symbol type (ifunc/non-ifunc) but due to a symbol loop
      being set up.
      
      See https://sourceware.org/ml/binutils/2016-06/msg00013.html for some
      rambling on versioned symbols and ELF shared library symbol overriding
      that explain this patch.
      
      bfd/
      	PR ld/20159
      	PR ld/16467
      	* elflink.c (_bfd_elf_merge_symbol): Revert PR16467 change.
      	(_bfd_elf_add_default_symbol): Don't indirect to/from defined
      	symbol given a version by a script different to the version
      	of the symbol being added.
      	(elf_link_add_object_symbols): Use _bfd_elf_strtab_save and
      	_bfd_elf_strtab_restore.  Don't fudge dynstr references.
      	* elf-strtab.c (_bfd_elf_strtab_restore_size): Delete.
      	(struct strtab_save): New.
      	(_bfd_elf_strtab_save, _bfd_elf_strtab_restore): New functions.
      	* elf-bfd.h (_bfd_elf_strtab_restore_size): Delete.
      	(_bfd_elf_strtab_save, _bfd_elf_strtab_restore): Declare.
      bdf48af1
    • GDB Administrator's avatar
      Automatic date update in version.in · acf79a93
      GDB Administrator authored
      acf79a93
  22. 08 Jun, 2016 1 commit