1. 13 Jul, 2018 2 commits
  2. 12 Jul, 2018 6 commits
    • Alan Modra's avatar
      Hide dynamic symbols in discarded sections · ae0e76dc
      Alan Modra authored
      This is a followup to git commit 97196564 "Strip global symbol
      defined in discarded section".  If a symbol defined in a discarded
      section was dynamic, that patch left .dynsym with holes (ie. all zero
      entries).  For example, the following from libstdc++.so:
      
      Symbol table '.dynsym' contains 6090 entries:
         Num:    Value          Size Type    Bind   Vis      Ndx Name
           0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
           1: 00000000000a74e0     0 SECTION LOCAL  DEFAULT   10
           2: 0000000000264180     0 SECTION LOCAL  DEFAULT   17
           3: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_addUserCommitAction
           4: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_memcpyRtWn
           5: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
      readelf: Warning: local symbol 5 found at index >= .dynsym's sh_info value of 3
           6: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
      readelf: Warning: local symbol 6 found at index >= .dynsym's sh_info value of 3
      [snip]
      
      This patch removes the symbols from .dynsym too.
      
      	PR 17550
      	* elflink.c (_bfd_elf_fix_symbol_flags): Hide dynamic symbols
      	in discarded sections.
      
      (cherry picked from commit af0bfb9c)
      ae0e76dc
    • Nick Clifton's avatar
      This patch adds support for the SSBB and PSSBB speculation barrier... · 08196b22
      Nick Clifton authored
      This patch adds support for the SSBB and PSSBB speculation barrier instructions to the AArch64 assembler and disassembler.
      
      For more details see: https://static.docs.arm.com/ddi0596/a/DDI_0596_ARM_a64_instruction_set_architecture.pdf
      
      opcodes	* aarch64-tbl.h (aarch64_opcode_table): Add entry for
      	ssbb and pssbb and update dsb flags to F_HAS_ALIAS.
      	* aarch64-asm-2.c: Regenerate.
      	* aarch64-dis-2.c: Regenerate.
      	* aarch64-opc-2.c: Regenerate.
      
      gas	* testsuite/gas/aarch64/system.s: Add test for ssbb
      	and pssbb.
      	* testsuite/gas/aarch64/system.d: Update accordingly
      	and remove explicit addresses.
      08196b22
    • Nick Clifton's avatar
      Resolve merge conflicts. · 2d73c246
      Nick Clifton authored
      2d73c246
    • Sudakshina Das's avatar
      Add support for the ARM speculation barrier instructions SSBB and PSSBB. · ec468ac4
      Sudakshina Das authored
      opcodes * arm-dis.c (arm_opcodes): Add ssbb and pssbb and move
           csdb together with them.
           (thumb32_opcodes): Likewise.
      
      gas  * config/tc-arm.c (insns): Add new ssbb and pssbb instructions.
           * testsuite/gas/arm/csdb.s: Add new tests for ssbb and pssbb.
           * testsuite/gas/arm/csdb.d: Likewise
           * testsuite/gas/arm/thumb2_it_bad.s: Likewise.
           * testsuite/gas/arm/thumb2_it_bad.l: Likewise.
           * testsuite/gas/arm/barrier.d: Update with ssbb.
           * testsuite/gas/arm/barrier-thumb.d: Likewise.
      ec468ac4
    • Tamar Christina's avatar
      Add remainder of Em16 restrictions for AArch64 gas. · 3b5e60a4
      Tamar Christina authored
      This adds the missing Em16 constraints the rest of the instructions requiring them
      and also adds a testcase to test all the instructions so these are checked from
      now on.
      
      The Em16 operand constrains the valid registers to the lower 16 registers when used
      with a half precision qualifier.
      
      The list has been cross checked (by hand) through the Arm ARM version Ca.
      
      opcodes/
      
      	PR binutils/23192
      	* aarch64-tbl.h (sqdmlal, sqdmlal2, smlsl, smlsl2, sqdmlsl, sqdmlsl2,
      	mul, smull, smull2, sqdmull, sqdmull2, sqdmulh, sqrdmulh, mla, umlal,
      	umlal2, mls, umlsl, umlsl2, umull, umull2, sqdmlal, sqdmlsl, sqdmull,
      	sqdmulh, sqrdmulh): Use Em16.
      
      gas/
      
      	PR binutils/23192
      	* testsuite/gas/aarch64/illegal-by-element.s: New.
      	* testsuite/gas/aarch64/illegal-by-element.d: New.
      	* testsuite/gas/aarch64/illegal-by-element.l: New.
      
      (cherry picked from commit 45a28947)
      Signed-off-by: default avatarTamar Christina <tamar.christina@arm.com>
      3b5e60a4
    • GDB Administrator's avatar
      Automatic date update in version.in · e87681ac
      GDB Administrator authored
      e87681ac
  3. 11 Jul, 2018 5 commits
    • Max Filippov's avatar
      xtensa: don't emit dynamic relocation for weak undefined symbol · 82f32155
      Max Filippov authored
      Resolved reference to a weak undefined symbol in PIE must not have
      a dynamic relative relocation against itself, otherwise the value of a
      reference will be changed from 0 to the base of executable, breaking
      code like the following:
      
        void weak_function (void);
        if (weak_function)
          weak_function ();
      
      This fixes tests for PR ld/22269 and a number of PIE tests in xtensa gcc
      testsuite.
      
      bfd/
      2018-07-11  Max Filippov  <jcmvbkbc@gmail.com>
      
      	* elf32-xtensa.c (elf_xtensa_allocate_dynrelocs): Don't allocate
      	space for dynamic relocation for undefined weak symbol.
      	(elf_xtensa_relocate_section): Don't emit R_XTENSA_RELATIVE
      	relocation for undefined weak symbols.
      	(shrink_dynamic_reloc_sections): Don't shrink dynamic relocation
      	section for relocations against undefined weak symbols.
      
      (cherry picked from commit c451bb34)
      82f32155
    • Nick Clifton's avatar
      Duplicate code update. · 8e188148
      Nick Clifton authored
      8e188148
    • Franz Sirl's avatar
      Reimport a patch to fix building gold on Cygwin64 systms: m.arena has size_t... · ea22a560
      Franz Sirl authored
      Reimport a patch to fix building gold on Cygwin64 systms: m.arena has size_t on Cygwin64 and thus errors out due to -Werror=format.
      
      gold	* main.cc: Print m.arena as long long.
      ea22a560
    • Franz Sirl's avatar
      Fix printing the size of GOLD's memory areana on Cygwin based systems. · 8238fb62
      Franz Sirl authored
      I just stumbled over this with 2.29.1 while building a cross-toolchain, on Cygwin64, but it's still the same for 2.30. m.arena has size_t on Cygwin64 and thus errors out due to -Werror=format.
      
      gold
      	* main.cc: Print m.arena as long long.
      8238fb62
    • GDB Administrator's avatar
      Automatic date update in version.in · 557b8e0e
      GDB Administrator authored
      557b8e0e
  4. 10 Jul, 2018 3 commits
    • Maciej W. Rozycki's avatar
      BFD/ELF: Correct a `remove' global shadowing error for pre-4.8 GCC · df402ddc
      Maciej W. Rozycki authored
      Remove `-Wshadow' compilation errors:
      
      cc1: warnings being treated as errors
      .../bfd/elflink.c: In function 'bfd_elf_final_link':
      .../bfd/elflink.c:11722: error: declaration of 'remove' shadows a global declaration
      /usr/include/stdio.h:154: error: shadowed declaration is here
      
      which for versions of GCC before 4.8 prevent support for ELF targets
      from being built.  See also GCC PR c/53066.
      
      	bfd/
      	* elflink.c (bfd_elf_final_link): Rename `remove' local variable
      	to `remove_section'.
      
      (cherry picked from commit 5270eddc)
      df402ddc
    • Cary Coutant's avatar
      Fix test for availability of emplace_back. · 21555352
      Cary Coutant authored
      Testing for the GCC version 5 or later isn't right, since C++ 11 support
      wasn't enabled by default until later.  This patch tests the C++ standard
      support directly instead of inferring it from the GCC version.
      
      gold/
      	* incremental.cc (Sized_incremental_binary::setup_readers): Use
      	emplace_back for C++ 11 or later.
      21555352
    • GDB Administrator's avatar
      Automatic date update in version.in · 10a1ed12
      GDB Administrator authored
      10a1ed12
  5. 09 Jul, 2018 5 commits
    • H.J. Lu's avatar
      bfd: Use changequote for "i[3-7]86-*-linux-*" · fa1b3193
      H.J. Lu authored
      Use changequote to match "i[3-7]86-*-linux-*", instead of
      "i3-786-*-linux-*".
      
      	PR ld/23388
      	* configure.ac: Use changequote for "i[3-7]86-*-linux-*".
      	* configure: Regenerated.
      
      (cherry picked from commit 872899f1)
      fa1b3193
    • H.J. Lu's avatar
      x86: Remove x86 ISA properties with empty bits · f6becb01
      H.J. Lu authored
      There is no need to generate x86 ISA properties with empty bits in
      linker output.
      
      bfd/
      
      	PR ld/23372
      	* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove x86
      	ISA properties with empty bits.
      
      ld/
      
      	PR ld/23372
      	* testsuite/ld-i386/i386.exp: Run pr23372a and pr23372b.
      	* testsuite/ld-i386/pr23372a.d: New file.
      	* testsuite/ld-i386/pr23372a.s: Likewise.
      	* testsuite/ld-i386/pr23372b.d: Likewise.
      	* testsuite/ld-i386/pr23372b.s: Likewise.
      	* testsuite/ld-i386/pr23372c.s: Likewise.
      	* testsuite/ld-x86-64/pr23372a-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr23372a.d: Likewise.
      	* testsuite/ld-x86-64/pr23372a.s: Likewise.
      	* testsuite/ld-x86-64/pr23372b-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr23372b.d: Likewise.
      	* testsuite/ld-x86-64/pr23372b.s: Likewise.
      	* testsuite/ld-x86-64/pr23372c.s: Likewise.
      	* testsuite/ld-x86-64/x86-64.exp: Run pr23372a, pr23372a-x32,
      	pr23372b and pr23372b-x32.
      
      (cherry picked from commit 56ad703d)
      f6becb01
    • Alan Modra's avatar
      Fix diagnostic errors · e55992d4
      Alan Modra authored
      Fixes a number of build errors like the following
      .../elf32-arm.c: In function 'elf32_arm_nabi_write_core_note':
      .../elf32-arm.c:2177: error: #pragma GCC diagnostic not allowed inside functions
      .../elf32-arm.c:2186: error: #pragma GCC diagnostic not allowed inside functions
      See the comment in diagnostics.h.
      
      include/
      	* diagnostics.h: Comment on macro usage.
      bfd/
      	* elf32-arm.c (elf32_arm_nabi_write_core_note): Don't use
      	DIAGNOTIC_PUSH and DIAGNOSTIC_POP unconditionally.
      	* elf32-ppc.c (ppc_elf_write_core_note): Likewise.
      	* elf32-s390.c (elf_s390_write_core_note): Likewise.
      	* elf64-ppc.c (ppc64_elf_write_core_note): Likewise.
      	* elf64-s390.c (elf_s390_write_core_note): Likewise.
      	* elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewise.
      
      (cherry picked from commit fe75810f)
      e55992d4
    • Alan Modra's avatar
      [GOLD] PowerPC .gnu.attributes support · 1cbba2d2
      Alan Modra authored
      elfcpp/
      	* powerpc.h (Tag_GNU_Power_ABI_FP): Define.
      	(Tag_GNU_Power_ABI_Vector, Tag_GNU_Power_ABI_Struct_Return): Define.
      gold/
      	* powerpc.cc: Include attributes.h.
      	(Powerpc_relobj::attributes_section_data_): New variable, with
      	accessor and associated constructor and destructor support.
      	(Powerpc_dynobj::attributes_section_data_): Likewise.
      	(Powerpc_relobj::do_read_symbols): Stash SHT_GNU_ATTRIBUTES section
      	contents in attributes_section_data_.
      	(Powerpc_dynobj::do_read_symbols): Likewise.
      	(Target_powerpc): Add attributes_section_data_, last_fp_, last_ld_,
      	last_vec_, and last_struct_ vars.
      	(Target_powerpc::merge_object_attributes): New function.
      	(Target_powerpc::do_finalize_sections): Iterate over input objects
      	merging attributes.  Create output attributes section.
      
      (cherry picked from commit 724436fc)
      1cbba2d2
    • GDB Administrator's avatar
      Automatic date update in version.in · 9822d332
      GDB Administrator authored
      9822d332
  6. 08 Jul, 2018 1 commit
  7. 07 Jul, 2018 1 commit
  8. 06 Jul, 2018 6 commits
  9. 05 Jul, 2018 7 commits
    • Alan Modra's avatar
      Error for mismatched powerpc ABI tags · 2df83626
      Alan Modra authored
      And report the two input files that are incompatible rather than
      reporting that an input file is incompatible with the output.
      
      bfd/
      	* elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Update prototype.
      	* elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): Return error
      	on mismatch.  Remove "warning: " from messages.  Track last bfd
      	used to set tags.
      	(ppc_elf_merge_obj_attributes): Likewise.  Handle status from
      	_bfd_elf_ppc_merge_fp_attributes.
      	* elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Handle status
      	from _bfd_elf_ppc_merge_fp_attributes.
      ld/
      	* testsuite/ld-powerpc/attr-gnu-4-12.d: Update expected output.
      	* testsuite/ld-powerpc/attr-gnu-4-13.d: Likewise.
      	* testsuite/ld-powerpc/attr-gnu-4-21.d: Likewise.
      	* testsuite/ld-powerpc/attr-gnu-4-23.d: Likewise.
      	* testsuite/ld-powerpc/attr-gnu-4-31.d: Likewise.
      	* testsuite/ld-powerpc/attr-gnu-4-32.d: Likewise.
      	* testsuite/ld-powerpc/attr-gnu-8-23.d: Likewise.
      	* testsuite/ld-powerpc/attr-gnu-12-21.d: Likewise.
      
      (cherry picked from commit 4a91d0ba)
      2df83626
    • Alan Modra's avatar
      Correct removal of .gnu.attributes · e89e89c9
      Alan Modra authored
      Setting SEC_EXCLUDE for empty .gnu.attributes is too late in the link
      process for the linker to remove the section.  That must be done in
      bfd_elf_final_link, as we do for removed group sections.
      
      	* elflink.c (bfd_elf_final_link): Remove zero size .gnu.attributes
      	sections.
      
      (cherry picked from commit b8a6ced7)
      e89e89c9
    • Alan Modra's avatar
      GNU attribute output on errors · bdb5f07b
      Alan Modra authored
      .gnu.attributes entries from linker input files are merged to the
      output file, the output having the union of compatible input
      attributes.  Incompatible attributes generally cause a linker error
      and no output.  However in some cases only a warning is emitted, and
      one of the incompatible input attributes is passed on to the output.
      
      PowerPC tends to emit warnings rather than errors, and the output
      takes the first input attribute.  For example, if we have two input
      files with Tag_GNU_Power_ABI_FP, the first with a value signifying
      "double-precision hard float, IBM long double", the second with a
      value signifying "double-precision hard float, IEEE long double",
      we'll get a warning about incompatible long double types and the
      output will say "double-precision hard float, IBM long double".
      The output attribute of course isn't correct.  It would be correct to
      specify "IBM and IEEE long double", but we don't have a way to
      represent that currently.  While it would be possible to extend the
      encoding, there isn't much gain in doing so.  A shared library
      providing support for both long double types should link against
      objects using either long double type without warning or error.  That
      is what you'd get if such a shared library had no Tag_GNU_Power_ABI_FP
      attribute.
      
      So this patch provides a way for the backend to omit .gnu.attributes
      tags from the output.
      
      	* elf-bfd.h (ATTR_TYPE_FLAG_ERROR, ATTR_TYPE_HAS_ERROR): Define.
      	* elf-attrs.c (is_default_attr): Handle ATTR_TYPE_HAS_ERROR.
      	* elf32-ppc.c (_bfd_elf_ppc_merge_fp_attributes): Use
      	ATTR_TYPE_FLAG_INT_VAL.  Set ATTR_TYPE_HAS_ERROR on finding
      	incompatible attribute.
      	(ppc_elf_merge_obj_attributes): Likewise.  Return
      	_bfd_elf_merge_object_attributes result.
      	* elf64-ppc.c (ppc64_elf_merge_private_bfd_data): Return
      	_bfd_elf_merge_object_attributes result.
      
      (cherry picked from commit 8d2c8c3d)
      bdb5f07b
    • Sebastian Huber's avatar
      Update config.guess and config.sub · f4b933dd
      Sebastian Huber authored
      	* config.guess: Sync with upstream version 2018-06-26.
      	* config.sub: Sync with upstream version 2018-07-02.
      f4b933dd
    • H.J. Lu's avatar
      ld: Set non_ir_ref_regular for --undefined SYMBOL · 2c4995ba
      H.J. Lu authored
      Set non_ir_ref_regular to TRUE for symbols forced into the output file
      so that they won't be removed by garbage collection with LTO.
      
      	PR ld/23309
      	* ldlang.c (insert_undefined): Set non_ir_ref_regular to TRUE.
      	* plugin.c (is_visible_from_outside): Don't scan entry_symbol.
      	* testsuite/ld-plugin/pr23309.c: New file.
      	* testsuite/ld-plugin/pr23309.d: Likewise.
      
      (cherry picked from commit 94d401b8)
      2c4995ba
    • Nick Clifton's avatar
      Update Russian, Bulgarian and Brazilian Portuguese translations for various... · 3839e940
      Nick Clifton authored
      Update Russian, Bulgarian and Brazilian Portuguese translations for various components of the binutils.
      
      bfd,gas	* po/ru.po: Updated Russian translation.
      
      ld	* po/bg.po: Updated Bulgarian translation.
      	* po/pt_BR.po: Updated Brazilian Portuguese translation.
      
      binutils* po/bg.po: Updated Bulgarian translation.
      3839e940
    • GDB Administrator's avatar
      Automatic date update in version.in · ea2d583f
      GDB Administrator authored
      ea2d583f
  10. 04 Jul, 2018 4 commits
    • H.J. Lu's avatar
      ld: Properly display default for -z separate-code · b6a63da4
      H.J. Lu authored
      Check DEFAULT_LD_Z_SEPARATE_CODE to display default for -z separate-code.
      
      	PR ld/23358
      	* lexsup.c (elf_shlib_list_options): Properly display default
      	for -z separate-code.
      
      (cherry picked from commit b14b7ff1)
      b6a63da4
    • H.J. Lu's avatar
      Also install diagnostics.h · 8d8c8344
      H.J. Lu authored
      Since bfd.h is an installed header, also install diagnostics.h.
      
      	* Makefile.am (bfdinclude_HEADERS): Add $(INCDIR)/diagnostics.h.
      	* Makefile.in: Regenerated.
      
      (cherry picked from commit db40acb0)
      8d8c8344
    • H.J. Lu's avatar
      x86-64: Clear the R_X86_64_converted_reloc_bit bit · b29dd6c3
      H.J. Lu authored
      We need to clear the R_X86_64_converted_reloc_bit bit after setting it
      to avoid leaking it out by --emit-relocs.
      
      bfd/
      
      	PR ld/23324
      	* elf64-x86-64.c (elf_x86_64_relocate_section): Clear the
      	R_X86_64_converted_reloc_bit bit.
      
      ld/
      
      	PR ld/23324
      	* testsuite/ld-x86-64/pr23324.s: New file.
      	* testsuite/ld-x86-64/pr23324a.d: Likewise.
      	* testsuite/ld-x86-64/pr23324b.d: Likewise.
      
      (cherry picked from commit b638b5d5)
      b29dd6c3
    • GDB Administrator's avatar
      Automatic date update in version.in · 30d282be
      GDB Administrator authored
      30d282be