1. 07 Dec, 2020 2 commits
    • Siddhesh Poyarekar's avatar
      binutils: Use file descriptors from make_tempname · 365f5fb6
      Siddhesh Poyarekar authored
      The purpose of creating a temporary file securely using mkstemp is
      defeated if it is closed in make_tempname and reopened later for use;
      it is as good as using mktemp.  Get the file descriptor instead and
      then use it to create the BFD object.
      
      bfd/
      
      	* opncls.c (bfd_fdopenw): New function.
      	* bfd-in2.h: Regenerate.
      
      binutils/
      
      	* bucomm.c (make_tempname): Add argument to return file
      	descriptor.
      	* bucomm.h (make_tempname): Likewise.
      	* ar.c: Include libbfd.h.
      	(write_archive): Adjust for change in make_tempname.  Call
      	bfd_fdopenw instead of bfd_openw.
      	* objcopy.c: Include libbfd.h.
      	(copy_file): New argument OFD.  Use bfd_fdopenw instead of
      	bfd_openw.
      	(strip_main): Adjust for change in make_tempname and
      	copy_file.
      	(copy_main): Likewise.
      365f5fb6
    • Nick Clifton's avatar
      README-how-to-make-a-release (point releases): Add a note to update the... · a315d390
      Nick Clifton authored
      README-how-to-make-a-release (point releases): Add a note to update the milestone list on sourceware's bugzilla.
      a315d390
  2. 04 Dec, 2020 1 commit
    • Alan Modra's avatar
      asan: readelf: memory leaks · 288f0ba2
      Alan Modra authored
      This tidies some code used by readelf, hopefully fixing some
      intermittent oss-fuzz bug reports that likely could only be reproduced
      by feeding readelf two or more object files on the command line.  The
      second and subsequent file may see non-zero state in .bss variables,
      and non-initial values in .data variables.  This patch fixes some of
      those, and moves some .data variables to .rodata.
      
      	* dwarf.c (frame_display_row): Do without static variable "sloc".
      	(cu_tu_indexes_read): Move to file scope.
      	(free_debug_memory): Reset it here, along with level_type_signed.
      	Free and clear a number of other static variables.
      	* readelf.c (arm_attr_public_tag <table>): Constify, updating..
      	(arm_attr_tag_*): ..all these uses.
      	(process_mips_specific): Free "rels" on error path.
      288f0ba2
  3. 27 Nov, 2020 2 commits
    • Nick Clifton's avatar
      Allow spaces in the name of the external preprocessor used by windres. · 21c33bcb
      Nick Clifton authored
      	PR 26865
      	* windres.c (main): If the preprocessor name includes spaces,
      	ensure that it is quoted.
      21c33bcb
    • Jozef Lawrynowicz's avatar
      ELF: Support .noinit and .persistent sections · 2c6f3e56
      Jozef Lawrynowicz authored
      The ".persistent" section is for data that should be initialized during
      load, but not during application reset.
      
      The ".noinit" section is for data that should not be initialized during
      load or application reset.
      
      Targets utilizing the elf.sc linker script template can define
      HAVE_{NOINIT,PERSISTENT}=yes to include the .noinit or .persistent
      output sections in the generated linker script.
      
      Targets with existing support for .noinit did not handle unique
      .noinit.* and .gnu.linkonce.n.* sections the .noinit output section,
      this patch also fixes that.
      
      bfd/ChangeLog:
      
      	* elf.c (special_sections_g): Add .gnu.linkonce.n and .gnu.linkonce.p.
      	(special_sections_n): Add .noinit.
      	(special_sections_p): Add .persistent.
      
      binutils/ChangeLog:
      
      	* testsuite/lib/binutils-common.exp (supports_noinit_section): New.
      	(supports_persistent_section): New.
      
      gas/ChangeLog:
      
      	* testsuite/gas/elf/elf.exp: Run new tests.
      	* testsuite/gas/elf/section25.d: New test.
      	* testsuite/gas/elf/section25.s: New test.
      	* testsuite/gas/elf/section26.d: New test.
      	* testsuite/gas/elf/section26.s: New test.
      
      ld/ChangeLog:
      
      	* emulparams/armelf.sh (OTHER_SECTIONS): Remove .noinit section
      	definition.
      	Define HAVE_{NOINIT,PERSISTENT}=yes.
      	* scripttempl/avr.sc (.noinit): Add .noinit.* and .gnu.linkonce.n.*
      	input section wildcard patterns.
      	* scripttempl/elf.sc: Define .noinit and .persistent sections when
      	HAVE_NOINIT or HAVE_PERSISTENT are defined to "yes".
      	* scripttempl/elf32msp430.sc (.noinit): Add .noinit.* and
      	.gnu.linkonce.n.*. input section wildcard patterns.
      	(.persistent): Add .persistent.* and
      	.gnu.linkonce.p.*. input section wildcard patterns.
      	* scripttempl/elfarcv2.sc (.noinit): Add .noinit.* and
      	.gnu.linkonce.n.*. input section wildcard patterns.
      	* scripttempl/pru.sc: Likewise.
      	* testsuite/ld-elf/noinit-sections-1.d: New test.
      	* testsuite/ld-elf/noinit-sections-2.d: New test.
      	* testsuite/ld-elf/noinit-sections-2.l: New test.
      	* testsuite/ld-elf/noinit-sections.s: New test.
      	* testsuite/ld-elf/persistent-sections-1.d: New test.
      	* testsuite/ld-elf/persistent-sections-2.d: New test.
      	* testsuite/ld-elf/persistent-sections-2.l: New test.
      	* testsuite/ld-elf/persistent-sections.s: New test.
      2c6f3e56
  4. 25 Nov, 2020 2 commits
    • Nick Alcock's avatar
      binutils: readelf: support CTF dicts with non-native-endian symtabs · 96c61be5
      Nick Alcock authored
      Now we have a way to tell libctf what the endianness of the symtab is,
      get readelf to use it.  (objdump doesn't need to do so, nor does ld,
      because they both use BFD-aware mechanisms to open CTF dicts, so libctf
      can automatically figure the symtab endianness out.)
      
      binutils/ChangeLog
      2020-11-23  Nick Alcock  <nick.alcock@oracle.com>
      
      	* readelf.c (dump_section_as_ctf): Call ctf_arc_symsect_endianness.
      
      96c61be5
    • Alan Modra's avatar
      nm ifunc test tweaks · 6595cf3c
      Alan Modra authored
      	* testsuite/binutils-all/nm.exp (ifunc): xfail more targets.
      6595cf3c
  5. 20 Nov, 2020 8 commits
    • Nick Clifton's avatar
      Add missing test file · 9d37f013
      Nick Clifton authored
      9d37f013
    • Nick Alcock's avatar
      bfd, include, ld, binutils, libctf: CTF should use the dynstr/sym · 3d16b64e
      Nick Alcock authored
      This is embarrassing.
      
      The whole point of CTF is that it remains intact even after a binary is
      stripped, providing a compact mapping from symbols to types for
      everything in the externally-visible interface of an ELF object: it has
      connections to the symbol table for that purpose, and to the string
      table to avoid duplicating symbol names.  So it's a shame that the hooks
      I implemented last year served to hook it up to the .symtab and .strtab,
      which obviously disappear on strip, leaving any accompanying the CTF
      dict containing references to strings (and, soon, symbols) which don't
      exist any more because their containing strtab has been vaporized.  The
      original Solaris design used .dynsym and .dynstr (well, actually,
      .ldynsym, which has more symbols) which do not disappear. So should we.
      
      Thankfully the work we did before serves as guide rails, and adjusting
      things to use the .dynstr and .dynsym was fast and easy.  The only
      annoyance is that the dynsym is assembled inside elflink.c in a fairly
      piecemeal fashion, so that the easiest way to get the symbols out was to
      hook in before every call to swap_symbol_out (we also leave in a hook in
      front of symbol additions to the .symtab because it seems plausible that
      we might want to hook them in future too: for now that hook is unused).
      We adjust things so that rather than being offered a whole hash table of
      symbols at once, libctf is now given symbols one at a time, with st_name
      indexes already resolved and pointing at their final .dynstr offsets:
      it's now up to libctf to resolve these to names as needed using the
      strtab info we pass it separately.
      
      Some bits might be contentious.  The ctf_new_dynstr callback takes an
      elf_internal_sym, and this remains an elf_internal_sym right down
      through the generic emulation layers into ldelfgen.  This is no worse
      than the elf_sym_strtab we used to pass down, but in the future when we
      gain non-ELF CTF symtab support we might want to lower the
      elf_internal_sym to some other representation (perhaps a
      ctf_link_symbol) in bfd or in ldlang_ctf_new_dynsym.  We rename the
      'apply_strsym' hooks to 'acquire_strings' instead, becuse they no longer
      have anything to do with symbols.
      
      There are some API changes to pieces of API which are technically public
      but actually totally unused by anything and/or unused by anything but ld
      so they can change freely: the ctf_link_symbol gains new fields to allow
      symbol names to be given as strtab offsets as well as strings, and a
      symidx so that the symbol index can be passed in.  ctf_link_shuffle_syms
      loses its callback parameter: the idea now is that linkers call the new
      ctf_link_add_linker_symbol for every symbol in .dynsym, feed in all the
      strtab entries with ctf_link_add_strtab, and then a call to
      ctf_link_shuffle_syms will apply both and arrange to use them to reorder
      the CTF symtab at CTF serialization time (which is coming in the next
      commit).
      
      Inside libctf we have a new preamble flag CTF_F_DYNSTR which is always
      set in v3-format CTF dicts from this commit forwards: CTF dicts without
      this flag are associated with .strtab like they used to be, so that old
      dicts' external strings don't turn to garbage when loaded by new libctf.
      Dicts with this flag are associated with .dynstr and .dynsym instead.
      (The flag is not the next in sequence because this commit was written
      quite late: the missing flags will be filled in by the next commit.)
      
      Tests forthcoming in a later commit in this series.
      
      bfd/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* elflink.c (elf_finalize_dynstr): Call examine_strtab after
      	dynstr finalization.
      	(elf_link_swap_symbols_out): Don't call it here.  Call
      	ctf_new_symbol before swap_symbol_out.
      	(elf_link_output_extsym): Call ctf_new_dynsym before
      	swap_symbol_out.
      	(bfd_elf_final_link): Likewise.
      	* elf.c (swap_out_syms): Pass in bfd_link_info.  Call
      	ctf_new_symbol before swap_symbol_out.
      	(_bfd_elf_compute_section_file_positions): Adjust.
      
      binutils/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* readelf.c (dump_section_as_ctf): Use .dynsym and .dynstr, not
      	.symtab and .strtab.
      
      include/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* bfdlink.h (struct elf_sym_strtab): Replace with...
      	(struct elf_internal_sym): ... this.
      	(struct bfd_link_callbacks) <examine_strtab>: Take only a
      	symstrtab argument.
      	<ctf_new_symbol>: New.
      	<ctf_new_dynsym>: Likewise.
      	* ctf-api.h (struct ctf_link_sym) <st_symidx>: New.
      	<st_nameidx>: Likewise.
      	<st_nameidx_set>: Likewise.
      	(ctf_link_iter_symbol_f): Removed.
      	(ctf_link_shuffle_syms): Remove most parameters, just takes a
      	ctf_dict_t now.
      	(ctf_link_add_linker_symbol): New, split from
      	ctf_link_shuffle_syms.
      	* ctf.h (CTF_F_DYNSTR): New.
      	(CTF_F_MAX): Adjust.
      
      ld/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ldelfgen.c (struct ctf_strsym_iter_cb_arg): Rename to...
      	(struct ctf_strtab_iter_cb_arg): ... this, changing fields:
      	<syms>: Remove.
      	<symcount>: Remove.
      	<symstrtab>: Rename to...
      	<strtab>: ... this.
      	(ldelf_ctf_strtab_iter_cb): Adjust.
      	(ldelf_ctf_symbols_iter_cb): Remove.
      	(ldelf_new_dynsym_for_ctf): New, tell libctf about a single
      	symbol.
      	(ldelf_examine_strtab_for_ctf): Rename to...
      	(ldelf_acquire_strings_for_ctf): ... this, only doing the strtab
      	portion and not symbols.
      	* ldelfgen.h: Adjust declarations accordingly.
      	* ldemul.c (ldemul_examine_strtab_for_ctf): Rename to...
      	(ldemul_acquire_strings_for_ctf): ... this.
      	(ldemul_new_dynsym_for_ctf): New.
      	* ldemul.h: Adjust declarations accordingly.
      	* ldlang.c (ldlang_ctf_apply_strsym): Rename to...
      	(ldlang_ctf_acquire_strings): ... this.
      	(ldlang_ctf_new_dynsym): New.
      	(lang_write_ctf): Call ldemul_new_dynsym_for_ctf with NULL to do
      	the actual symbol shuffle.
      	* ldlang.h (struct elf_strtab_hash): Adjust accordingly.
      	* ldmain.c (bfd_link_callbacks): Wire up new/renamed callbacks.
      
      libctf/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ctf-link.c (ctf_link_shuffle_syms): Adjust.
      	(ctf_link_add_linker_symbol): New, unimplemented stub.
      	* libctf.ver: Add it.
      	* ctf-create.c (ctf_serialize): Set CTF_F_DYNSTR on newly-serialized
      	dicts.
      	* ctf-open-bfd.c (ctf_bfdopen_ctfsect): Check for the flag: open the
      	symtab/strtab if not present, dynsym/dynstr otherwise.
      	* ctf-archive.c (ctf_arc_bufpreamble): New, get the preamble from
      	some arbitrary member of a CTF archive.
      	* ctf-impl.h (ctf_arc_bufpreamble): Declare it.
      3d16b64e
    • Nick Alcock's avatar
      objdump, readelf: Report errors from CTF archive iteration · 83d59285
      Nick Alcock authored
      We were failing to report errors from ctf_archive_iter, which results in
      silent early termination if (for example) one CTF archive member in a
      .ctf section is corrupted and cannot be opened.  Report the error in the
      usual fashion instead.
      
      binutils/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* objdump.c (dump_ctf): Report errors from ctf_archive_iter.
      	* readelf.c (dump_section_as_ctf): Likewise.
      83d59285
    • Nick Alcock's avatar
      libctf, include, binutils, gdb: rename CTF-opening functions · ae41200b
      Nick Alcock authored
      The functions that return ctf_dict_t's given a ctf_archive_t and a name
      are very clumsily named.  It sounds like they return *archives*, not
      dictionaries, and the names are very long and clunky.  Why do we
      have a ctf_arc_open_by_name when it opens a dictionary, not an archive,
      and when there is no way to open a dictionary in any other way?  The
      answer is purely internal: the function is located in ctf-archive.c,
      and everything in there was called ctf_arc_*, and there is another
      way to open a dict (by offset in the archive), that is internal to
      ctf-archive.c and that nothing else can call.
      
      This is clearly bad naming. The internal organization of the source tree
      should not dictate public API names!
      
      So rename things (keeping the old, bad names for compatibility), and
      adjust all users.  You now open a dict using ctf_dict_open, and
      open it giving ELF sections via ctf_dict_open_sections.
      
      binutils/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* objdump.c (dump_ctf): Use ctf_dict_open, not
      	ctf_arc_open_by_name.
      	* readelf.c (dump_section_as_ctf): Likewise.
      
      gdb/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ctfread.c (elfctf_build_psymtabs): Use ctf_dict_open, not
      	ctf_arc_open_by_name.
      
      include/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ctf-api.h (ctf_arc_open_by_name): Rename to...
      	(ctf_dict_open): ... this, keeping compatibility function.
      	(ctf_arc_open_by_name_sections): Rename to...
      	(ctf_dict_open_sections): ... this, keeping compatibility function.
      
      libctf/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ctf-archive.c (ctf_arc_open_by_offset): Rename to...
      	(ctf_dict_open_by_offset): ... this.  Adjust callers.
      	(ctf_arc_open_by_name_internal): Rename to...
      	(ctf_dict_open_internal): ... this.  Adjust callers.
      	(ctf_arc_open_by_name_sections): Rename to...
      	(ctf_dict_open_sections): ... this, keeping compatibility function.
      	(ctf_arc_open_by_name): Rename to...
      	(ctf_dict_open): ... this, keeping compatibility function.
      	* libctf.ver: New functions added.
      	* ctf-link.c (ctf_link_one_input_archive): Adjusted accordingly.
      	(ctf_link_deduplicating_open_inputs): Likewise.
      ae41200b
    • Nick Alcock's avatar
      libctf, include, binutils, gdb, ld: rename ctf_file_t to ctf_dict_t · 139633c3
      Nick Alcock authored
      The naming of the ctf_file_t type in libctf is a historical curiosity.
      Back in the Solaris days, CTF dictionaries were originally generated as
      a separate file and then (sometimes) merged into objects: hence the
      datatype was named ctf_file_t, and known as a "CTF file".  Nowadays, raw
      CTF is essentially never written to a file on its own, and the datatype
      changed name to a "CTF dictionary" years ago.  So the term "CTF file"
      refers to something that is never a file!  This is at best confusing.
      
      The type has also historically been known as a 'CTF container", which is
      even more confusing now that we have CTF archives which are *also* a
      sort of container (they contain CTF dictionaries), but which are never
      referred to as containers in the source code.
      
      So fix this by completing the renaming, renaming ctf_file_t to
      ctf_dict_t throughout, and renaming those few functions that refer to
      CTF files by name (keeping compatibility aliases) to refer to dicts
      instead.  Old users who still refer to ctf_file_t will see (harmless)
      pointer-compatibility warnings at compile time, but the ABI is unchanged
      (since C doesn't mangle names, and ctf_file_t was always an opaque type)
      and things will still compile fine as long as -Werror is not specified.
      All references to CTF containers and CTF files in the source code are
      fixed to refer to CTF dicts instead.
      
      Further (smaller) renamings of annoyingly-named functions to come, as
      part of the process of souping up queries across whole archives at once
      (needed for the function info and data object sections).
      
      binutils/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* objdump.c (dump_ctf_errs): Rename ctf_file_t to ctf_dict_t.
      	(dump_ctf_archive_member): Likewise.
      	(dump_ctf): Likewise. Use ctf_dict_close, not ctf_file_close.
      	* readelf.c (dump_ctf_errs): Rename ctf_file_t to ctf_dict_t.
      	(dump_ctf_archive_member): Likewise.
      	(dump_section_as_ctf): Likewise.  Use ctf_dict_close, not
      	ctf_file_close.
      
      gdb/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ctfread.c: Change uses of ctf_file_t to ctf_dict_t.
      	(ctf_fp_info::~ctf_fp_info): Call ctf_dict_close, not ctf_file_close.
      
      include/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ctf-api.h (ctf_file_t): Rename to...
      	(ctf_dict_t): ... this.  Keep ctf_file_t around for compatibility.
      	(struct ctf_file): Likewise rename to...
      	(struct ctf_dict): ... this.
      	(ctf_file_close): Rename to...
      	(ctf_dict_close): ... this, keeping compatibility function.
      	(ctf_parent_file): Rename to...
      	(ctf_parent_dict): ... this, keeping compatibility function.
      	All callers adjusted.
      	* ctf.h: Rename references to ctf_file_t to ctf_dict_t.
      	(struct ctf_archive) <ctfa_nfiles>: Rename to...
      	<ctfa_ndicts>: ... this.
      
      ld/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ldlang.c (ctf_output): This is a ctf_dict_t now.
      	(lang_ctf_errs_warnings): Rename ctf_file_t to ctf_dict_t.
      	(ldlang_open_ctf): Adjust comment.
      	(lang_merge_ctf): Use ctf_dict_close, not ctf_file_close.
      	* ldelfgen.h (ldelf_examine_strtab_for_ctf): Rename ctf_file_t to
      	ctf_dict_t.  Change opaque declaration accordingly.
      	* ldelfgen.c (ldelf_examine_strtab_for_ctf): Adjust.
      	* ldemul.h (examine_strtab_for_ctf): Likewise.
      	(ldemul_examine_strtab_for_ctf): Likewise.
      	* ldeuml.c (ldemul_examine_strtab_for_ctf): Likewise.
      
      libctf/ChangeLog
      2020-11-20  Nick Alcock  <nick.alcock@oracle.com>
      
      	* ctf-impl.h: Rename ctf_file_t to ctf_dict_t: all declarations
      	adjusted.
      	(ctf_fileops): Rename to...
      	(ctf_dictops): ... this.
      	(ctf_dedup_t) <cd_id_to_file_t>: Rename to...
      	<cd_id_to_dict_t>: ... this.
      	(ctf_file_t): Fix outdated comment.
      	<ctf_fileops>: Rename to...
      	<ctf_dictops>: ... this.
      	(struct ctf_archive_internal) <ctfi_file>: Rename to...
      	<ctfi_dict>: ... this.
      	* ctf-archive.c: Rename ctf_file_t to ctf_dict_t.
      	Rename ctf_archive.ctfa_nfiles to ctfa_ndicts.
      	Rename ctf_file_close to ctf_dict_close.  All users adjusted.
      	* ctf-create.c: Likewise.  Refer to CTF dicts, not CTF containers.
      	(ctf_bundle_t) <ctb_file>: Rename to...
      	<ctb_dict): ... this.
      	* ctf-decl.c: Rename ctf_file_t to ctf_dict_t.
      	* ctf-dedup.c: Likewise.  Rename ctf_file_close to
      	ctf_dict_close. Refer to CTF dicts, not CTF containers.
      	* ctf-dump.c: Likewise.
      	* ctf-error.c: Likewise.
      	* ctf-hash.c: Likewise.
      	* ctf-inlines.h: Likewise.
      	* ctf-labels.c: Likewise.
      	* ctf-link.c: Likewise.
      	* ctf-lookup.c: Likewise.
      	* ctf-open-bfd.c: Likewise.
      	* ctf-string.c: Likewise.
      	* ctf-subr.c: Likewise.
      	* ctf-types.c: Likewise.
      	* ctf-util.c: Likewise.
      	* ctf-open.c: Likewise.
      	(ctf_file_close): Rename to...
      	(ctf_dict_close): ...this.
      	(ctf_file_close): New trivial wrapper around ctf_dict_close, for
      	compatibility.
      	(ctf_parent_file): Rename to...
      	(ctf_parent_dict): ... this.
      	(ctf_parent_file): New trivial wrapper around ctf_parent_dict, for
      	compatibility.
      	* libctf.ver: Add ctf_dict_close and ctf_parent_dict.
      139633c3
    • Nick Clifton's avatar
      Add option to nm to change the characters displayed for ifunc symbols. Add a... · e6f6aa8d
      Nick Clifton authored
      Add option to nm to change the characters displayed for ifunc symbols.  Add a configure time option to change the default characters.
      
      	PR 22967
      	* nm.c (ifunc_type_chars): New variable.
      	(long_options): Add --ifunc-chars.
      	(print_symbol): Use ifunc_type_chars for ifunc symbols.
      	(main): Handle the new option.
      	* doc/binutils.texi: Document the new option.
      	* configure.ac: Add --enable-f-for-ifunc-symbols option which
      	changes the default symbol displayed by nm.
      	* NEWS: Mention the new feature.
      	* testsuite/binutils-all/nm.exp: Test the new feature.
      	* config.in: Regenerate.
      	* configure: Regenerate.
      e6f6aa8d
    • Linda Zhang's avatar
      Add a warning to dllwrap that it is deprecated. · 8881640c
      Linda Zhang authored
      	PR 20979
      	* dllwrap.c (main): Deprecate and warn the use of dllwrap.
      8881640c
    • Jozef Lawrynowicz's avatar
      Fix SHF_GNU_RETAIN testsuite fallout · cc6fd584
      Jozef Lawrynowicz authored
      binutils/ChangeLog:
      
      	* testsuite/binutils-all/readelf-maskos-1a.d: Fix test for unrecognized
      	bit set in SHF_MASKOS range.
      	* testsuite/binutils-all/readelf-maskos-1b.d: Likewise.
      	* testsuite/binutils-all/readelf-maskos-unknown.s: New test.
      
      ld/ChangeLog:
      
      	* testsuite/ld-elf/retain3.s: Move symbolic reference into writeable
      	.data section from read-only .text section.
      	* testsuite/ld-elf/retain5.d: Don't pass --print-gc-sections for test
      	that doesn't require it.
      	* testsuite/ld-elf/retain6a.d: Adjust test.
      	* testsuite/ld-elf/retain6main.s: Move symbolic reference into writeable
      	.data section from read-only .text section.
      cc6fd584
  6. 18 Nov, 2020 1 commit
    • Jozef Lawrynowicz's avatar
      Support SHF_GNU_RETAIN ELF section flag · 99fabbc9
      Jozef Lawrynowicz authored
      The SHF_GNU_RETAIN section flag is an extension to the GNU ELF OSABI.
      It is defined as follows:
      
      =========================================================
      Section Attribute Flags
      +-------------------------------------+
      | Name           | Value              |
      +-------------------------------------+
      | SHF_GNU_RETAIN | 0x200000 (1 << 21) |
      +-------------------------------------+
      
      SHF_GNU_RETAIN
        The link editor should not garbage collect the section.
      =========================================================
      
      The .section directive accepts the "R" flag, which indicates
      SHF_GNU_RETAIN should be applied to the section.
      
      There is not a direct mapping of SHF_GNU_RETAIN to the BFD
      section flag SEC_KEEP. Keeping these flags distinct allows
      SHF_GNU_RETAIN sections to be explicitly removed by placing them in
      /DISCARD/.
      
      bfd/ChangeLog:
      
      	* elf-bfd.h (enum elf_gnu_osabi): Add elf_gnu_osabi_retain.
      	(struct elf_obj_tdata): Increase has_gnu_osabi to 4 bits.
      	* elf.c (_bfd_elf_make_section_from_shdr): Set elf_gnu_osabi_retain
      	for SHF_GNU_RETAIN.
      	(_bfd_elf_final_write_processing): Report if SHF_GNU_RETAIN is
      	not supported by the OSABI.
      	Adjust error messages.
      	* elflink.c (elf_link_input_bfd): Copy enabled has_gnu_osabi bits from
      	input BFD to output BFD.
      	(bfd_elf_gc_sections): gc_mark the section if SHF_GNU_RETAIN is set.
      
      binutils/ChangeLog:
      
      	* NEWS: Announce SHF_GNU_RETAIN support.
      	* readelf.c (get_elf_section_flags): Handle SHF_GNU_RETAIN.
      	Recognize SHF_GNU_RETAIN and SHF_GNU_MBIND only for supported OSABIs.
      	* testsuite/binutils-all/readelf.exp: Run new tests.
      	Don't run run_dump_test when there isn't an assembler available.
      	* testsuite/lib/binutils-common.exp (supports_gnu_osabi): Adjust
      	comment.
      	* testsuite/binutils-all/readelf-maskos-1a.d: New test.
      	* testsuite/binutils-all/readelf-maskos-1b.d: New test.
      	* testsuite/binutils-all/readelf-maskos.s: New test.
      	* testsuite/binutils-all/retain1.s: New test.
      	* testsuite/binutils-all/retain1a.d: New test.
      	* testsuite/binutils-all/retain1b.d: New test.
      
      gas/ChangeLog:
      
      	* NEWS: Announce SHF_GNU_RETAIN support.
      	* config/obj-elf.c (obj_elf_change_section): Merge SHF_GNU_RETAIN bit
      	between section declarations.
      	(obj_elf_parse_section_letters): Handle 'R' flag.
      	Handle numeric flag values within the SHF_MASKOS range.
      	(obj_elf_section): Validate SHF_GNU_RETAIN usage.
      	* doc/as.texi: Document 'R' flag to .section directive.
      	* testsuite/gas/elf/elf.exp: Run new tests.
      	* testsuite/gas/elf/section10.d: Unset SHF_GNU_RETAIN bit.
      	* testsuite/gas/elf/section10.s: Likewise.
      	* testsuite/gas/elf/section22.d: New test.
      	* testsuite/gas/elf/section22.s: New test.
      	* testsuite/gas/elf/section23.s: New test.
      	* testsuite/gas/elf/section23a.d: New test.
      	* testsuite/gas/elf/section23b.d: New test.
      	* testsuite/gas/elf/section23b.err: New test.
      	* testsuite/gas/elf/section24.l: New test.
      	* testsuite/gas/elf/section24.s: New test.
      	* testsuite/gas/elf/section24a.d: New test.
      	* testsuite/gas/elf/section24b.d: New test.
      
      include/ChangeLog:
      
      	* elf/common.h (SHF_GNU_RETAIN): Define.
      
      ld/ChangeLog:
      
      	* NEWS: Announce support for SHF_GNU_RETAIN.
      	* ld.texi (garbage collection): Document SHF_GNU_RETAIN.
      	(Output Section Discarding): Likewise.
      	* testsuite/ld-elf/elf.exp: Run new tests.
      	* testsuite/ld-elf/retain1.s: New test.
      	* testsuite/ld-elf/retain1a.d: New test.
      	* testsuite/ld-elf/retain1b.d: New test.
      	* testsuite/ld-elf/retain2.d: New test.
      	* testsuite/ld-elf/retain2.ld: New test.
      	* testsuite/ld-elf/retain2.map: New test.
      	* testsuite/ld-elf/retain3.d: New test.
      	* testsuite/ld-elf/retain3.s: New test.
      	* testsuite/ld-elf/retain4.d: New test.
      	* testsuite/ld-elf/retain4.s: New test.
      	* testsuite/ld-elf/retain5.d: New test.
      	* testsuite/ld-elf/retain5.map: New test.
      	* testsuite/ld-elf/retain5lib.s: New test.
      	* testsuite/ld-elf/retain5main.s: New test.
      	* testsuite/ld-elf/retain6a.d: New test.
      	* testsuite/ld-elf/retain6b.d: New test.
      	* testsuite/ld-elf/retain6lib.s: New test.
      	* testsuite/ld-elf/retain6main.s: New test.
      99fabbc9
  7. 17 Nov, 2020 1 commit
  8. 13 Nov, 2020 1 commit
    • Nick Clifton's avatar
      Fix readelf's and objdump's dislplay of DWO links when multiple links are present. · 50ea0877
      Nick Clifton authored
       PR 26829
       * dwarf.c (struct dwo_info): Add cu_offset field.
       (add_dwo_info): Add cu_offset parameter.  Record in new dwo_info
       struct.
       (add_dwo_name): Add cu_offset field.
       (add_dwo_dir): Add cu_offset field.
       (add_dwo_id): Add cu_offset field.
       (read_and_display_attr_value): Pass cu_offset to dwo recording
       functions.
       (load_separate_debug_files): Accumulate name, dir and id values
       and display once for each CU.
       * testsuite/binutils-all/dwo.sL Use a separate CU for the second
       dwo link.
       * testsuite/binutils-all/readelf.k2: Update expected output.
      50ea0877
  9. 11 Nov, 2020 1 commit
  10. 10 Nov, 2020 2 commits
  11. 09 Nov, 2020 4 commits
    • Andreas Schwab's avatar
      Fix regexp for development.exp · a76bf0e5
      Andreas Schwab authored
      binutils/:
      	* Makefile.am (development.exp): Fix regexp.
      	* Makefile.in: Regenerate.
      gas/:
      	* Makefile.am (development.exp): Fix regexp.
      	* Makefile.in: Regenerate.
      ld/:
      	* Makefile.am (development.exp): Fix regexp.
      	* Makefile.in: Regenerate.
      a76bf0e5
    • Nick Clifton's avatar
      Extend the DWARF decoder to display FORM names when operating in wide mode. · 521d4b19
      Nick Clifton authored
      	PR 26847
      	* dwarf.c (read_and_display_attr_value): In wide mode, display the
      	name of the form.
      521d4b19
    • Alan Modra's avatar
      elfedit false "may be used uninitialised" · a4e91c46
      Alan Modra authored
      elfedit.c:904:15: error: 'osabi' may be used uninitialised in this function [-Werror=maybe-uninitialized]
        904 |       osabi = concat (osabi, "|", osabis[i].name, NULL);
            |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      	* elfedit (usage): Avoid false positive "may be used uninitialised".
      	Don't leak memory.
      a4e91c46
    • Howard Chu's avatar
      Re: dependency list for static libraries · c9af3845
      Howard Chu authored
      This feature doesn't actually require plugin support, that was a
      mistake in the previous patch.  Fixes these fails:
      
      hppa-hp-hpux10  +FAIL: ar adding library dependencies
      i386-bsd  +FAIL: ar adding library dependencies
      i386-msdos  +FAIL: ar adding library dependencies
      ns32k-netbsd  +FAIL: ar adding library dependencies
      ns32k-pc532-mach  +FAIL: ar adding library dependencies
      pdp11-dec-aout  +FAIL: ar adding library dependencies
      
      	* ar.c (main): Use plugin_target rather than "target" when
      	resetting libdeps_bfd target.
      c9af3845
  12. 06 Nov, 2020 1 commit
    • H.J. Lu's avatar
      elfedit: Update help message · 9c905051
      H.J. Lu authored
      Update elfedit message to
      
      $ elfedit --help
      Usage: elfedit <option(s)> elffile(s)
       Update the ELF header of ELF files
       The options are:
        --input-mach [none|i386|iamcu|l1om|k1om|x86_64]
                                    Set input machine type
        --output-mach [none|i386|iamcu|l1om|k1om|x86_64]
                                    Set output machine type
        --input-type [none|rel|exec|dyn]
                                    Set input file type
        --output-type [none|rel|exec|dyn]
                                    Set output file type
        --input-osabi [none|HPUX|NetBSD|GNU|Linux|Solaris|AIX|Irix|FreeBSD|TRU64|Modesto|OpenBSD|OpenVMS|NSK|AROS|FenixOS]
                                    Set input OSABI
        --output-osabi [none|HPUX|NetBSD|GNU|Linux|Solaris|AIX|Irix|FreeBSD|TRU64|Modesto|OpenBSD|OpenVMS|NSK|AROS|FenixOS]
                                    Set output OSABI
        --enable-x86-feature [ibt|shstk]
                                    Enable x86 feature
        --disable-x86-feature [ibt|shstk]
                                    Disable x86 feature
        -h --help                   Display this information
        -v --version                Display the version number of elfedit
      Report bugs to <http://www.sourceware.org/bugzilla/>
      
      	* elfedit.c: Include "libiberty.h".
      	(usage): Update help message.
      9c905051
  13. 03 Nov, 2020 1 commit
    • Howard Chu's avatar
      Add an option to the archiver to add a section recording library dependencies. · f3016d6c
      Howard Chu authored
      	* ar.c (long_options): Add --record-libdeps.
      	(usage): Mention the new option.
      	(decode_options): Handle the new option.
      	(replace_members): If necessary, create a bfd to hold the libdeps
      	description.
      	* binemul.c (ar_emul_append_bfd): New function.
      	(ar_emul_replace_bfd): New function.
      	(ar_emul_default_append): Replace file_name and target arguments
      	with new_bfd argument.
      	(ar_emul_default_replace): Likewise.
      	* binemul.h: Update prototypes.
      	(struct bin_emulation_xfer_struct): Update fields.
      	* doc/binutils.texi: Document the new option.
      	* NEWS: Mention the new feature.
      	* emul_aix.c (ar_emul_aix_append): Update.
      	(ar_emul_aix_replace): Likewise.
      	* testsuite/binutils-all/ar.exp: Add test of new feature.
      f3016d6c
  14. 30 Oct, 2020 1 commit
    • H.J. Lu's avatar
      x86: Support GNU_PROPERTY_X86_ISA_1_BASELINE marker · b0ab0693
      H.J. Lu authored
      GCC 11 supports -march=x86-64-v[234] to enable x86 micro-architecture ISA
      levels:
      
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97250
      
      X86 ISA markers are updated:
      
      https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/13
      
      GNU_PROPERTY_X86_ISA_1_BASELINE is added and GNU_PROPERTY_X86_ISA_1_V[234]
      are updated:
      
       #define GNU_PROPERTY_X86_ISA_1_BASELINE (1U << 0)
       #define GNU_PROPERTY_X86_ISA_1_V2       (1U << 1)
       #define GNU_PROPERTY_X86_ISA_1_V3       (1U << 2)
       #define GNU_PROPERTY_X86_ISA_1_V4       (1U << 3)
      
      Add -z x86-64-baseline linker command line option to mark x86-64-baseline
      ISA level as needed.
      
      bfd/
      
      	PR gas/26703
      	* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Generate
      	GNU_PROPERTY_X86_ISA_1_BASELINE for -z x86-64-baseline.
      
      binutils/
      
      	PR gas/26703
      	* readelf.c (decode_x86_isa): Handle
      	* GNU_PROPERTY_X86_ISA_1_BASELINE.
      	* testsuite/binutils-all/i386/empty.d: Updated.
      	* testsuite/binutils-all/i386/ibt.d: Likewise.
      	* testsuite/binutils-all/i386/pr21231a.d: Likewise.
      	* testsuite/binutils-all/i386/pr21231b.d: Likewise.
      	* testsuite/binutils-all/i386/shstk.d: Likewise.
      	* testsuite/binutils-all/x86-64/empty-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/empty.d: Likewise.
      	* testsuite/binutils-all/x86-64/ibt-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/ibt.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr21231a.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494a-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494a.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494c.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494d.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494e-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494e.d: Likewise.
      	* testsuite/binutils-all/x86-64/shstk-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/shstk.d: Likewise.
      
      gas/
      
      	PR gas/26703
      	* config/tc-i386.c (output_insn): Update for
      	GNU_PROPERTY_X86_ISA_1_BASELINE.
      	* testsuite/gas/i386/property-1.d: Updated.
      	* testsuite/gas/i386/property-2.d: Likewise.
      	* testsuite/gas/i386/property-3.d: Likewise.
      	* testsuite/gas/i386/property-4.d: Likewise.
      	* testsuite/gas/i386/property-5.d: Likewise.
      	* testsuite/gas/i386/property-6.d: Likewise.
      	* testsuite/gas/i386/property-11.d: Likewise.
      	* testsuite/gas/i386/property-12.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-1.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-2.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-3.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-4.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-5.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-6.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-11.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-12.d: Likewise.
      
      include/
      
      	PR gas/26703
      	* elf/common.h (GNU_PROPERTY_X86_ISA_1_BASELINE): New.
      	(GNU_PROPERTY_X86_ISA_1_V2): Uppdated.
      	(GNU_PROPERTY_X86_ISA_1_V3): Likewise.
      	(GNU_PROPERTY_X86_ISA_1_V4): Likewise.
      
      ld/
      
      	PR gas/26703
      	* NEWS: Mention -z x86-64-baseline.
      	* ld.texi: Document -z x86-64-baseline.
      	* emulparams/x86-64-level.sh: Handle -z x86-64-baseline.
      	* testsuite/ld-elf/x86-feature-1a.rd: Update.
      	* testsuite/ld-elf/x86-feature-1b.rd: Likewise.
      	* testsuite/ld-elf/x86-feature-1c.rd: Likewise.
      	* testsuite/ld-elf/x86-feature-1d.rd: Likewise.
      	* testsuite/ld-elf/x86-feature-1e.rd: Likewise.
      	* testsuite/ld-i386/pr23372c.d: Likewise.
      	* testsuite/ld-i386/pr23486c.d: Likewise.
      	* testsuite/ld-i386/pr23486d.d: Likewise.
      	* testsuite/ld-i386/pr24322a.d: Likewise.
      	* testsuite/ld-i386/pr24322b.d: Likewise.
      	* testsuite/ld-i386/property-1a.r: Likewise.
      	* testsuite/ld-i386/property-2a.r: Likewise.
      	* testsuite/ld-i386/property-3.r: Likewise.
      	* testsuite/ld-i386/property-3a.r: Likewise.
      	* testsuite/ld-i386/property-4.r: Likewise.
      	* testsuite/ld-i386/property-4a.r: Likewise.
      	* testsuite/ld-i386/property-5.r: Likewise.
      	* testsuite/ld-i386/property-5a.r: Likewise.
      	* testsuite/ld-i386/property-7a.r: Likewise.
      	* testsuite/ld-i386/property-x86-3.d: Likewise.
      	* testsuite/ld-i386/property-x86-4a.d: Likewise.
      	* testsuite/ld-i386/property-x86-5.d: Likewise.
      	* testsuite/ld-i386/property-x86-cet1.d: Likewise.
      	* testsuite/ld-i386/property-x86-cet2a.d: Likewise.
      	* testsuite/ld-i386/property-x86-cet5a.d: Likewise.
      	* testsuite/ld-i386/property-x86-cet5b.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt1a.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt1b.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt2.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt4.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt5.d: Likewise.
      	* testsuite/ld-i386/property-x86-isa1.d: Likewise.
      	* testsuite/ld-i386/property-x86-isa2.d: Likewise.
      	* testsuite/ld-i386/property-x86-isa3.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk1a.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk1b.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk2.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk4.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk5.d: Likewise.
      	* testsuite/ld-x86-64/pr23372c-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr23372c.d: Likewise.
      	* testsuite/ld-x86-64/pr23486c-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr23486c.d: Likewise.
      	* testsuite/ld-x86-64/pr23486d-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr23486d.d: Likewise.
      	* testsuite/ld-x86-64/pr24322a-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24322a.d: Likewise.
      	* testsuite/ld-x86-64/pr24322b-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24322b.d: Likewise.
      	* testsuite/ld-x86-64/pr24458a-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24458a.d: Likewise.
      	* testsuite/ld-x86-64/pr24458b-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24458b.d: Likewise.
      	* testsuite/ld-x86-64/pr24458c-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24458c.d: Likewise.
      	* testsuite/ld-x86-64/property-1a.r: Likewise.
      	* testsuite/ld-x86-64/property-2a.r: Likewise.
      	* testsuite/ld-x86-64/property-3.r: Likewise.
      	* testsuite/ld-x86-64/property-3a.r: Likewise.
      	* testsuite/ld-x86-64/property-4.r: Likewise.
      	* testsuite/ld-x86-64/property-4a.r: Likewise.
      	* testsuite/ld-x86-64/property-5.r: Likewise.
      	* testsuite/ld-x86-64/property-5a.r: Likewise.
      	* testsuite/ld-x86-64/property-7a.r: Likewise.
      	* testsuite/ld-x86-64/property-x86-3-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-3.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-4a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-4a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-5-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-5.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet1-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet1.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet2a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet2a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet5a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet5a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet5b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet5b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt1a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt1a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt1b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt1b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt2-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt2.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt4-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt4.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt5-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa1-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa1.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa2-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa2.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa3-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa3.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt5.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk1a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk1a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk1b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk1b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk2-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk2.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk4-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk4.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk5-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk5.d: Likewise.
      	* testsuite/ld-i386/i386.exp: Run property-x86-isa4.
      	* testsuite/ld-i386/property-x86-isa4.d: New file.
      	* testsuite/ld-x86-64/property-x86-isa4-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa4.d: Likewise.
      	* ld/testsuite/ld-x86-64/x86-64.exp: Run property-x86-isa4
      	and property-x86-isa4-x32.
      b0ab0693
  15. 29 Oct, 2020 2 commits
    • H.J. Lu's avatar
      dwarf: Also match abbrev base when searching abbrev list · 76868f36
      H.J. Lu authored
      A .debug_abbrev section can have multiple CUs.  When caching abbrev list,
      we need to check abbrev base to support multiple CUs.
      
      	PR binutils/26808
      	* dwarf.c (abbrev_list): Add abbrev_base.
      	(new_abbrev_list): Add an abbrev_base argument and record it.
      	(find_abbrev_list_by_abbrev_offset): Add an abbrev_base argument
      	and match it.
      	(process_debug_info): Pass abbrev_base to new_abbrev_list and
      	find_abbrev_list_by_abbrev_offset.
      	(display_debug_abbrev): Pass 0 abbrev_base to new_abbrev_list
      	and find_abbrev_list_by_abbrev_offset.
      	* testsuite/binutils-all/x86-64/pr26808.dump: New file.
      	* testsuite/binutils-all/x86-64/pr26808.dwp.bz2: Likewise.
      	* testsuite/binutils-all/x86-64/x86-64.exp: Run PR binutils/26808
      	test.
      76868f36
    • Nick Clifton's avatar
      Fix a potential illegal memory access by objcopy when extracting dwo sections. · 00c19b8e
      Nick Clifton authored
       PR 26805
       * objcopy.c (is_dwo_section): Check for missing or short section
       names.
      00c19b8e
  16. 28 Oct, 2020 2 commits
    • Andreas Rammhold's avatar
      Use sha256 for hashes in the release process · ce04ca31
      Andreas Rammhold authored
      I just came across the GDB 10.1 release notes and saw that md5 is still
      being used in those. I thought it would be a good idea to instead have a
      more modern, secure and wildly available hash function such as SHA256 as
      part of the release process.
      
      The changes have been done rather mechnically via sed but executing the
      `src-release.sh -b gdb` did work so I am confident about the result.
      
      While this does not directly address the release mails, I was wasn't
      able to find the template/script used for those, this is probably still
      an improvement.
      
      ChangeLog:
      	* src-release.sh: Use sha256sum instead of md5sum.
      
      binutils/ChangeLog:
      	* README-how-to-make-a-release: Use sha256sum instead of md5sum.
      
      Change-Id: I9cf19ea40699137c45463b8514f6e29271af2347
      ce04ca31
    • Nick Clifton's avatar
      Fix compile time warning building with gcc 11. · ec3f28df
      Nick Clifton authored
      	PR 26795
      	* elfedit.c (process_archive): Remove spurious call to free().
      ec3f28df
  17. 27 Oct, 2020 1 commit
    • Nick Clifton's avatar
      Fix the decoding of DW_FORM_ref_addr DWARF attribute. · bcd213b2
      Nick Clifton authored
      	* dwarf.c (struct abbrev_list): New structure.  Used to collect
      	lists of abbreviation sets.
      	(struct abbrev_map): New structure.  Used to map CU offsets to
      	abbreviation offsets.
      	(record_abbrev_list): New function.  A new entry to an
      	abbreviation list.
      	(free_all_abbrevs): Update to free abbreviation lists.
      	(new_abbrev_list): New function.  Start a new abbreviation
      	list.
      	(find_abbrev_list_by_abbrev_offset): New function.
      	(find_abbrev_map_by_offset): New function.
      	(add_abbrev): Add abbrev_list parameter.
      	(add_abbrev_attr): Likewise.
      	(process_abbrev_section): Rename to process_abbrev_set and add
      	list parameter.
      	(get_type_abbrev_from_form): New function.  Attempts to decode the
      	forms used by DW_AT_type attributes.
      	(get_type_signedness): Display type names if operating in wide
      	mode.  Use get_type_abbrev_from_form.
      	(read_and_display_attr_value): Use get_type_abbrev_from_form.
      	(process_debug_info): Pre-parse the CU headers to collate all the
      	abbrevs before starting the main scan.
      	(process_debug_abbrev): Do not free any loaded abbrevs.
      	(free_debug_memory): Free the abbrev maps.
      bcd213b2
  18. 22 Oct, 2020 2 commits
  19. 21 Oct, 2020 1 commit
    • Nick Clifton's avatar
      Work around problem in DWARF decoding library which can result in attempts to... · 59624513
      Nick Clifton authored
      Work around problem in DWARF decoding library which can result in attempts to read arbitrary bytes as if they were an LEB128 encoded value.
      
      	* dwarf.c (skip_attr_bytes): Accept DWARF versions higher than 4
      	when processing the DW_FORM_ref_addr form.
      	Skip bytes in DW_FORM_block and DW_FORM_exprloc forms.
      	Handle DW_FORM_indirect.
      	(get_type_signedness): Allow a limited amount of recursion.
      	Do not attempt to decode types that use the DW_FORM_ref_addr form.
      	(read_and_display_attr_value): 	Do not attempt to decode types
      	that use the DW_FORM_ref_addr form.
      59624513
  20. 20 Oct, 2020 2 commits
    • Alan Modra's avatar
      readelf.c display_lto_symtab offset outside bounds of constant string · b9e920ec
      Alan Modra authored
      Using gcc-10 or current mainline gcc, binutils configured with
      --disable-nls results in:
      
      readelf.c: In function 'display_lto_symtab':
      readelf.c:12283:26: error: offset '17' outside bounds of constant string [-Werror=array-bounds]
      12283 |   SECTION_NAME (section) + strlen (".gnu.lto_.symtab.")) > 0
            |                          ^
      
      Which is actually a bogus warning in this case because we've already
      checked the name string for validity, so SECTION_NAME won't ever be
      "<none>", "<no-strings>" or "<corrupt>".  This patch fixes the problem
      by making SECTION_NAME simply return the string from the string table.
      Other places also shouldn't be trying to match any of the error
      strings against a section name, so fix them too.
      
      	* readelf.c: Delete whitespace at end of line throughout.
      	(SECTION_NAME, SECTION_NAME_VALID): New.
      	(SECTION_NAME_PRINT): Rename from SECTION_NAME.  Formatting.
      	(printable_section_name, dump_relocations): Use SECTION_NAME_PRINT.
      	(process_section_headers, process_section_groups): Likewise.
      	(shdr_to_ctf_sect): Likewise.
      	(find_section, find_section_in_set): Use SECTION_NAME_VALID.
      	(ia64_process_unwind, hppa_process_unwind): Likewise.
      	(display_debug_section, initialise_dumps_byname): Likewise.
      	(process_lto_symbol_tables): Likewise.  Check trailing period of
      	lto symbol table names.
      	(display_lto_symtab): Use sizeof instead of strlen.
      b9e920ec
    • Nelson Chu's avatar
      binutils: Add myself as RISC-V co-maintainer. · ce786647
      Nelson Chu authored
      	binutils/
      	* MAINTAINERS (RISC-V): Add myself as RISC-V co-maintainer.
      ce786647
  21. 19 Oct, 2020 1 commit
    • Nick Clifton's avatar
      Readelf: Add --lto-syms option to display LTO symbol tables. · 0f03783c
      Nick Clifton authored
      	* readelf.c (do_lto_syms): New local.
      	(long_option_values): Add OPTION_LTO_SYMS.
      	(options): Add --lto-syms.
      	(usage): Mention the new option.
      	(parse_args): Parse the new option.
      	(get_lto_kind): New function.
      	(get_lto_visibility): New function.
      	(get_lto_sym_type): New function.
      	(display_lto_symtab): New function - displays the contents of an
      	LTo symbol table section.
      	(process_lto_symbol_tables): New functions.  Calls
      	dipslay_lto_symtab on any LTO symbol table section.
      	(process_object_file): Call process_lto_symbol_tables.
      	* doc/binutils.texi: Document the new option.
      	* NEWS: Mention the new feature.
      0f03783c
  22. 09 Oct, 2020 1 commit
    • H.J. Lu's avatar
      x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker · 32930e4e
      H.J. Lu authored
      GCC 11 supports -march=x86-64-v[234] to enable x86 micro-architecture ISA
      levels:
      
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97250
      
      Update GNU_PROPERTY_X86_ISA_1_XXX macros:
      
      https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/13
      
      in x86 ELF binaries to indicate that micro-architecture ISA levels
      required to execute the binary:
      
       #define GNU_PROPERTY_X86_ISA_1_NEEDED (GNU_PROPERTY_X86_UINT32_OR_LO + 2)
       #define GNU_PROPERTY_X86_ISA_1_USED (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2)
       #define GNU_PROPERTY_X86_ISA_1_V2 (1U << 0)
       #define GNU_PROPERTY_X86_ISA_1_V3 (1U << 1)
       #define GNU_PROPERTY_X86_ISA_1_V4 (1U << 2)
      
      The previous GNU_PROPERTY_X86_ISA_1_XXX  macros are deprecated and renamed
      to GNU_PROPERTY_X86_COMPAT_2_ISA_1_XXX.
      
      In addition to EM_X86_64, GNU_PROPERTY_X86_ISA_1_V[234] marker can be used
      by ld.so to detect the x86-64-v4 shared library placed in an x86-64-v2
      directory by mistake on an x86-64-v2 machine to avoid crashes on x86-64-v4
      instructions.
      
      Add -z x86-64-v[234] linker command line option to mark x86-64-v[234]
      ISA level as needed.
      
      Also add
      
       #define GNU_PROPERTY_X86_FEATURE_2_MASK (1U << 11)
      
      for mask registers.
      
      bfd/
      
      	PR gas/26703
      	* elf-linker-x86.h (elf_linker_x86_params): Add isa_level.
      	* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Merge
      	GNU_PROPERTY_X86_ISA_1_V[234].
      	(_bfd_x86_elf_link_setup_gnu_properties): Generate
      	GNU_PROPERTY_X86_ISA_1_V[234] for -z x86-64-v[234].
      
      binutils/
      
      	PR gas/26703
      	* readelf.c (decode_x86_compat_2_isa): New function.
      	(decode_x86_isa): Updated for new X86_ISA_1_XXX bits.
      	(decode_x86_feature_1): Handle GNU_PROPERTY_X86_FEATURE_2_MASK.
      	(print_gnu_property_note): Handle X86_COMPAT_2_ISA_1_USED,
      	and X86_COMPAT_2_ISA_1_NEEDED.
      	* testsuite/binutils-all/i386/pr21231b.s: Updated to the current
      	GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED
      	values.
      	* testsuite/binutils-all/x86-64/pr21231b.s: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494a.s: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494b.s: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494c.s: Likewise.
      	* testsuite/binutils-all/i386/empty.d: Updated.
      	* testsuite/binutils-all/i386/ibt.d: Likewise.
      	* testsuite/binutils-all/i386/pr21231a.d: Likewise.
      	* testsuite/binutils-all/i386/pr21231b.d: Likewise.
      	* testsuite/binutils-all/i386/shstk.d: Likewise.
      	* testsuite/binutils-all/x86-64/empty-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/empty.d: Likewise.
      	* testsuite/binutils-all/x86-64/ibt-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/ibt.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr21231a.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494a-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494a.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494c.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494d.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494e-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494e.d: Likewise.
      	* testsuite/binutils-all/x86-64/shstk-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/shstk.d: Likewise.
      
      gas/
      
      	PR gas/26703
      	* config/tc-i386.c (xstate): Add xstate_mask.
      	(md_assemble): Check i.types[j], instead of i.tm.operand_types[j],
      	for xstate.  Set xstate_mask, instead of xstate_zmm, for RegMask.
      	(output_insn): Update for GNU_PROPERTY_X86_ISA_1_V[234].  Update
      	xstate for mask register and VSIB.
      	* testsuite/gas/i386/i386.exp: Run more GNU_PROPERTY tests.
      	* testsuite/gas/i386/property-1.s: Updated to the current
      	GNU_PROPERTY_X86_ISA_1_USED value.
      	* testsuite/gas/i386/property-2.s: Only keep cmove.
      	* testsuite/gas/i386/property-3.s: Changed to addsubpd.
      	* testsuite/gas/i386/property-1.d: Updated.
      	* testsuite/gas/i386/property-2.d: Likewise.
      	* testsuite/gas/i386/property-3.d: Likewise.
      	* testsuite/gas/i386/property-4.d: Likewise.
      	* testsuite/gas/i386/property-5.d: Likewise.
      	* testsuite/gas/i386/property-6.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-1.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-2.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-3.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-4.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-5.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-6.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-7.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-8.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-9.d: Likewise.
      	* testsuite/gas/i386/property-11.d: New file.
      	* testsuite/gas/i386/property-11.s: Likewise.
      	* testsuite/gas/i386/property-12.d: Likewise.
      	* testsuite/gas/i386/property-12.s: Likewise.
      	* testsuite/gas/i386/property-13.d: Likewise.
      	* testsuite/gas/i386/property-13.s: Likewise.
      	* testsuite/gas/i386/x86-64-property-11.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-12.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-13.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-14.d: Likewise.
      	* testsuite/gas/i386/x86-64-property-14.s: Likewise.
      
      include/
      
      	PR gas/26703
      	* elf/common.h (GNU_PROPERTY_X86_ISA_1_USED): Renamed to ...
      	(GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED): This.
      	(GNU_PROPERTY_X86_ISA_1_NEEDED): Renamed to ...
      	(GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED): This.
      	(GNU_PROPERTY_X86_ISA_1_XXX): Renamed to ...
      	(GNU_PROPERTY_X86_COMPAT_2_ISA_1_XXX): This.
      	(GNU_PROPERTY_X86_ISA_1_NEEDED): New.
      	(GNU_PROPERTY_X86_ISA_1_USED): Likewise.
      	(GNU_PROPERTY_X86_ISA_1_V2): Likewise.
      	(GNU_PROPERTY_X86_ISA_1_V3): Likewise.
      	(GNU_PROPERTY_X86_ISA_1_V4): Likewise.
      	(GNU_PROPERTY_X86_FEATURE_2_MASK): Likewise.
      
      ld/
      
      	PR gas/26703
      	* NEWS: Mention -z x86-64-v[234].
      	* ld.texi: Document -z x86-64-v[234].
      	* emulparams/elf32_x86_64.sh: Use x86-64-level.sh.
      	* emulparams/elf_i386.sh: Likewise.
      	* emulparams/elf_x86_64.sh: Likewise.
      	* emulparams/x86-64-level.sh: New file.
      	* testsuite/ld-elf/x86-feature-1a.rd: Update.
      	* testsuite/ld-elf/x86-feature-1b.rd: Likewise.
      	* testsuite/ld-elf/x86-feature-1c.rd: Likewise.
      	* testsuite/ld-elf/x86-feature-1d.rd: Likewise.
      	* testsuite/ld-elf/x86-feature-1e.rd: Likewise.
      	* testsuite/ld-i386/pr23372c.d: Likewise.
      	* testsuite/ld-i386/pr23486c.d: Likewise.
      	* testsuite/ld-i386/pr23486d.d: Likewise.
      	* testsuite/ld-i386/pr24322a.d: Likewise.
      	* testsuite/ld-i386/pr24322b.d: Likewise.
      	* testsuite/ld-i386/property-1a.r: Likewise.
      	* testsuite/ld-i386/property-2a.r: Likewise.
      	* testsuite/ld-i386/property-3.r: Likewise.
      	* testsuite/ld-i386/property-3a.r: Likewise.
      	* testsuite/ld-i386/property-4.r: Likewise.
      	* testsuite/ld-i386/property-4a.r: Likewise.
      	* testsuite/ld-i386/property-5.r: Likewise.
      	* testsuite/ld-i386/property-5a.r: Likewise.
      	* testsuite/ld-i386/property-7a.r: Likewise.
      	* testsuite/ld-i386/property-x86-3.d: Likewise.
      	* testsuite/ld-i386/property-x86-4a.d: Likewise.
      	* testsuite/ld-i386/property-x86-5.d: Likewise.
      	* testsuite/ld-i386/property-x86-cet1.d: Likewise.
      	* testsuite/ld-i386/property-x86-cet2a.d: Likewise.
      	* testsuite/ld-i386/property-x86-cet5a.d: Likewise.
      	* testsuite/ld-i386/property-x86-cet5b.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt1a.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt1b.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt2.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt4.d: Likewise.
      	* testsuite/ld-i386/property-x86-ibt5.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk1a.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk1b.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk2.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk4.d: Likewise.
      	* testsuite/ld-i386/property-x86-shstk5.d: Likewise.
      	* testsuite/ld-x86-64/pr23372c-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr23372c.d: Likewise.
      	* testsuite/ld-x86-64/pr23486c.d: Likewise.
      	* testsuite/ld-x86-64/pr23486d-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr23486d.d: Likewise.
      	* testsuite/ld-x86-64/pr24322a-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24322a.d: Likewise.
      	* testsuite/ld-x86-64/pr24322b-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24322b.d: Likewise.
      	* testsuite/ld-x86-64/pr24458a-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24458a.d: Likewise.
      	* testsuite/ld-x86-64/pr24458b-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24458b.d: Likewise.
      	* testsuite/ld-x86-64/pr24458c-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr24458c.d: Likewise.
      	* testsuite/ld-x86-64/property-1a.r: Likewise.
      	* testsuite/ld-x86-64/property-2a.r: Likewise.
      	* testsuite/ld-x86-64/property-3.r: Likewise.
      	* testsuite/ld-x86-64/property-3a.r: Likewise.
      	* testsuite/ld-x86-64/property-4.r: Likewise.
      	* testsuite/ld-x86-64/property-4a.r: Likewise.
      	* testsuite/ld-x86-64/property-5.r: Likewise.
      	* testsuite/ld-x86-64/property-5a.r: Likewise.
      	* testsuite/ld-x86-64/property-7a.r: Likewise.
      	* testsuite/ld-x86-64/property-x86-3-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-3.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-4a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-4a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-5-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-5.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet1-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet1.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet2a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet2a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet5a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet5a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet5b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-cet5b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt1a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt1a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt1b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt1b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt2-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt2.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt4-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt4.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt5-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-ibt5.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk1a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk1a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk1b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk1b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk2-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk2.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk4-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk4.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk5-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-shstk5.d: Likewise.
      	* testsuite/ld-i386/i386.exp: Run property-x86-6,
      	property-x86-isa1, property-x86-isa2 and property-x86-isa3.
      	* testsuite/ld-i386/property-x86-1.S: Updated to the current
      	GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED
      	values.
      	* testsuite/ld-i386/property-x86-2.S: Likewise.
      	* testsuite/ld-i386/property-x86-3.s: Likewise.
      	* testsuite/ld-x86-64/pr23372d.s: Likewise.
      	* testsuite/ld-x86-64/pr23372e.s: Likewise.
      	* testsuite/ld-x86-64/pr23372f.s: Likewise.
      	* testsuite/ld-x86-64/pr23486c.s: Likewise.
      	* testsuite/ld-x86-64/pr23486d.s: Likewise.
      	* testsuite/ld-x86-64/property-x86-1.S: Likewise.
      	* testsuite/ld-x86-64/property-x86-2.S: Likewise.
      	* testsuite/ld-x86-64/property-x86-3.s: Likewise.
      	* testsuite/ld-x86-64/property-x86-5a.s: Likewise.
      	* testsuite/ld-x86-64/property-x86-5b.s: Likewise.
      	* testsuite/ld-i386/property-x86-6.d: New file.
      	* testsuite/ld-i386/property-x86-isa1.d: Likewise.
      	* testsuite/ld-i386/property-x86-isa2.d: Likewise.
      	* testsuite/ld-i386/property-x86-isa3.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-6-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-6.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-6.s: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa1-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa1.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa1.s: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa2-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa2.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa3-x32.d: Likewise.
      	* testsuite/ld-x86-64/property-x86-isa3.d: Likewise.
      	* testsuite/ld-x86-64/simple.s: Likewise.
      	* ld/testsuite/ld-x86-64/x86-64.exp: Run property-x86-6,
      	property-x86-6-x32, property-x86-isa1, property-x86-isa1-x32,
      	property-x86-isa2, property-x86-isa2-x32, property-x86-isa3-x32
      	and property-x86-isa3.
      32930e4e