diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2021-08-29 18:23:50 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2021-08-30 08:59:55 +0200 |
commit | 34ba4d05d9d2b7f5d72aded4eb35aa617cb8629d (patch) | |
tree | fd24e6dc296552ed8ce520e595a71eea78e88e9c /source/d/binutils/patches | |
parent | a685863802fc9764aefd5b07106f3e3e54b210a3 (diff) | |
download | current-72a4f78ac758ea1463e45375612501954f185e75.tar.gz |
Sun Aug 29 18:23:50 UTC 202120210829182350
ap/man-pages-5.13-noarch-1.txz: Upgraded.
d/binutils-2.37-x86_64-1.txz: Upgraded.
With a few upstream patches to fix some regressions in the release, we no
longer get any new FTBFS with this, so we'll take it.
d/oprofile-1.4.0-x86_64-8.txz: Rebuilt.
Recompiled against binutils-2.37.
kde/sddm-0.19.0-x86_64-8.txz: Rebuilt.
Patched to fix build.
l/libcap-2.54-x86_64-1.txz: Upgraded.
l/libssh-0.9.6-x86_64-1.txz: Upgraded.
Fix possible heap-buffer overflow when rekeying with different key exchange
mechanism.
For more information, see:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3634
(* Security fix *)
l/qt5-5.15.3_20210826_21ea9c12-x86_64-1.txz: Upgraded.
Switched to the patched qt5 from https://invent.kde.org/qt/qt/qt5.git.
Huge thanks to Heinz Wiesinger for the script to create a release tarball.
Likely this fixes many security issues.
(* Security fix *)
x/libglvnd-1.3.3-x86_64-1.txz: Upgraded.
Reverted to this version because changes to the header files won't allow the
EGL portions of Qt to properly compile.
Diffstat (limited to 'source/d/binutils/patches')
26 files changed, 2614 insertions, 3821 deletions
diff --git a/source/d/binutils/patches/0001-ELF-Don-t-generate-unused-section-symbols.patch b/source/d/binutils/patches/0001-ELF-Don-t-generate-unused-section-symbols.patch deleted file mode 100644 index 54a2cd06..00000000 --- a/source/d/binutils/patches/0001-ELF-Don-t-generate-unused-section-symbols.patch +++ /dev/null @@ -1,3696 +0,0 @@ -From d1bcae833b32f1408485ce69f844dcd7ded093a8 Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" <hjl.tools@gmail.com> -Date: Thu, 7 Jan 2021 06:42:00 -0800 -Subject: [PATCH] ELF: Don't generate unused section symbols - -For ELF targets, section symbols are required only for relocations. -With -ffunction-sections -fdata-sections, there can be many unused -section symbols. Sizes of libstdc++.a on Linux/x86-64 in GCC 11 are - -With unused section symbols : 39411698 bytes -Without unused section symbols: 39227002 bytes - -The unused section symbols in libstdc++.a occupy more than 180 KB. - -Add BSF_SECTION_SYM_USED to indicate if a section symbol should be -included in the symbol table. The BSF_SECTION_SYM_USED should be set -if the section symbol is used for relocation or the section symbol is -always included in the symbol table. - -Add keep_unused_section_symbols to bfd_target to indicate if unused -section symbols should be kept. If TARGET_KEEP_UNUSED_SECTION_SYMBOLS -is defined as FALSE, unused ection symbols will be removed. - -Tested on Linux/x86. Other ELF backends need to: - -1. Define TARGET_KEEP_UNUSED_SECTION_SYMBOLS to FALSE. -2. Mark used section symbols in assembler backend. -3. Remove unused section symbols from expected assembler and linker -outputs. - -bfd/ - - PR 27109 - * aix386-core.c (core_aix386_vec): Initialize - keep_unused_section_symbol to TARGET_KEEP_UNUSED_SECTION_SYMBOLS. - * aout-target.h (MY (vec)): Likewise. - * binary.c (binary_vec): Likewise. - * cisco-core.c (core_cisco_be_vec): Likewise. - (core_cisco_le_vec): Likewise. - * coff-alpha.c (alpha_ecoff_le_vec): Likewise. - * coff-i386.c (TARGET_SYM): Likewise. - (TARGET_SYM_BIG): Likewise. - * coff-ia64.c (TARGET_SYM): Likewise. - * coff-mips.c (mips_ecoff_le_vec): Likewise. - (mips_ecoff_be_vec): Likewise. - (mips_ecoff_bele_vec): Likewise. - * coff-rs6000.c (rs6000_xcoff_vec): Likewise. - (powerpc_xcoff_vec): Likewise. - * coff-sh.c (sh_coff_small_vec): Likewise. - (sh_coff_small_le_vec): Likewise. - * coff-tic30.c (tic30_coff_vec): Likewise. - * coff-tic54x.c (tic54x_coff0_vec): Likewise. - (tic54x_coff0_beh_vec): Likewise. - (tic54x_coff1_vec): Likewise. - (tic54x_coff1_beh_vec): Likewise. - (tic54x_coff2_vec): Likewise. - (tic54x_coff2_beh_vec): Likewise. - * coff-x86_64.c (TARGET_SYM): Likewise. - (TARGET_SYM_BIG): Likewise. - * coff64-rs6000.c (rs6000_xcoff64_vec): Likewise. - (rs6000_xcoff64_aix_vec): Likewise. - * coffcode.h (CREATE_BIG_COFF_TARGET_VEC): Likewise. - (CREATE_BIGHDR_COFF_TARGET_VEC): Likewise. - (CREATE_LITTLE_COFF_TARGET_VEC): Likewise. - * elfxx-target.h (TARGET_BIG_SYM): Likewise. - (TARGET_LITTLE_SYM): Likewise. - * hppabsd-core.c (core_hppabsd_vec): Likewise. - * hpux-core.c (core_hpux_vec): Likewise. - * i386msdos.c (i386_msdos_vec): Likewise. - * ihex.c (ihex_vec): Likewise. - * irix-core.c (core_irix_vec): Likewise. - * mach-o-target.c (TARGET_NAME): Likewise. - * mmo.c (mmix_mmo_vec): Likewise. - * netbsd-core.c (core_netbsd_vec): Likewise. - * osf-core.c (core_osf_vec): Likewise. - * pdp11.c (MY (vec)): Likewise. - * pef.c (pef_vec): Likewise. - (pef_xlib_vec): Likewise. - * plugin.c (plugin_vec): Likewise. - * ppcboot.c (powerpc_boot_vec): Likewise. - * ptrace-core.c (core_ptrace_vec): Likewise. - * sco5-core.c (core_sco5_vec): Likewise. - * som.c (hppa_som_vec): Likewise. - * srec.c (srec_vec): Likewise. - (symbolsrec_vec): Likewise. - * tekhex.c (tekhex_vec): Likewise. - * trad-core.c (core_trad_vec): Likewise. - * verilog.c (verilog_vec): Likewise. - * vms-alpha.c (alpha_vms_vec): Likewise. - * vms-lib.c (alpha_vms_lib_txt_vec): Likewise. - * wasm-module.c (wasm_vec): Likewise. - * xsym.c (sym_vec): Likewise. - * elf.c (ignore_section_sym): Return TRUE if BSF_SECTION_SYM_USED - isn't set. - (elf_map_symbols): Don't include ignored section symbols. - * elfcode.h (elf_slurp_symbol_table): Also set - BSF_SECTION_SYM_USED on STT_SECTION symbols. - * elflink.c (bfd_elf_final_link): Generated section symbols only - when emitting relocations or reqired. - * elfxx-x86.h (TARGET_KEEP_UNUSED_SECTION_SYMBOLS): New. - * syms.c (BSF_SECTION_SYM_USED): New. - * targets.c (TARGET_KEEP_UNUSED_SECTION_SYMBOLS): New. - (bfd_target): Add keep_unused_section_symbols. - (bfd_keep_unused_section_symbols): New. - * bfd-in2.h: Regenerated. - -binutils/ - - PR 27109 - * objcopy.c (copy_object): Handle section symbols for - non-relocatable inputs. - * testsuite/binutils-all/readelf.exp (readelf_test): Check - is_elf_unused_section_symbols. - * testsuite/binutils-all/readelf.s-64: Updated. - * testsuite/binutils-all/readelf.ss: Likewise. - * testsuite/binutils-all/readelf.ss-64: Likewise. - * testsuite/binutils-all/readelf.s-64-unused: New file. - * testsuite/binutils-all/readelf.ss-64-unused: Likewise. - * testsuite/binutils-all/readelf.ss-unused: Likewise. - * testsuite/lib/binutils-common.exp - (is_elf_unused_section_symbols): New proc. - -gas/ChangeLog: - - PR 27109 - * read.c (s_reloc): Call symbol_mark_used_in_reloc on the - section symbol. - * subsegs.c (subseg_set_rest): Set BSF_SECTION_SYM_USED if needed. - * write.c (adjust_reloc_syms): Call symbol_mark_used_in_reloc - on the section symbol. - (set_symtab): Don't generate unused section symbols. - (maybe_generate_build_notes): Call symbol_mark_used_in_reloc - on the section symbol. - * config/obj-elf.c (elf_adjust_symtab): Call - symbol_mark_used_in_reloc on the group signature symbol. - * testsuite/gas/cfi/cfi-label.d: Remove unused section symbols - from expected output. - * testsuite/gas/elf/elf.exp (run_elf_list_test): Check - is_elf_unused_section_symbols. - * testsuite/gas/elf/section2.e: Updated. - * testsuite/gas/elf/section2.e-unused: New file. - * testsuite/gas/elf/symver.d: Remove unused section symbols. - * testsuite/gas/i386/ilp32/elf/symver.d: Likewise. - * testsuite/gas/i386/ilp32/x86-64-size-1.d: Likewise. - * testsuite/gas/i386/ilp32/x86-64-size-3.d: Likewise. - * testsuite/gas/i386/ilp32/x86-64-size-5.d: Likewise. - * testsuite/gas/i386/ilp32/x86-64-unwind.d: Likewise. - * testsuite/gas/i386/size-1.d: Likewise. - * testsuite/gas/i386/size-3.d: Likewise. - * testsuite/gas/i386/svr4.d: Likewise. - * testsuite/gas/i386/x86-64-size-1.d: Likewise. - * testsuite/gas/i386/x86-64-size-3.d: Likewise. - * testsuite/gas/i386/x86-64-size-5.d: Likewise. - * testsuite/gas/i386/x86-64-unwind.d: Likewise. - -ld/ - - PR 27109 - * testsuite/ld-elf/export-class.sd: Adjust the expected output. - * testsuite/ld-elf/loadaddr3b.d: Likewise. - * testsuite/ld-i386/ibt-plt-1.d: Likewise. - * testsuite/ld-i386/ibt-plt-2a.d: Likewise. - * testsuite/ld-i386/ibt-plt-2c.d: Likewise. - * testsuite/ld-i386/ibt-plt-3a.d: Likewise. - * testsuite/ld-i386/ibt-plt-3c.d: Likewise. - * testsuite/ld-i386/pr19636-1d.d: Likewise. - * testsuite/ld-i386/pr19636-1l.d: Likewise. - * testsuite/ld-i386/pr19636-2c.d: Likewise. - * testsuite/ld-ifunc/ifunc-2-i386-now.d: Likewise. - * testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise. - * testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d: Likewise. - * testsuite/ld-ifunc/ifunc-2-x86-64-now.d: Likewise. - * testsuite/ld-ifunc/ifunc-21-x86-64.d: Likewise. - * testsuite/ld-ifunc/ifunc-22-x86-64.d: Likewise. - * testsuite/ld-ifunc/pr17154-i386-now.d: Likewise. - * testsuite/ld-ifunc/pr17154-i386.d: Likewise. - * testsuite/ld-ifunc/pr17154-x86-64-now.d: Likewise. - * testsuite/ld-ifunc/pr17154-x86-64.d: Likewise. - * testsuite/ld-x86-64/bnd-branch-1-now.d: Likewise. - * testsuite/ld-x86-64/bnd-ifunc-1-now.d: Likewise. - * testsuite/ld-x86-64/bnd-ifunc-2-now.d: Likewise. - * testsuite/ld-x86-64/bnd-ifunc-2.d: Likewise. - * testsuite/ld-x86-64/bnd-plt-1-now.d: Likewise. - * testsuite/ld-x86-64/bnd-plt-1.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-1-x32.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-1.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-2a-x32.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-2a.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-2c-x32.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-2c.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-3a-x32.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-3a.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-3c-x32.d: Likewise. - * testsuite/ld-x86-64/ibt-plt-3c.d: Likewise. - * testsuite/ld-x86-64/pr19609-4e.d: Likewise. - * testsuite/ld-x86-64/pr19609-6a.d: Likewise. - * testsuite/ld-x86-64/pr19609-6b.d: Likewise. - * testsuite/ld-x86-64/pr19609-7b.d: Likewise. - * testsuite/ld-x86-64/pr19609-7d.d: Likewise. - * testsuite/ld-x86-64/pr19636-2l.d: Likewise. - * testsuite/ld-x86-64/pr20253-1d.d: Likewise. - * testsuite/ld-x86-64/pr20253-1h.d: Likewise. - * testsuite/ld-x86-64/pr21038b-now.d: Likewise. - * testsuite/ld-x86-64/pr21038b.d: Likewise. - * testsuite/ld-x86-64/pr21038c-now.d: Likewise. - * testsuite/ld-x86-64/pr21038c.d: Likewise. - * testsuite/ld-x86-64/pr23854.d: Likewise. - * testsuite/ld-x86-64/pr25416-3.d: Likewise. - * testsuite/ld-x86-64/pr25416-4.d: Likewise. - * testsuite/ld-i386/plt-pic.pd: Likewise. - * testsuite/ld-i386/plt-pic2.dd: Likewise. - * testsuite/ld-i386/plt.pd: Likewise. - * testsuite/ld-i386/plt2.dd: Likewise. - * testsuite/ld-i386/tlsbin.rd: Likewise. - * testsuite/ld-i386/tlsbin2.rd: Likewise. - * testsuite/ld-i386/tlsbindesc.rd: Likewise. - * testsuite/ld-i386/tlsdesc.rd: Likewise. - * testsuite/ld-i386/tlsgdesc.rd: Likewise. - * testsuite/ld-i386/tlsnopic.rd: Likewise. - * testsuite/ld-i386/tlspic.rd: Likewise. - * testsuite/ld-i386/tlspic2.rd: Likewise. - * testsuite/ld-x86-64/mpx3.dd: Likewise. - * testsuite/ld-x86-64/mpx3n.dd: Likewise. - * testsuite/ld-x86-64/mpx4.dd: Likewise. - * testsuite/ld-x86-64/mpx4n.dd: Likewise. - * testsuite/ld-x86-64/pe-x86-64-1.od: Likewise. - * testsuite/ld-x86-64/pe-x86-64-2.od: Likewise. - * testsuite/ld-x86-64/pe-x86-64-3.od: Likewise. - * testsuite/ld-x86-64/pe-x86-64-4.od: Likewise. - * testsuite/ld-x86-64/plt.pd: Likewise. - * testsuite/ld-x86-64/plt2.dd: Likewise. - * testsuite/ld-x86-64/tlsbin.rd: Likewise. - * testsuite/ld-x86-64/tlsbin2.rd: Likewise. - * testsuite/ld-x86-64/tlsbindesc.rd: Likewise. - * testsuite/ld-x86-64/tlsdesc.rd: Likewise. - * testsuite/ld-x86-64/tlsgdesc.rd: Likewise. - * testsuite/ld-x86-64/tlspic.rd: Likewise. - * testsuite/ld-x86-64/tlspic2.rd: Likewise. - * testsuite/ld-elf/sec64k.exp: Check - is_elf_unused_section_symbols. ---- - bfd/ChangeLog | 76 ++++++++++++++++ - bfd/aix386-core.c | 1 + - bfd/aout-target.h | 1 + - bfd/bfd-in2.h | 17 ++++ - bfd/binary.c | 1 + - bfd/cisco-core.c | 2 + - bfd/coff-alpha.c | 1 + - bfd/coff-i386.c | 4 +- - bfd/coff-ia64.c | 1 + - bfd/coff-mips.c | 3 + - bfd/coff-rs6000.c | 2 + - bfd/coff-sh.c | 2 + - bfd/coff-tic30.c | 1 + - bfd/coff-tic54x.c | 26 ++++++ - bfd/coff-x86_64.c | 2 + - bfd/coff64-rs6000.c | 2 + - bfd/coffcode.h | 3 + - bfd/elf.c | 15 +++- - bfd/elfcode.h | 8 +- - bfd/elflink.c | 61 +++++++------ - bfd/elfxx-target.h | 6 ++ - bfd/elfxx-x86.h | 3 + - bfd/hppabsd-core.c | 1 + - bfd/hpux-core.c | 1 + - bfd/i386msdos.c | 1 + - bfd/ihex.c | 1 + - bfd/irix-core.c | 1 + - bfd/mach-o-target.c | 1 + - bfd/mmo.c | 1 + - bfd/netbsd-core.c | 1 + - bfd/osf-core.c | 1 + - bfd/pdp11.c | 1 + - bfd/pef.c | 2 + - bfd/plugin.c | 1 + - bfd/ppcboot.c | 1 + - bfd/ptrace-core.c | 1 + - bfd/sco5-core.c | 1 + - bfd/som.c | 1 + - bfd/srec.c | 2 + - bfd/syms.c | 3 + - bfd/targets.c | 14 +++ - bfd/tekhex.c | 1 + - bfd/trad-core.c | 1 + - bfd/verilog.c | 1 + - bfd/vms-alpha.c | 1 + - bfd/vms-lib.c | 1 + - bfd/wasm-module.c | 1 + - bfd/xsym.c | 1 + - binutils/ChangeLog | 16 ++++ - binutils/objcopy.c | 24 ++++++ - binutils/testsuite/binutils-all/readelf.exp | 6 +- - binutils/testsuite/binutils-all/readelf.s-64 | 2 +- - .../binutils-all/readelf.s-64-unused | 27 ++++++ - binutils/testsuite/binutils-all/readelf.ss | 5 +- - binutils/testsuite/binutils-all/readelf.ss-64 | 5 +- - .../binutils-all/readelf.ss-64-unused | 18 ++++ - .../testsuite/binutils-all/readelf.ss-unused | 20 +++++ - binutils/testsuite/lib/binutils-common.exp | 31 +++++++ - gas/ChangeLog | 33 +++++++ - gas/config/obj-elf.c | 3 + - gas/read.c | 3 + - gas/subsegs.c | 4 + - gas/testsuite/gas/cfi/cfi-label.d | 4 +- - gas/testsuite/gas/elf/elf.exp | 6 +- - gas/testsuite/gas/elf/section2.e | 7 -- - gas/testsuite/gas/elf/section2.e-unused | 8 ++ - gas/testsuite/gas/elf/symver.d | 4 - - gas/testsuite/gas/i386/ilp32/elf/symver.d | 4 - - gas/testsuite/gas/i386/ilp32/x86-64-size-1.d | 24 +++--- - gas/testsuite/gas/i386/ilp32/x86-64-size-3.d | 16 ++-- - gas/testsuite/gas/i386/ilp32/x86-64-size-5.d | 12 +-- - gas/testsuite/gas/i386/ilp32/x86-64-unwind.d | 6 +- - gas/testsuite/gas/i386/size-1.d | 24 +++--- - gas/testsuite/gas/i386/size-3.d | 16 ++-- - gas/testsuite/gas/i386/svr4.d | 3 - - gas/testsuite/gas/i386/x86-64-size-1.d | 24 +++--- - gas/testsuite/gas/i386/x86-64-size-3.d | 16 ++-- - gas/testsuite/gas/i386/x86-64-size-5.d | 12 +-- - gas/testsuite/gas/i386/x86-64-unwind.d | 10 +-- - gas/write.c | 43 +++++++--- - ld/ChangeLog | 86 +++++++++++++++++++ - ld/testsuite/ld-elf/export-class.sd | 2 - - ld/testsuite/ld-elf/loadaddr3b.d | 3 - - ld/testsuite/ld-elf/sec64k.exp | 14 +-- - ld/testsuite/ld-i386/ibt-plt-1.d | 4 +- - ld/testsuite/ld-i386/ibt-plt-2a.d | 4 +- - ld/testsuite/ld-i386/ibt-plt-2c.d | 4 +- - ld/testsuite/ld-i386/ibt-plt-3a.d | 4 +- - ld/testsuite/ld-i386/ibt-plt-3c.d | 4 +- - ld/testsuite/ld-i386/plt-pic.pd | 6 +- - ld/testsuite/ld-i386/plt-pic2.dd | 6 +- - ld/testsuite/ld-i386/plt.pd | 6 +- - ld/testsuite/ld-i386/plt2.dd | 6 +- - ld/testsuite/ld-i386/pr19636-1d.d | 2 +- - ld/testsuite/ld-i386/pr19636-1l.d | 2 +- - ld/testsuite/ld-i386/pr19636-2c.d | 2 +- - ld/testsuite/ld-i386/tlsbin.rd | 13 --- - ld/testsuite/ld-i386/tlsbin2.rd | 11 --- - ld/testsuite/ld-i386/tlsbindesc.rd | 11 --- - ld/testsuite/ld-i386/tlsdesc.rd | 11 --- - ld/testsuite/ld-i386/tlsgdesc.rd | 10 --- - ld/testsuite/ld-i386/tlsnopic.rd | 9 -- - ld/testsuite/ld-i386/tlspic.rd | 12 --- - ld/testsuite/ld-i386/tlspic2.rd | 10 --- - ld/testsuite/ld-ifunc/ifunc-2-i386-now.d | 4 +- - .../ld-ifunc/ifunc-2-local-i386-now.d | 4 +- - .../ld-ifunc/ifunc-2-local-x86-64-now.d | 4 +- - ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d | 4 +- - ld/testsuite/ld-ifunc/ifunc-21-x86-64.d | 10 +-- - ld/testsuite/ld-ifunc/ifunc-22-x86-64.d | 10 +-- - ld/testsuite/ld-ifunc/pr17154-i386-now.d | 10 +-- - ld/testsuite/ld-ifunc/pr17154-i386.d | 8 +- - ld/testsuite/ld-ifunc/pr17154-x86-64-now.d | 10 +-- - ld/testsuite/ld-ifunc/pr17154-x86-64.d | 8 +- - ld/testsuite/ld-x86-64/bnd-branch-1-now.d | 10 +-- - ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d | 2 +- - ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d | 8 +- - ld/testsuite/ld-x86-64/bnd-ifunc-2.d | 8 +- - ld/testsuite/ld-x86-64/bnd-plt-1-now.d | 8 +- - ld/testsuite/ld-x86-64/bnd-plt-1.d | 8 +- - ld/testsuite/ld-x86-64/ibt-plt-1-x32.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-1.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-2a.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-2c.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-3a.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d | 4 +- - ld/testsuite/ld-x86-64/ibt-plt-3c.d | 4 +- - ld/testsuite/ld-x86-64/mpx3.dd | 2 +- - ld/testsuite/ld-x86-64/mpx3n.dd | 2 +- - ld/testsuite/ld-x86-64/mpx4.dd | 2 +- - ld/testsuite/ld-x86-64/mpx4n.dd | 2 +- - ld/testsuite/ld-x86-64/pe-x86-64-1.od | 5 -- - ld/testsuite/ld-x86-64/pe-x86-64-2.od | 5 -- - ld/testsuite/ld-x86-64/pe-x86-64-3.od | 5 -- - ld/testsuite/ld-x86-64/pe-x86-64-4.od | 6 -- - ld/testsuite/ld-x86-64/plt.pd | 6 +- - ld/testsuite/ld-x86-64/plt2.dd | 6 +- - ld/testsuite/ld-x86-64/pr19609-4e.d | 4 +- - ld/testsuite/ld-x86-64/pr19609-6a.d | 2 +- - ld/testsuite/ld-x86-64/pr19609-6b.d | 2 +- - ld/testsuite/ld-x86-64/pr19609-7b.d | 2 +- - ld/testsuite/ld-x86-64/pr19609-7d.d | 2 +- - ld/testsuite/ld-x86-64/pr19636-2l.d | 6 +- - ld/testsuite/ld-x86-64/pr20253-1d.d | 12 +-- - ld/testsuite/ld-x86-64/pr20253-1h.d | 12 +-- - ld/testsuite/ld-x86-64/pr21038b-now.d | 2 +- - ld/testsuite/ld-x86-64/pr21038b.d | 2 +- - ld/testsuite/ld-x86-64/pr21038c-now.d | 2 +- - ld/testsuite/ld-x86-64/pr21038c.d | 2 +- - ld/testsuite/ld-x86-64/pr23854.d | 36 ++++---- - ld/testsuite/ld-x86-64/pr25416-3.d | 4 +- - ld/testsuite/ld-x86-64/pr25416-4.d | 4 +- - ld/testsuite/ld-x86-64/tlsbin.rd | 13 --- - ld/testsuite/ld-x86-64/tlsbin2.rd | 11 --- - ld/testsuite/ld-x86-64/tlsbindesc.rd | 11 --- - ld/testsuite/ld-x86-64/tlsdesc.rd | 12 --- - ld/testsuite/ld-x86-64/tlsgdesc.rd | 10 --- - ld/testsuite/ld-x86-64/tlspic.rd | 12 --- - ld/testsuite/ld-x86-64/tlspic2.rd | 12 --- - 162 files changed, 809 insertions(+), 522 deletions(-) - create mode 100644 binutils/testsuite/binutils-all/readelf.s-64-unused - create mode 100644 binutils/testsuite/binutils-all/readelf.ss-64-unused - create mode 100644 binutils/testsuite/binutils-all/readelf.ss-unused - create mode 100644 gas/testsuite/gas/elf/section2.e-unused - -diff --git a/bfd/aix386-core.c b/bfd/aix386-core.c -index d641b81031..68cd642952 100644 ---- a/bfd/aix386-core.c -+++ b/bfd/aix386-core.c -@@ -239,6 +239,7 @@ const bfd_target core_aix386_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, - NO_GET, NO_GETS, NO_PUT, - NO_GET, NO_GETS, NO_PUT, /* data */ -diff --git a/bfd/aout-target.h b/bfd/aout-target.h -index 8c27bb1007..92fc3ed4dd 100644 ---- a/bfd/aout-target.h -+++ b/bfd/aout-target.h -@@ -660,6 +660,7 @@ const bfd_target MY (vec) = - AR_PAD_CHAR, /* AR_pad_char. */ - 15, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - #ifdef TARGET_IS_BIG_ENDIAN_P - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, -diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h -index 43ead185c1..7eff85b7ea 100644 ---- a/bfd/bfd-in2.h -+++ b/bfd/bfd-in2.h -@@ -6416,6 +6416,9 @@ typedef struct bfd_symbol - with this name and type in use. BSF_OBJECT must also be set. */ - #define BSF_GNU_UNIQUE (1 << 23) - -+ /* This section symbol should be included in the symbol table. */ -+#define BSF_SECTION_SYM_USED (1 << 24) -+ - flagword flags; - - /* A pointer to the section to which this symbol is -@@ -7291,6 +7294,11 @@ bfd_boolean generic_core_file_matches_executable_p - (bfd_assert (__FILE__,__LINE__), NULL)) - #endif - -+/* Defined to TRUE if unused section symbol should be kept. */ -+#ifndef TARGET_KEEP_UNUSED_SECTION_SYMBOLS -+#define TARGET_KEEP_UNUSED_SECTION_SYMBOLS TRUE -+#endif -+ - enum bfd_flavour - { - /* N.B. Update bfd_flavour_name if you change this. */ -@@ -7364,6 +7372,9 @@ typedef struct bfd_target - possible targets when more than one target matches. */ - unsigned char match_priority; - -+ /* TRUE if unused section symbols should be kept. */ -+ bfd_boolean keep_unused_section_symbols; -+ - /* Entries for byte swapping for data. These are different from the - other entry points, since they don't take a BFD as the first argument. - Certain other handlers could do the same. */ -@@ -7794,6 +7805,12 @@ bfd_asymbol_flavour (const asymbol *sy) - return sy->the_bfd->xvec->flavour; - } - -+static inline bfd_boolean -+bfd_keep_unused_section_symbols (const bfd *abfd) -+{ -+ return abfd->xvec->keep_unused_section_symbols; -+} -+ - bfd_boolean bfd_set_default_target (const char *name); - - const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); -diff --git a/bfd/binary.c b/bfd/binary.c -index db1bec02b6..942c66bbd6 100644 ---- a/bfd/binary.c -+++ b/bfd/binary.c -@@ -335,6 +335,7 @@ const bfd_target binary_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 255, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */ -diff --git a/bfd/cisco-core.c b/bfd/cisco-core.c -index 1b77829c15..c0e68ade48 100644 ---- a/bfd/cisco-core.c -+++ b/bfd/cisco-core.c -@@ -329,6 +329,7 @@ const bfd_target core_cisco_be_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */ -@@ -384,6 +385,7 @@ const bfd_target core_cisco_le_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match_priority */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c -index 50b2f973a5..db26587fea 100644 ---- a/bfd/coff-alpha.c -+++ b/bfd/coff-alpha.c -@@ -2427,6 +2427,7 @@ const bfd_target alpha_ecoff_le_vec = - ' ', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c -index 5048df9daf..e02519564d 100644 ---- a/bfd/coff-i386.c -+++ b/bfd/coff-i386.c -@@ -651,6 +651,7 @@ const bfd_target - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, -@@ -729,6 +730,7 @@ const bfd_target - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, -@@ -772,4 +774,4 @@ const bfd_target - - &bigobj_swap_table - }; --#endif -\ No newline at end of file -+#endif -diff --git a/bfd/coff-ia64.c b/bfd/coff-ia64.c -index 24a4a7c133..887c7aae77 100644 ---- a/bfd/coff-ia64.c -+++ b/bfd/coff-ia64.c -@@ -170,6 +170,7 @@ const bfd_target - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, -diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c -index 38376b23d7..d20f4b4659 100644 ---- a/bfd/coff-mips.c -+++ b/bfd/coff-mips.c -@@ -1446,6 +1446,7 @@ const bfd_target mips_ecoff_le_vec = - ' ', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -@@ -1504,6 +1505,7 @@ const bfd_target mips_ecoff_be_vec = - ' ', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, -@@ -1562,6 +1564,7 @@ const bfd_target mips_ecoff_bele_vec = - ' ', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c -index a71791e3f9..fbc1aed311 100644 ---- a/bfd/coff-rs6000.c -+++ b/bfd/coff-rs6000.c -@@ -4201,6 +4201,7 @@ const bfd_target rs6000_xcoff_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - /* data */ - bfd_getb64, -@@ -4382,6 +4383,7 @@ const bfd_target powerpc_xcoff_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - /* data */ - bfd_getb64, -diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c -index 99541a76e0..04ef99b777 100644 ---- a/bfd/coff-sh.c -+++ b/bfd/coff-sh.c -@@ -3134,6 +3134,7 @@ const bfd_target sh_coff_small_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */ -@@ -3191,6 +3192,7 @@ const bfd_target sh_coff_small_le_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -diff --git a/bfd/coff-tic30.c b/bfd/coff-tic30.c -index f3e7df0a3d..f4d3a13ef4 100644 ---- a/bfd/coff-tic30.c -+++ b/bfd/coff-tic30.c -@@ -192,6 +192,7 @@ const bfd_target tic30_coff_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */ -diff --git a/bfd/coff-tic54x.c b/bfd/coff-tic54x.c -index 914bb2a390..3c18221d24 100644 ---- a/bfd/coff-tic54x.c -+++ b/bfd/coff-tic54x.c -@@ -415,6 +415,7 @@ const bfd_target tic54x_coff0_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - tic54x_getl32, tic54x_getl_signed_32, tic54x_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -@@ -472,6 +473,11 @@ const bfd_target tic54x_coff0_beh_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+#ifdef TARGET_KEEP_UNUSED_SECTION_SYMBOLS -+ TRUE, /* keep unused section symbols. */ -+#else -+ FALSE, /* keep unused section symbols. */ -+#endif - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - tic54x_getl32, tic54x_getl_signed_32, tic54x_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -@@ -530,6 +536,11 @@ const bfd_target tic54x_coff1_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+#ifdef TARGET_KEEP_UNUSED_SECTION_SYMBOLS -+ TRUE, /* keep unused section symbols. */ -+#else -+ FALSE, /* keep unused section symbols. */ -+#endif - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - tic54x_getl32, tic54x_getl_signed_32, tic54x_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -@@ -588,6 +599,11 @@ const bfd_target tic54x_coff1_beh_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+#ifdef TARGET_KEEP_UNUSED_SECTION_SYMBOLS -+ TRUE, /* keep unused section symbols. */ -+#else -+ FALSE, /* keep unused section symbols. */ -+#endif - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - tic54x_getl32, tic54x_getl_signed_32, tic54x_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -@@ -646,6 +662,11 @@ const bfd_target tic54x_coff2_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+#ifdef TARGET_KEEP_UNUSED_SECTION_SYMBOLS -+ TRUE, /* keep unused section symbols. */ -+#else -+ FALSE, /* keep unused section symbols. */ -+#endif - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - tic54x_getl32, tic54x_getl_signed_32, tic54x_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -@@ -704,6 +725,11 @@ const bfd_target tic54x_coff2_beh_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+#ifdef TARGET_KEEP_UNUSED_SECTION_SYMBOLS -+ TRUE, /* keep unused section symbols. */ -+#else -+ FALSE, /* keep unused section symbols. */ -+#endif - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - tic54x_getl32, tic54x_getl_signed_32, tic54x_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -diff --git a/bfd/coff-x86_64.c b/bfd/coff-x86_64.c -index 0279ce23c8..adab60cd11 100644 ---- a/bfd/coff-x86_64.c -+++ b/bfd/coff-x86_64.c -@@ -782,6 +782,7 @@ const bfd_target - '/', /* Ar_pad_char. */ - 15, /* Ar_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, -@@ -854,6 +855,7 @@ const bfd_target - '/', /* Ar_pad_char. */ - 15, /* Ar_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, -diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c -index a3b17020c1..9aa0304ec9 100644 ---- a/bfd/coff64-rs6000.c -+++ b/bfd/coff64-rs6000.c -@@ -2665,6 +2665,7 @@ const bfd_target rs6000_xcoff64_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - /* data */ - bfd_getb64, -@@ -2928,6 +2929,7 @@ const bfd_target rs6000_xcoff64_aix_vec = - '/', /* ar_pad_char */ - 15, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - /* data */ - bfd_getb64, -diff --git a/bfd/coffcode.h b/bfd/coffcode.h -index 21820da453..2fd699ff1b 100644 ---- a/bfd/coffcode.h -+++ b/bfd/coffcode.h -@@ -5820,6 +5820,7 @@ const bfd_target VAR = \ - '/', /* AR_pad_char. */ \ - 15, /* AR_max_namelen. */ \ - 0, /* match priority. */ \ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ \ - \ - /* Data conversion functions. */ \ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, \ -@@ -5881,6 +5882,7 @@ const bfd_target VAR = \ - '/', /* AR_pad_char. */ \ - 15, /* AR_max_namelen. */ \ - 0, /* match priority. */ \ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ \ - \ - /* Data conversion functions. */ \ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, \ -@@ -5942,6 +5944,7 @@ const bfd_target VAR = \ - '/', /* AR_pad_char. */ \ - 15, /* AR_max_namelen. */ \ - 0, /* match priority. */ \ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ \ - \ - /* Data conversion functions. */ \ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, \ -diff --git a/bfd/elf.c b/bfd/elf.c -index 3f4ccd2055..ab19bdb453 100644 ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -4061,6 +4061,10 @@ ignore_section_sym (bfd *abfd, asymbol *sym) - if ((sym->flags & BSF_SECTION_SYM) == 0) - return FALSE; - -+ /* Ignore the section symbol if it isn't used. */ -+ if ((sym->flags & BSF_SECTION_SYM_USED) == 0) -+ return TRUE; -+ - if (sym->section == NULL) - return TRUE; - -@@ -4148,7 +4152,10 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals) - at least in that case. */ - for (asect = abfd->sections; asect; asect = asect->next) - { -- if (sect_syms[asect->index] == NULL) -+ asymbol *sym = asect->symbol; -+ /* Don't include ignored section symbols. */ -+ if (!ignore_section_sym (abfd, sym) -+ && sect_syms[asect->index] == NULL) - { - if (!sym_is_global (abfd, asect->symbol)) - num_locals++; -@@ -4170,6 +4177,7 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals) - - if (sym_is_global (abfd, sym)) - i = num_locals + num_globals2++; -+ /* Don't include ignored section symbols. */ - else if (!ignore_section_sym (abfd, sym)) - i = num_locals2++; - else -@@ -4179,9 +4187,10 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals) - } - for (asect = abfd->sections; asect; asect = asect->next) - { -- if (sect_syms[asect->index] == NULL) -+ asymbol *sym = asect->symbol; -+ if (!ignore_section_sym (abfd, sym) -+ && sect_syms[asect->index] == NULL) - { -- asymbol *sym = asect->symbol; - unsigned int i; - - sect_syms[asect->index] = sym; -diff --git a/bfd/elfcode.h b/bfd/elfcode.h -index b40fb4a1f5..4e99fcc6b9 100644 ---- a/bfd/elfcode.h -+++ b/bfd/elfcode.h -@@ -1347,7 +1347,13 @@ elf_slurp_symbol_table (bfd *abfd, asymbol **symptrs, bfd_boolean dynamic) - switch (ELF_ST_TYPE (isym->st_info)) - { - case STT_SECTION: -- sym->symbol.flags |= BSF_SECTION_SYM | BSF_DEBUGGING; -+ /* Mark the input section symbol as used since it may be -+ used for relocation and section group. -+ NB: BSF_SECTION_SYM_USED is ignored by linker and may -+ be cleared by objcopy for non-relocatable inputs. */ -+ sym->symbol.flags |= (BSF_SECTION_SYM -+ | BSF_DEBUGGING -+ | BSF_SECTION_SYM_USED); - break; - case STT_FILE: - sym->symbol.flags |= BSF_FILE | BSF_DEBUGGING; -diff --git a/bfd/elflink.c b/bfd/elflink.c -index 4c54b1a159..a7c952b6fc 100644 ---- a/bfd/elflink.c -+++ b/bfd/elflink.c -@@ -12527,9 +12527,6 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) - - if (info->strip != strip_all || emit_relocs) - { -- bfd_boolean name_local_sections; -- const char *name; -- - file_ptr off = elf_next_file_pos (abfd); - - _bfd_elf_assign_file_position_for_section (symtab_hdr, off, TRUE); -@@ -12550,36 +12547,38 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) - bfd_und_section_ptr, NULL) != 1) - goto error_return; - -- /* Output a symbol for each section. We output these even if we are -- discarding local symbols, since they are used for relocs. These -- symbols usually have no names. We store the index of each one in -- the index field of the section, so that we can find it again when -- outputting relocs. */ -+ /* Output a symbol for each section if asked or they are used for -+ relocs. These symbols usually have no names. We store the -+ index of each one in the index field of the section, so that -+ we can find it again when outputting relocs. */ - -- name_local_sections -- = (bed->elf_backend_name_local_section_symbols -- && bed->elf_backend_name_local_section_symbols (abfd)); -+ if (bfd_keep_unused_section_symbols (abfd) || emit_relocs) -+ { -+ bfd_boolean name_local_sections -+ = (bed->elf_backend_name_local_section_symbols -+ && bed->elf_backend_name_local_section_symbols (abfd)); -+ const char *name = NULL; - -- name = NULL; -- elfsym.st_size = 0; -- elfsym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION); -- elfsym.st_other = 0; -- elfsym.st_value = 0; -- elfsym.st_target_internal = 0; -- for (i = 1; i < elf_numsections (abfd); i++) -- { -- o = bfd_section_from_elf_index (abfd, i); -- if (o != NULL) -- { -- o->target_index = bfd_get_symcount (abfd); -- elfsym.st_shndx = i; -- if (!bfd_link_relocatable (info)) -- elfsym.st_value = o->vma; -- if (name_local_sections) -- name = o->name; -- if (elf_link_output_symstrtab (&flinfo, name, &elfsym, o, -- NULL) != 1) -- goto error_return; -+ elfsym.st_size = 0; -+ elfsym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION); -+ elfsym.st_other = 0; -+ elfsym.st_value = 0; -+ elfsym.st_target_internal = 0; -+ for (i = 1; i < elf_numsections (abfd); i++) -+ { -+ o = bfd_section_from_elf_index (abfd, i); -+ if (o != NULL) -+ { -+ o->target_index = bfd_get_symcount (abfd); -+ elfsym.st_shndx = i; -+ if (!bfd_link_relocatable (info)) -+ elfsym.st_value = o->vma; -+ if (name_local_sections) -+ name = o->name; -+ if (elf_link_output_symstrtab (&flinfo, name, &elfsym, o, -+ NULL) != 1) -+ goto error_return; -+ } - } - } - } -diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h -index cae1fbf0bb..c930b767bf 100644 ---- a/bfd/elfxx-target.h -+++ b/bfd/elfxx-target.h -@@ -1007,6 +1007,9 @@ const bfd_target TARGET_BIG_SYM = - - elf_match_priority, - -+ /* TRUE if unused section symbols should be kept. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, -+ - /* Routines to byte-swap various sized integers from the data sections */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, -@@ -1108,6 +1111,9 @@ const bfd_target TARGET_LITTLE_SYM = - - elf_match_priority, - -+ /* TRUE if unused section symbols should be kept. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, -+ - /* Routines to byte-swap various sized integers from the data sections */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, -diff --git a/bfd/elfxx-x86.h b/bfd/elfxx-x86.h -index cc8149d06b..e11e06bdad 100644 ---- a/bfd/elfxx-x86.h -+++ b/bfd/elfxx-x86.h -@@ -18,6 +18,9 @@ - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -+/* Don't generate unused section symbols. */ -+#define TARGET_KEEP_UNUSED_SECTION_SYMBOLS FALSE -+ - #include "sysdep.h" - #include "bfd.h" - #include "bfdlink.h" -diff --git a/bfd/hppabsd-core.c b/bfd/hppabsd-core.c -index d2c8a94b94..c36e467ae1 100644 ---- a/bfd/hppabsd-core.c -+++ b/bfd/hppabsd-core.c -@@ -230,6 +230,7 @@ const bfd_target core_hppabsd_vec = - 0, /* symbol prefix */ - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, /* 64 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 32 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 16 bit data */ -diff --git a/bfd/hpux-core.c b/bfd/hpux-core.c -index 42f84247d8..03d0de3382 100644 ---- a/bfd/hpux-core.c -+++ b/bfd/hpux-core.c -@@ -392,6 +392,7 @@ const bfd_target core_hpux_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, /* 64 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 32 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 16 bit data */ -diff --git a/bfd/i386msdos.c b/bfd/i386msdos.c -index 526561e3ae..6254b2aa2e 100644 ---- a/bfd/i386msdos.c -+++ b/bfd/i386msdos.c -@@ -279,6 +279,7 @@ const bfd_target i386_msdos_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* data */ -diff --git a/bfd/ihex.c b/bfd/ihex.c -index 65431025ea..13dd106817 100644 ---- a/bfd/ihex.c -+++ b/bfd/ihex.c -@@ -981,6 +981,7 @@ const bfd_target ihex_vec = - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -diff --git a/bfd/irix-core.c b/bfd/irix-core.c -index d00f4917c1..e4fb622d69 100644 ---- a/bfd/irix-core.c -+++ b/bfd/irix-core.c -@@ -293,6 +293,7 @@ const bfd_target core_irix_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match_priority */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, /* 64 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 32 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 16 bit data */ -diff --git a/bfd/mach-o-target.c b/bfd/mach-o-target.c -index 993c9747b5..3b45433653 100644 ---- a/bfd/mach-o-target.c -+++ b/bfd/mach-o-target.c -@@ -136,6 +136,7 @@ const bfd_target TARGET_NAME = - ' ', /* ar_pad_char. */ - 16, /* ar_max_namelen. */ - TARGET_PRIORITY, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - #if TARGET_BIG_ENDIAN - bfd_getb64, bfd_getb_signed_64, bfd_putb64, -diff --git a/bfd/mmo.c b/bfd/mmo.c -index a31ddef81e..4ba62d0bc6 100644 ---- a/bfd/mmo.c -+++ b/bfd/mmo.c -@@ -3344,6 +3344,7 @@ const bfd_target mmix_mmo_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */ -diff --git a/bfd/netbsd-core.c b/bfd/netbsd-core.c -index a1f88207b1..60fa69d142 100644 ---- a/bfd/netbsd-core.c -+++ b/bfd/netbsd-core.c -@@ -276,6 +276,7 @@ const bfd_target core_netbsd_vec = - ' ', /* ar_pad_char. */ - 16, /* ar_max_namelen. */ - 0, /* Match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, /* 64 bit data. */ - NO_GET, NO_GETS, NO_PUT, /* 32 bit data. */ - NO_GET, NO_GETS, NO_PUT, /* 16 bit data. */ -diff --git a/bfd/osf-core.c b/bfd/osf-core.c -index f91b2aac14..17cc532396 100644 ---- a/bfd/osf-core.c -+++ b/bfd/osf-core.c -@@ -187,6 +187,7 @@ const bfd_target core_osf_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, /* 64 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 32 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 16 bit data */ -diff --git a/bfd/pdp11.c b/bfd/pdp11.c -index 914dcaa5de..8992f4e543 100644 ---- a/bfd/pdp11.c -+++ b/bfd/pdp11.c -@@ -4689,6 +4689,7 @@ const bfd_target MY (vec) = - AR_PAD_CHAR, /* AR_pad_char. */ - 15, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getp32, bfd_getp_signed_32, bfd_putp32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* Data. */ -diff --git a/bfd/pef.c b/bfd/pef.c -index 85030e5463..93bc933eec 100644 ---- a/bfd/pef.c -+++ b/bfd/pef.c -@@ -1015,6 +1015,7 @@ const bfd_target pef_vec = - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -@@ -1159,6 +1160,7 @@ const bfd_target pef_xlib_vec = - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -diff --git a/bfd/plugin.c b/bfd/plugin.c -index d733f6afdf..d1767b0134 100644 ---- a/bfd/plugin.c -+++ b/bfd/plugin.c -@@ -719,6 +719,7 @@ const bfd_target plugin_vec = - '/', /* ar_pad_char. */ - 15, /* ar_max_namelen. */ - 255, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, -diff --git a/bfd/ppcboot.c b/bfd/ppcboot.c -index e3ade1cdf0..5cdd7adbbd 100644 ---- a/bfd/ppcboot.c -+++ b/bfd/ppcboot.c -@@ -495,6 +495,7 @@ const bfd_target powerpc_boot_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */ -diff --git a/bfd/ptrace-core.c b/bfd/ptrace-core.c -index 7cf47af10b..d21a61ce3f 100644 ---- a/bfd/ptrace-core.c -+++ b/bfd/ptrace-core.c -@@ -177,6 +177,7 @@ const bfd_target core_ptrace_vec = - 0, /* symbol prefix */ - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, /* 64 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 32 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 16 bit data */ -diff --git a/bfd/sco5-core.c b/bfd/sco5-core.c -index c543c38be1..167dba9f32 100644 ---- a/bfd/sco5-core.c -+++ b/bfd/sco5-core.c -@@ -358,6 +358,7 @@ const bfd_target core_sco5_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, /* 64 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 32 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 16 bit data */ -diff --git a/bfd/som.c b/bfd/som.c -index 5897ae6c5b..872e93341d 100644 ---- a/bfd/som.c -+++ b/bfd/som.c -@@ -6859,6 +6859,7 @@ const bfd_target hppa_som_vec = - '/', /* AR_pad_char. */ - 14, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -diff --git a/bfd/srec.c b/bfd/srec.c -index e21d7f8b80..92faf3dc82 100644 ---- a/bfd/srec.c -+++ b/bfd/srec.c -@@ -1295,6 +1295,7 @@ const bfd_target srec_vec = - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -@@ -1351,6 +1352,7 @@ const bfd_target symbolsrec_vec = - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -diff --git a/bfd/syms.c b/bfd/syms.c -index 9559ab4580..10ea8bd7b8 100644 ---- a/bfd/syms.c -+++ b/bfd/syms.c -@@ -307,6 +307,9 @@ CODE_FRAGMENT - . with this name and type in use. BSF_OBJECT must also be set. *} - .#define BSF_GNU_UNIQUE (1 << 23) - . -+. {* This section symbol should be included in the symbol table. *} -+.#define BSF_SECTION_SYM_USED (1 << 24) -+. - . flagword flags; - . - . {* A pointer to the section to which this symbol is -diff --git a/bfd/targets.c b/bfd/targets.c -index 8086f03e46..076441b3a2 100644 ---- a/bfd/targets.c -+++ b/bfd/targets.c -@@ -132,6 +132,11 @@ DESCRIPTION - . (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \ - . (bfd_assert (__FILE__,__LINE__), NULL)) - .#endif -+. -+.{* Defined to TRUE if unused section symbol should be kept. *} -+.#ifndef TARGET_KEEP_UNUSED_SECTION_SYMBOLS -+.#define TARGET_KEEP_UNUSED_SECTION_SYMBOLS TRUE -+.#endif - . - This is the structure which defines the type of BFD this is. The - <<xvec>> member of the struct <<bfd>> itself points here. Each -@@ -215,6 +220,9 @@ DESCRIPTION - . possible targets when more than one target matches. *} - . unsigned char match_priority; - . -+. {* TRUE if unused section symbols should be kept. *} -+. bfd_boolean keep_unused_section_symbols; -+. - . {* Entries for byte swapping for data. These are different from the - . other entry points, since they don't take a BFD as the first argument. - . Certain other handlers could do the same. *} -@@ -655,6 +663,12 @@ to find an alternative output format that is suitable. - . return sy->the_bfd->xvec->flavour; - .} - . -+.static inline bfd_boolean -+.bfd_keep_unused_section_symbols (const bfd *abfd) -+.{ -+. return abfd->xvec->keep_unused_section_symbols; -+.} -+. - */ - - /* All known xvecs (even those that don't compile on all systems). -diff --git a/bfd/tekhex.c b/bfd/tekhex.c -index 99d54dbdb8..6599a4f3f4 100644 ---- a/bfd/tekhex.c -+++ b/bfd/tekhex.c -@@ -1008,6 +1008,7 @@ const bfd_target tekhex_vec = - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -diff --git a/bfd/trad-core.c b/bfd/trad-core.c -index 1a4dbe6bf8..14627cb72e 100644 ---- a/bfd/trad-core.c -+++ b/bfd/trad-core.c -@@ -279,6 +279,7 @@ const bfd_target core_trad_vec = - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - NO_GET64, NO_GETS64, NO_PUT64, /* 64 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 32 bit data */ - NO_GET, NO_GETS, NO_PUT, /* 16 bit data */ -diff --git a/bfd/verilog.c b/bfd/verilog.c -index a54f6b04eb..94a9cc8045 100644 ---- a/bfd/verilog.c -+++ b/bfd/verilog.c -@@ -405,6 +405,7 @@ const bfd_target verilog_vec = - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c -index 72d89e518f..94001cc3bf 100644 ---- a/bfd/vms-alpha.c -+++ b/bfd/vms-alpha.c -@@ -9792,6 +9792,7 @@ const bfd_target alpha_vms_vec = - ' ', /* ar_pad_char. */ - 15, /* ar_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, -diff --git a/bfd/vms-lib.c b/bfd/vms-lib.c -index 3752b91139..eaac8af2a2 100644 ---- a/bfd/vms-lib.c -+++ b/bfd/vms-lib.c -@@ -2403,6 +2403,7 @@ const bfd_target alpha_vms_lib_txt_vec = - ' ', /* ar_pad_char. */ - 15, /* ar_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, - bfd_getl16, bfd_getl_signed_16, bfd_putl16, -diff --git a/bfd/wasm-module.c b/bfd/wasm-module.c -index 1fde4a57ab..dc135645f4 100644 ---- a/bfd/wasm-module.c -+++ b/bfd/wasm-module.c -@@ -794,6 +794,7 @@ const bfd_target wasm_vec = - ' ', /* AR_pad_char. */ - 255, /* AR_max_namelen. */ - 0, /* Match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - /* Routines to byte-swap various sized integers from the data sections. */ - bfd_getl64, bfd_getl_signed_64, bfd_putl64, - bfd_getl32, bfd_getl_signed_32, bfd_putl32, -diff --git a/bfd/xsym.c b/bfd/xsym.c -index ea26603141..e9283f63ad 100644 ---- a/bfd/xsym.c -+++ b/bfd/xsym.c -@@ -2298,6 +2298,7 @@ const bfd_target sym_vec = - ' ', /* AR_pad_char. */ - 16, /* AR_max_namelen. */ - 0, /* match priority. */ -+ TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ - bfd_getb64, bfd_getb_signed_64, bfd_putb64, - bfd_getb32, bfd_getb_signed_32, bfd_putb32, - bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* Data. */ -diff --git a/binutils/objcopy.c b/binutils/objcopy.c -index 560e7c648d..62ee22202f 100644 ---- a/binutils/objcopy.c -+++ b/binutils/objcopy.c -@@ -3204,6 +3204,30 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch) - if (convert_debugging) - dhandle = read_debugging_info (ibfd, isympp, symcount, FALSE); - -+ if ((obfd->flags & (EXEC_P | DYNAMIC)) != 0 -+ && (obfd->flags & HAS_RELOC) == 0) -+ { -+ if (bfd_keep_unused_section_symbols (obfd)) -+ { -+ /* Non-relocatable inputs may not have the unused section -+ symbols. Mark all section symbols as used to generate -+ section symbols. */ -+ asection *asect; -+ for (asect = obfd->sections; asect != NULL; asect = asect->next) -+ if (asect->symbol) -+ asect->symbol->flags |= BSF_SECTION_SYM_USED; -+ } -+ else -+ { -+ /* Non-relocatable inputs may have the unused section symbols. -+ Mark all section symbols as unused to excluded them. */ -+ long s; -+ for (s = 0; s < symcount; s++) -+ if ((isympp[s]->flags & BSF_SECTION_SYM_USED)) -+ isympp[s]->flags &= ~BSF_SECTION_SYM_USED; -+ } -+ } -+ - if (strip_symbols == STRIP_DEBUG - || strip_symbols == STRIP_ALL - || strip_symbols == STRIP_UNNEEDED -diff --git a/binutils/testsuite/binutils-all/readelf.exp b/binutils/testsuite/binutils-all/readelf.exp -index 4834233ad3..51d26b762b 100644 ---- a/binutils/testsuite/binutils-all/readelf.exp -+++ b/binutils/testsuite/binutils-all/readelf.exp -@@ -100,7 +100,11 @@ proc readelf_test { options binary_file regexp_file xfails } { - return - } - -- set target_machine "" -+ if { [is_elf_unused_section_symbols ] } { -+ set target_machine unused -+ } else { -+ set target_machine "" -+ } - if [istarget "mips*-*-*"] then { - if [is_bad_symtab] then { - set target_machine mips -diff --git a/binutils/testsuite/binutils-all/readelf.s-64 b/binutils/testsuite/binutils-all/readelf.s-64 -index a1e6cd1bbd..5582d77c37 100644 ---- a/binutils/testsuite/binutils-all/readelf.s-64 -+++ b/binutils/testsuite/binutils-all/readelf.s-64 -@@ -18,7 +18,7 @@ Section Headers: - +\[ .\] .symtab +SYMTAB +0000000000000000 +0+.* - # aarch64-elf targets have one more data symbol. - # x86 targets may have .note.gnu.property. -- +0+.* +0000000000000018 +(6|7) +(6|7) +8 -+ +0+.* +0000000000000018 +(6|7) +(3|4) +8 - +\[ .\] .strtab +STRTAB +0000000000000000 +0+.* - +0+.* +0000000000000000 .* +0 +0 +1 - +\[ .\] .shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -diff --git a/binutils/testsuite/binutils-all/readelf.s-64-unused b/binutils/testsuite/binutils-all/readelf.s-64-unused -new file mode 100644 -index 0000000000..a1e6cd1bbd ---- /dev/null -+++ b/binutils/testsuite/binutils-all/readelf.s-64-unused -@@ -0,0 +1,27 @@ -+There are .* section headers, starting at offset .*: -+ -+Section Headers: -+ +\[Nr\] Name +Type +Address +Offset -+ +Size +EntSize +Flags +Link +Info +Align -+ +\[ 0\] +NULL +0000000000000000 +00000000 -+ +0000000000000000 +0000000000000000 +0 +0 +0 -+ +\[ 1\] .text +PROGBITS +0000000000000000 +00000040 -+ +00000000000000.. +0000000000000000 +AX +0 +0 +.* -+ +\[ 2\] .rel.+text +REL. +0+ +0+.* -+ +000000000000001. +000000000000001. +I +. +1 +8 -+ +\[ 3\] .data +PROGBITS +0000000000000000 +000000(48|50) -+ +000000000000000[48] +0000000000000000 +WA +0 +0 +.* -+ +\[ 4\] .bss +NOBITS +0000000000000000 +000000(4c|50|54|58) -+ +0000000000000000 +0000000000000000 +WA +0 +0 +.* -+# x86 targets may put .note.gnu.property here. -+#... -+ +\[ .\] .symtab +SYMTAB +0000000000000000 +0+.* -+# aarch64-elf targets have one more data symbol. -+# x86 targets may have .note.gnu.property. -+ +0+.* +0000000000000018 +(6|7) +(6|7) +8 -+ +\[ .\] .strtab +STRTAB +0000000000000000 +0+.* -+ +0+.* +0000000000000000 .* +0 +0 +1 -+ +\[ .\] .shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ -+ +00000000000000.. +0000000000000000 .* +0 +0 +.* -+Key to Flags: -+#... -diff --git a/binutils/testsuite/binutils-all/readelf.ss b/binutils/testsuite/binutils-all/readelf.ss -index acc6d9390c..5fbb5d002e 100644 ---- a/binutils/testsuite/binutils-all/readelf.ss -+++ b/binutils/testsuite/binutils-all/readelf.ss -@@ -2,10 +2,7 @@ - Symbol table '.symtab' contains .* entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +0: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +UND -- +1: 00000000 +0 +SECTION +LOCAL +DEFAULT +1 -- +2: 00000000 +0 +SECTION +LOCAL +DEFAULT +[34] -- +3: 00000000 +0 +SECTION +LOCAL +DEFAULT +[45] -- +4: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol -+ +1: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol - # ARM targets add the $d mapping symbol here... - # NDS32 targets add the $d2 mapping symbol here... - #... -diff --git a/binutils/testsuite/binutils-all/readelf.ss-64 b/binutils/testsuite/binutils-all/readelf.ss-64 -index bd10cabef3..99a732f71f 100644 ---- a/binutils/testsuite/binutils-all/readelf.ss-64 -+++ b/binutils/testsuite/binutils-all/readelf.ss-64 -@@ -2,10 +2,7 @@ - Symbol table '.symtab' contains .* entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +0: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +UND -- +1: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +1 -- +2: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +3 -- +3: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +4 -- +4: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol -+ +1: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol - # aarch64-elf targets add the $d mapping symbol here... - #... - +.: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +3 static_data_symbol -diff --git a/binutils/testsuite/binutils-all/readelf.ss-64-unused b/binutils/testsuite/binutils-all/readelf.ss-64-unused -new file mode 100644 -index 0000000000..bd10cabef3 ---- /dev/null -+++ b/binutils/testsuite/binutils-all/readelf.ss-64-unused -@@ -0,0 +1,18 @@ -+ -+Symbol table '.symtab' contains .* entries: -+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name -+ +0: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +UND -+ +1: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +1 -+ +2: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +3 -+ +3: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +4 -+ +4: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol -+# aarch64-elf targets add the $d mapping symbol here... -+#... -+ +.: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +3 static_data_symbol -+# ... or here ... -+#... -+.* +.: 0000000000000000 +0 +NOTYPE +GLOBAL +DEFAULT +1 text_symbol -+ +.: 0000000000000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol -+ +.: 0000000000000000 +0 +NOTYPE +GLOBAL +DEFAULT +3 data_symbol -+ +[0-9]+: 0000000000000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +COM common_symbol -+#pass -diff --git a/binutils/testsuite/binutils-all/readelf.ss-unused b/binutils/testsuite/binutils-all/readelf.ss-unused -new file mode 100644 -index 0000000000..acc6d9390c ---- /dev/null -+++ b/binutils/testsuite/binutils-all/readelf.ss-unused -@@ -0,0 +1,20 @@ -+ -+Symbol table '.symtab' contains .* entries: -+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name -+ +0: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +UND -+ +1: 00000000 +0 +SECTION +LOCAL +DEFAULT +1 -+ +2: 00000000 +0 +SECTION +LOCAL +DEFAULT +[34] -+ +3: 00000000 +0 +SECTION +LOCAL +DEFAULT +[45] -+ +4: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol -+# ARM targets add the $d mapping symbol here... -+# NDS32 targets add the $d2 mapping symbol here... -+#... -+ +.: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +[34] static_data_symbol -+# v850 targets include extra SECTION symbols here for the .call_table_data -+# and .call_table_text sections. -+#... -+ +[0-9]+: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +1 text_symbol -+ +[0-9]+: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol -+ +[0-9]+: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +[34] data_symbol -+ +[0-9]+: 00000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +(COM|ANSI_COM) common_symbol -+#... -diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp -index 6552d30264..616a6cad3d 100644 ---- a/binutils/testsuite/lib/binutils-common.exp -+++ b/binutils/testsuite/lib/binutils-common.exp -@@ -248,6 +248,37 @@ proc is_generic { } { - return 0 - } - -+# True if the object format is ELF with unused section symbols. -+proc is_elf_unused_section_symbols {} { -+ global AS ASFLAGS READELF -+ -+ if {![info exists elf_unused_section_symbols_saved]} { -+ set elf_unused_section_symbols_saved 1 -+ if { [is_elf_format] } { -+ set base "empty[pid]" -+ set src "$base.s" -+ set obj "$base.obj" -+ set f [open $src "w"] -+ close $f -+ set cmd "$AS $ASFLAGS -o $obj $src" -+ send_log "$cmd\n" -+ set cmdret [remote_exec host $cmd] -+ set cmdret [lindex $cmdret 0] -+ if { $cmdret == 0 } { -+ set cmd "$READELF -sW $obj" -+ send_log "$cmd\n" -+ set got [remote_exec host $cmd] -+ if { ![string match "*SECTION*" $got] } { -+ set elf_unused_section_symbols_saved 0 -+ } -+ } -+ file delete $obj -+ file delete $src -+ } -+ } -+ return $elf_unused_section_symbols_saved -+} -+ - # True if the ELF target supports STB_GNU_UNIQUE. - # - # This require ELFOSABI_GNU, and `bfd_elf_final_link'. -diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c -index 94fa8051a0..6c0a6ae9ee 100644 ---- a/gas/config/obj-elf.c -+++ b/gas/config/obj-elf.c -@@ -2841,6 +2841,9 @@ elf_adjust_symtab (void) - symbol_table_insert (sy); - } - elf_group_id (s) = symbol_get_bfdsym (sy); -+ /* Mark the group signature symbol as used so that it will be -+ included in the symbol table. */ -+ symbol_mark_used_in_reloc (sy); - } - } - -diff --git a/gas/read.c b/gas/read.c -index 9d0ba27ea8..be6e3e03d4 100644 ---- a/gas/read.c -+++ b/gas/read.c -@@ -4207,6 +4207,9 @@ s_reloc (int ignore ATTRIBUTE_UNUSED) - goto err_out; - case O_constant: - exp.X_add_symbol = section_symbol (now_seg); -+ /* Mark the section symbol used in relocation so that it will be -+ included in the symbol table. */ -+ symbol_mark_used_in_reloc (exp.X_add_symbol); - exp.X_op = O_symbol; - /* Fallthru */ - case O_symbol: -diff --git a/gas/subsegs.c b/gas/subsegs.c -index 8e4b310afe..191879eb08 100644 ---- a/gas/subsegs.c -+++ b/gas/subsegs.c -@@ -89,6 +89,10 @@ subseg_set_rest (segT seg, subsegT subseg) - - seginfo = seg_info (seg); - -+ /* Should the section symbol be kept? */ -+ if (bfd_keep_unused_section_symbols (stdoutput)) -+ seg->symbol->flags |= BSF_SECTION_SYM_USED; -+ - /* Attempt to find or make a frchain for that subsection. - We keep the list sorted by subsection number. */ - for (frcP = *(lastPP = &seginfo->frchainP); -diff --git a/gas/testsuite/gas/cfi/cfi-label.d b/gas/testsuite/gas/cfi/cfi-label.d -index 0350b57f13..c6507138b4 100644 ---- a/gas/testsuite/gas/cfi/cfi-label.d -+++ b/gas/testsuite/gas/cfi/cfi-label.d -@@ -6,11 +6,9 @@ - - SYMBOL TABLE: - 0*00 l d \.text 0*00 \.text --0*00 l d \.data 0*00 \.data --0*00 l d \.bss 0*00 \.bss -+#... - 0*00 l F \.text 0*04 cfilabel - 0*2f l \.eh_frame 0*00 cfi2 --0*00 l d \.eh_frame 0*00 \.eh_frame - 0*2b g \.eh_frame 0*00 cfi1 - - -diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp -index 5cfb7a6237..a0f98eddd6 100644 ---- a/gas/testsuite/gas/elf/elf.exp -+++ b/gas/testsuite/gas/elf/elf.exp -@@ -54,7 +54,11 @@ proc run_elf_list_test { name suffix opts readelf_opts readelf_pipe } { - - # We're testing bits in obj-elf -- don't run on anything else. - if { [is_elf_format] } then { -- set target_machine "" -+ if { [is_elf_unused_section_symbols ] } { -+ set target_machine -unused -+ } else { -+ set target_machine "" -+ } - set dump_opts "" - if {[istarget "arc*-*-*"]} { - set target_machine -arc -diff --git a/gas/testsuite/gas/elf/section2.e b/gas/testsuite/gas/elf/section2.e -index 9b50798bcf..8b13789179 100644 ---- a/gas/testsuite/gas/elf/section2.e -+++ b/gas/testsuite/gas/elf/section2.e -@@ -1,8 +1 @@ - --Symbol table '.symtab' contains 5 entries: -- +Num: +Value +Size +Type +Bind +Vis +Ndx +Name -- +0: 0+0 +0 +NOTYPE +LOCAL +DEFAULT +UND -- +1: 0+0 +0 +SECTION +LOCAL +DEFAULT +1 -- +2: 0+0 +0 +SECTION +LOCAL +DEFAULT +2 -- +3: 0+0 +0 +SECTION +LOCAL +DEFAULT +3 -- +4: 0+0 +0 +SECTION +LOCAL +DEFAULT +4 -diff --git a/gas/testsuite/gas/elf/section2.e-unused b/gas/testsuite/gas/elf/section2.e-unused -new file mode 100644 -index 0000000000..9b50798bcf ---- /dev/null -+++ b/gas/testsuite/gas/elf/section2.e-unused -@@ -0,0 +1,8 @@ -+ -+Symbol table '.symtab' contains 5 entries: -+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name -+ +0: 0+0 +0 +NOTYPE +LOCAL +DEFAULT +UND -+ +1: 0+0 +0 +SECTION +LOCAL +DEFAULT +1 -+ +2: 0+0 +0 +SECTION +LOCAL +DEFAULT +2 -+ +3: 0+0 +0 +SECTION +LOCAL +DEFAULT +3 -+ +4: 0+0 +0 +SECTION +LOCAL +DEFAULT +4 -diff --git a/gas/testsuite/gas/elf/symver.d b/gas/testsuite/gas/elf/symver.d -index 7fcc62a5ca..2292e3267d 100644 ---- a/gas/testsuite/gas/elf/symver.d -+++ b/gas/testsuite/gas/elf/symver.d -@@ -8,10 +8,6 @@ - .*: file format .* - - SYMBOL TABLE: -- --0+000 l.*d.*\.text.*0+000.* --0+000 l.*d.*\.data.*0+000.* --0+000 l.*d.*\.bss.*0+000.* - #... - 0+000 l.*O.*\.data.*0+004 x - #... -diff --git a/gas/testsuite/gas/i386/ilp32/elf/symver.d b/gas/testsuite/gas/i386/ilp32/elf/symver.d -index 7f69d660b3..3acf1487b3 100644 ---- a/gas/testsuite/gas/i386/ilp32/elf/symver.d -+++ b/gas/testsuite/gas/i386/ilp32/elf/symver.d -@@ -9,10 +9,6 @@ - .*: file format .* - - SYMBOL TABLE: -- --0+000 l.*d.*\.text.*0+000.* --0+000 l.*d.*\.data.*0+000.* --0+000 l.*d.*\.bss.*0+000.* - #... - 0+000 l.*O.*\.data.*0+004 x - #... -diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-size-1.d b/gas/testsuite/gas/i386/ilp32/x86-64-size-1.d -index e5b74fa5c9..64b052dc93 100644 ---- a/gas/testsuite/gas/i386/ilp32/x86-64-size-1.d -+++ b/gas/testsuite/gas/i386/ilp32/x86-64-size-1.d -@@ -6,19 +6,19 @@ - - Relocation section '.rela.text' at offset .* contains 9 entries: - Offset Info Type Sym.Value Sym. Name \+ Addend --0+1 00000420 R_X86_64_SIZE32 00000000 xxx \+ 0 --0+6 00000420 R_X86_64_SIZE32 00000000 xxx - 8 --0+b 00000420 R_X86_64_SIZE32 00000000 xxx \+ 8 --0+10 00000520 R_X86_64_SIZE32 00000000 yyy \+ 0 --0+15 00000520 R_X86_64_SIZE32 00000000 yyy - 10 --0+1a 00000520 R_X86_64_SIZE32 00000000 yyy \+ 10 --0+1f 00000620 R_X86_64_SIZE32 00000020 zzz \+ 0 --0+24 00000620 R_X86_64_SIZE32 00000020 zzz - 20 --0+29 00000620 R_X86_64_SIZE32 00000020 zzz \+ 20 -+0+1 00000120 R_X86_64_SIZE32 00000000 xxx \+ 0 -+0+6 00000120 R_X86_64_SIZE32 00000000 xxx - 8 -+0+b 00000120 R_X86_64_SIZE32 00000000 xxx \+ 8 -+0+10 00000220 R_X86_64_SIZE32 00000000 yyy \+ 0 -+0+15 00000220 R_X86_64_SIZE32 00000000 yyy - 10 -+0+1a 00000220 R_X86_64_SIZE32 00000000 yyy \+ 10 -+0+1f 00000320 R_X86_64_SIZE32 00000020 zzz \+ 0 -+0+24 00000320 R_X86_64_SIZE32 00000020 zzz - 20 -+0+29 00000320 R_X86_64_SIZE32 00000020 zzz \+ 20 - - Relocation section '.rela.data' at offset .* contains 3 entries: - Offset Info Type Sym.Value Sym. Name \+ Addend --0+50 00000420 R_X86_64_SIZE32 00000000 xxx - 1 --0+54 00000520 R_X86_64_SIZE32 00000000 yyy \+ 2 --0+58 00000620 R_X86_64_SIZE32 00000020 zzz \+ 0 -+0+50 00000120 R_X86_64_SIZE32 00000000 xxx - 1 -+0+54 00000220 R_X86_64_SIZE32 00000000 yyy \+ 2 -+0+58 00000320 R_X86_64_SIZE32 00000020 zzz \+ 0 - #pass -diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-size-3.d b/gas/testsuite/gas/i386/ilp32/x86-64-size-3.d -index 6f96134f13..65f6890dae 100644 ---- a/gas/testsuite/gas/i386/ilp32/x86-64-size-3.d -+++ b/gas/testsuite/gas/i386/ilp32/x86-64-size-3.d -@@ -6,15 +6,15 @@ - - Relocation section '.rela.text' at offset .* contains 6 entries: - Offset Info Type Sym.Value Sym. Name \+ Addend --0+1 00000620 R_X86_64_SIZE32 00000000 xxx \+ 0 --0+6 00000620 R_X86_64_SIZE32 00000000 xxx - 8 --0+b 00000620 R_X86_64_SIZE32 00000000 xxx \+ 8 --0+10 00000720 R_X86_64_SIZE32 00000000 yyy \+ 0 --0+15 00000720 R_X86_64_SIZE32 00000000 yyy - 10 --0+1a 00000720 R_X86_64_SIZE32 00000000 yyy \+ 10 -+0+1 00000120 R_X86_64_SIZE32 00000000 xxx \+ 0 -+0+6 00000120 R_X86_64_SIZE32 00000000 xxx - 8 -+0+b 00000120 R_X86_64_SIZE32 00000000 xxx \+ 8 -+0+10 00000220 R_X86_64_SIZE32 00000000 yyy \+ 0 -+0+15 00000220 R_X86_64_SIZE32 00000000 yyy - 10 -+0+1a 00000220 R_X86_64_SIZE32 00000000 yyy \+ 10 - - Relocation section '.rela.tdata' at offset .* contains 2 entries: - Offset Info Type Sym.Value Sym. Name \+ Addend --0+50 00000620 R_X86_64_SIZE32 00000000 xxx - 1 --0+54 00000720 R_X86_64_SIZE32 00000000 yyy \+ 2 -+0+50 00000120 R_X86_64_SIZE32 00000000 xxx - 1 -+0+54 00000220 R_X86_64_SIZE32 00000000 yyy \+ 2 - #pass -diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-size-5.d b/gas/testsuite/gas/i386/ilp32/x86-64-size-5.d -index 8ce06b0f84..4571a484ea 100644 ---- a/gas/testsuite/gas/i386/ilp32/x86-64-size-5.d -+++ b/gas/testsuite/gas/i386/ilp32/x86-64-size-5.d -@@ -6,13 +6,13 @@ - - Relocation section '.rela.text' at offset .* contains 3 entries: - Offset Info Type Sym.Value Sym. Name \+ Addend --0+2 00000421 R_X86_64_SIZE64 00000000 xxx \+ 0 --0+c 00000421 R_X86_64_SIZE64 00000000 xxx - 8 --0+16 00000421 R_X86_64_SIZE64 00000000 xxx \+ 8 -+0+2 00000121 R_X86_64_SIZE64 00000000 xxx \+ 0 -+0+c 00000121 R_X86_64_SIZE64 00000000 xxx - 8 -+0+16 00000121 R_X86_64_SIZE64 00000000 xxx \+ 8 - - Relocation section '.rela.data' at offset .* contains 3 entries: - Offset Info Type Sym.Value Sym. Name \+ Addend --0+50 00000421 R_X86_64_SIZE64 00000000 xxx - 1 --0+58 00000621 R_X86_64_SIZE64 00000000 yyy \+ c8 --0+60 00000521 R_X86_64_SIZE64 00000020 zzz \+ 0 -+0+50 00000121 R_X86_64_SIZE64 00000000 xxx - 1 -+0+58 00000321 R_X86_64_SIZE64 00000000 yyy \+ c8 -+0+60 00000221 R_X86_64_SIZE64 00000020 zzz \+ 0 - #pass -diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d -index bd532b73e8..274ddb0627 100644 ---- a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d -+++ b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d -@@ -3,7 +3,7 @@ - #readelf: -S - #name: x86-64 (ILP32) unwind - --There are 8 section headers, starting at offset 0x[0-9a-f]+: -+There are 6 section headers, starting at offset 0x[0-9a-f]+: - - Section Headers: - \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al -@@ -12,8 +12,6 @@ Section Headers: - \[ 2\] .data PROGBITS 00000000 000034 000000 00 WA 0 0 1 - \[ 3\] .bss NOBITS 00000000 000034 000000 00 WA 0 0 1 - \[ 4\] .eh_frame X86_64_UNWIND 00000000 000034 000008 00 A 0 0 1 -- \[ 5\] .symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 6 5 4 -- \[ 6\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 . 0 0 1 -- \[ 7\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000036 00 . 0 0 1 -+ \[ 5\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000026 00 . 0 0 1 - Key to Flags: - #pass -diff --git a/gas/testsuite/gas/i386/size-1.d b/gas/testsuite/gas/i386/size-1.d -index d582bbecc9..b187e5d4a3 100644 ---- a/gas/testsuite/gas/i386/size-1.d -+++ b/gas/testsuite/gas/i386/size-1.d -@@ -5,19 +5,19 @@ - - Relocation section '.rel.text' at offset .* contains 9 entries: - Offset Info Type Sym.Value Sym. Name --0+1 00000426 R_386_SIZE32 00000000 xxx --0+6 00000426 R_386_SIZE32 00000000 xxx --0+b 00000426 R_386_SIZE32 00000000 xxx --0+10 00000526 R_386_SIZE32 00000000 yyy --0+15 00000526 R_386_SIZE32 00000000 yyy --0+1a 00000526 R_386_SIZE32 00000000 yyy --0+1f 00000626 R_386_SIZE32 00000020 zzz --0+24 00000626 R_386_SIZE32 00000020 zzz --0+29 00000626 R_386_SIZE32 00000020 zzz -+0+1 00000126 R_386_SIZE32 00000000 xxx -+0+6 00000126 R_386_SIZE32 00000000 xxx -+0+b 00000126 R_386_SIZE32 00000000 xxx -+0+10 00000226 R_386_SIZE32 00000000 yyy -+0+15 00000226 R_386_SIZE32 00000000 yyy -+0+1a 00000226 R_386_SIZE32 00000000 yyy -+0+1f 00000326 R_386_SIZE32 00000020 zzz -+0+24 00000326 R_386_SIZE32 00000020 zzz -+0+29 00000326 R_386_SIZE32 00000020 zzz - - Relocation section '.rel.data' at offset .* contains 3 entries: - Offset Info Type Sym.Value Sym. Name --0+50 00000426 R_386_SIZE32 00000000 xxx --0+54 00000526 R_386_SIZE32 00000000 yyy --0+58 00000626 R_386_SIZE32 00000020 zzz -+0+50 00000126 R_386_SIZE32 00000000 xxx -+0+54 00000226 R_386_SIZE32 00000000 yyy -+0+58 00000326 R_386_SIZE32 00000020 zzz - #pass -diff --git a/gas/testsuite/gas/i386/size-3.d b/gas/testsuite/gas/i386/size-3.d -index 2b08707f43..b45811c5d8 100644 ---- a/gas/testsuite/gas/i386/size-3.d -+++ b/gas/testsuite/gas/i386/size-3.d -@@ -5,15 +5,15 @@ - - Relocation section '.rel.text' at offset .* contains 6 entries: - Offset Info Type Sym.Value Sym. Name --0+1 00000626 R_386_SIZE32 00000000 xxx --0+6 00000626 R_386_SIZE32 00000000 xxx --0+b 00000626 R_386_SIZE32 00000000 xxx --0+10 00000726 R_386_SIZE32 00000000 yyy --0+15 00000726 R_386_SIZE32 00000000 yyy --0+1a 00000726 R_386_SIZE32 00000000 yyy -+0+1 00000126 R_386_SIZE32 00000000 xxx -+0+6 00000126 R_386_SIZE32 00000000 xxx -+0+b 00000126 R_386_SIZE32 00000000 xxx -+0+10 00000226 R_386_SIZE32 00000000 yyy -+0+15 00000226 R_386_SIZE32 00000000 yyy -+0+1a 00000226 R_386_SIZE32 00000000 yyy - - Relocation section '.rel.tdata' at offset .* contains 2 entries: - Offset Info Type Sym.Value Sym. Name --0+50 00000626 R_386_SIZE32 00000000 xxx --0+54 00000726 R_386_SIZE32 00000000 yyy -+0+50 00000126 R_386_SIZE32 00000000 xxx -+0+54 00000226 R_386_SIZE32 00000000 yyy - #pass -diff --git a/gas/testsuite/gas/i386/svr4.d b/gas/testsuite/gas/i386/svr4.d -index 3a46354192..2820506668 100644 ---- a/gas/testsuite/gas/i386/svr4.d -+++ b/gas/testsuite/gas/i386/svr4.d -@@ -4,9 +4,6 @@ - .*: +file format .* - - SYMBOL TABLE: --0+00 .* \.text[ ]+0+ \.text --0+00 .* \.data[ ]+0+ \.data --0+00 .* \.bss[ ]+0+ \.bss - 0+00 .* \.text[ ]+0+ svr4 - 0+04 .* \*ABS\*[ ]+0+ a - 0+03 .* \*ABS\*[ ]+0+ b -diff --git a/gas/testsuite/gas/i386/x86-64-size-1.d b/gas/testsuite/gas/i386/x86-64-size-1.d -index 657408cf73..57db899437 100644 ---- a/gas/testsuite/gas/i386/x86-64-size-1.d -+++ b/gas/testsuite/gas/i386/x86-64-size-1.d -@@ -6,19 +6,19 @@ - - Relocation section '.rela.text' at offset .* contains 9 entries: - Offset Info Type Sym. Value Sym. Name \+ Addend --0+1 000400000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 0 --0+6 000400000020 R_X86_64_SIZE32 0000000000000000 xxx - 8 --0+b 000400000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 8 --0+10 000500000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 0 --0+15 000500000020 R_X86_64_SIZE32 0000000000000000 yyy - 10 --0+1a 000500000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 10 --0+1f 000600000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 0 --0+24 000600000020 R_X86_64_SIZE32 0000000000000020 zzz - 20 --0+29 000600000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 20 -+0+1 000100000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 0 -+0+6 000100000020 R_X86_64_SIZE32 0000000000000000 xxx - 8 -+0+b 000100000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 8 -+0+10 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 0 -+0+15 000200000020 R_X86_64_SIZE32 0000000000000000 yyy - 10 -+0+1a 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 10 -+0+1f 000300000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 0 -+0+24 000300000020 R_X86_64_SIZE32 0000000000000020 zzz - 20 -+0+29 000300000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 20 - - Relocation section '.rela.data' at offset .* contains 3 entries: - Offset Info Type Sym. Value Sym. Name \+ Addend --0+50 000400000020 R_X86_64_SIZE32 0000000000000000 xxx - 1 --0+54 000500000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 2 --0+58 000600000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 0 -+0+50 000100000020 R_X86_64_SIZE32 0000000000000000 xxx - 1 -+0+54 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 2 -+0+58 000300000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 0 - #pass -diff --git a/gas/testsuite/gas/i386/x86-64-size-3.d b/gas/testsuite/gas/i386/x86-64-size-3.d -index 943a64e9ac..4688dc938b 100644 ---- a/gas/testsuite/gas/i386/x86-64-size-3.d -+++ b/gas/testsuite/gas/i386/x86-64-size-3.d -@@ -6,15 +6,15 @@ - - Relocation section '.rela.text' at offset .* contains 6 entries: - Offset Info Type Sym. Value Sym. Name \+ Addend --0+1 000600000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 0 --0+6 000600000020 R_X86_64_SIZE32 0000000000000000 xxx - 8 --0+b 000600000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 8 --0+10 000700000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 0 --0+15 000700000020 R_X86_64_SIZE32 0000000000000000 yyy - 10 --0+1a 000700000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 10 -+0+1 000100000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 0 -+0+6 000100000020 R_X86_64_SIZE32 0000000000000000 xxx - 8 -+0+b 000100000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 8 -+0+10 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 0 -+0+15 000200000020 R_X86_64_SIZE32 0000000000000000 yyy - 10 -+0+1a 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 10 - - Relocation section '.rela.tdata' at offset .* contains 2 entries: - Offset Info Type Sym. Value Sym. Name \+ Addend --0+50 000600000020 R_X86_64_SIZE32 0000000000000000 xxx - 1 --0+54 000700000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 2 -+0+50 000100000020 R_X86_64_SIZE32 0000000000000000 xxx - 1 -+0+54 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 2 - #pass -diff --git a/gas/testsuite/gas/i386/x86-64-size-5.d b/gas/testsuite/gas/i386/x86-64-size-5.d -index c34d0eedaa..d18ffcd3a4 100644 ---- a/gas/testsuite/gas/i386/x86-64-size-5.d -+++ b/gas/testsuite/gas/i386/x86-64-size-5.d -@@ -5,13 +5,13 @@ - - Relocation section '.rela.text' at offset .* contains 3 entries: - Offset Info Type Sym. Value Sym. Name \+ Addend --0+2 000400000021 R_X86_64_SIZE64 0000000000000000 xxx \+ 0 --0+c 000400000021 R_X86_64_SIZE64 0000000000000000 xxx - 8 --0+16 000400000021 R_X86_64_SIZE64 0000000000000000 xxx \+ 8 -+0+2 000100000021 R_X86_64_SIZE64 0000000000000000 xxx \+ 0 -+0+c 000100000021 R_X86_64_SIZE64 0000000000000000 xxx - 8 -+0+16 000100000021 R_X86_64_SIZE64 0000000000000000 xxx \+ 8 - - Relocation section '.rela.data' at offset .* contains 3 entries: - Offset Info Type Sym. Value Sym. Name \+ Addend --0+50 000400000021 R_X86_64_SIZE64 0000000000000000 xxx - 1 --0+58 000600000021 R_X86_64_SIZE64 0000000000000000 yyy \+ c8 --0+60 000500000021 R_X86_64_SIZE64 0000000000000020 zzz \+ 0 -+0+50 000100000021 R_X86_64_SIZE64 0000000000000000 xxx - 1 -+0+58 000300000021 R_X86_64_SIZE64 0000000000000000 yyy \+ c8 -+0+60 000200000021 R_X86_64_SIZE64 0000000000000020 zzz \+ 0 - #pass -diff --git a/gas/testsuite/gas/i386/x86-64-unwind.d b/gas/testsuite/gas/i386/x86-64-unwind.d -index 7f8d94fe86..ca3047277e 100644 ---- a/gas/testsuite/gas/i386/x86-64-unwind.d -+++ b/gas/testsuite/gas/i386/x86-64-unwind.d -@@ -2,7 +2,7 @@ - #readelf: -S - #name: x86-64 unwind - --There are 8 section headers, starting at offset 0x[0-9a-f]+: -+There are 6 section headers, starting at offset 0x[0-9a-f]+: - - Section Headers: - \[Nr\] Name Type Address Offset -@@ -17,11 +17,7 @@ Section Headers: - 0000000000000000 0000000000000000 WA 0 0 1 - \[ 4\] \.eh_frame X86_64_UNWIND 0000000000000000 00000040 - 0000000000000008 0000000000000000 A 0 0 1 -- \[ 5\] \.symtab SYMTAB 0000000000000000 [0-9a-f]+ -- 0000000000000078 0000000000000018 6 5 8 -- \[ 6\] \.strtab STRTAB 0000000000000000 [0-9a-f]+ -- 0000000000000001 0000000000000000 . 0 0 1 -- \[ 7\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -- 0000000000000036 0000000000000000 . 0 0 1 -+ \[ 5\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ -+ 0000000000000026 0000000000000000 . 0 0 1 - Key to Flags: - #... -diff --git a/gas/write.c b/gas/write.c -index ca14b3734b..75ba971eb4 100644 ---- a/gas/write.c -+++ b/gas/write.c -@@ -848,7 +848,12 @@ adjust_reloc_syms (bfd *abfd ATTRIBUTE_UNUSED, - /* Since we're reducing to section symbols, don't attempt to reduce - anything that's already using one. */ - if (symbol_section_p (sym)) -- continue; -+ { -+ /* Mark the section symbol used in relocation so that it will -+ be included in the symbol table. */ -+ symbol_mark_used_in_reloc (sym); -+ continue; -+ } - - symsec = S_GET_SEGMENT (sym); - if (symsec == NULL) -@@ -1747,10 +1752,13 @@ set_symtab (void) - - /* Count symbols. We can't rely on a count made by the loop in - write_object_file, because *_frob_file may add a new symbol or -- two. */ -+ two. Generate unused section symbols only if needed. */ - nsyms = 0; - for (symp = symbol_rootP; symp; symp = symbol_next (symp)) -- nsyms++; -+ if (bfd_keep_unused_section_symbols (stdoutput) -+ || !symbol_section_p (symp) -+ || symbol_used_in_reloc_p (symp)) -+ nsyms++; - - if (nsyms) - { -@@ -1759,15 +1767,22 @@ set_symtab (void) - - asympp = (asymbol **) bfd_alloc (stdoutput, amt); - symp = symbol_rootP; -- for (i = 0; i < nsyms; i++, symp = symbol_next (symp)) -- { -- asympp[i] = symbol_get_bfdsym (symp); -- if (asympp[i]->flags != BSF_SECTION_SYM -- || !(bfd_is_const_section (asympp[i]->section) -- && asympp[i]->section->symbol == asympp[i])) -- asympp[i]->flags |= BSF_KEEP; -- symbol_mark_written (symp); -- } -+ for (i = 0; i < nsyms; symp = symbol_next (symp)) -+ if (bfd_keep_unused_section_symbols (stdoutput) -+ || !symbol_section_p (symp) -+ || symbol_used_in_reloc_p (symp)) -+ { -+ asympp[i] = symbol_get_bfdsym (symp); -+ if (asympp[i]->flags != BSF_SECTION_SYM -+ || !(bfd_is_const_section (asympp[i]->section) -+ && asympp[i]->section->symbol == asympp[i])) -+ asympp[i]->flags |= BSF_KEEP; -+ symbol_mark_written (symp); -+ /* Include this section symbol in the symbol table. */ -+ if (symbol_section_p (symp)) -+ asympp[i]->flags |= BSF_SECTION_SYM_USED; -+ i++; -+ } - } - else - asympp = 0; -@@ -2058,6 +2073,10 @@ maybe_generate_build_notes (void) - bfd_section_size (bsym->section), - note); - -+ /* Mark the section symbol used in relocation so that it will be -+ included in the symbol table. */ -+ symbol_mark_used_in_reloc (sym); -+ - total_size += note_size; - /* FIXME: Maybe add a note recording the assembler command line and version ? */ - } -diff --git a/ld/testsuite/ld-elf/export-class.sd b/ld/testsuite/ld-elf/export-class.sd -index bd5c5491d9..e71248268c 100644 ---- a/ld/testsuite/ld-elf/export-class.sd -+++ b/ld/testsuite/ld-elf/export-class.sd -@@ -9,8 +9,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - #... - Symbol table '\.symtab' contains [0-9]+ entries: - * Num: * Value * Size * Type * Bind * Vis * Ndx * Name --#... -- * [0-9a-f]+: * 0*12340000 * 0 * SECTION * LOCAL * DEFAULT * [0-9]+ * - #... - * [0-9a-f]+: * 0*123400a0 * 0 * NOTYPE * LOCAL * DEFAULT * [0-9]+ * hidden_foo - #... -diff --git a/ld/testsuite/ld-elf/loadaddr3b.d b/ld/testsuite/ld-elf/loadaddr3b.d -index ac4b5178d8..aa5e951524 100644 ---- a/ld/testsuite/ld-elf/loadaddr3b.d -+++ b/ld/testsuite/ld-elf/loadaddr3b.d -@@ -3,9 +3,6 @@ - #objdump: -t - #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi - --#... --0+0000100 l d .text 0+0000000 .text --0+0000200 l d .data 0+0000000 .data - #... - 0+0000110 g \*ABS\* 0+0000000 data_load - #... -diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp -index a1856b5bca..d148c26d8f 100644 ---- a/ld/testsuite/ld-elf/sec64k.exp -+++ b/ld/testsuite/ld-elf/sec64k.exp -@@ -198,11 +198,15 @@ if { ![istarget "d10v-*-*"] - puts $ofd " \\\[65279\\\] \\.foo\\.\[0-9\]+ .*" - puts $ofd " \\\[65280\\\] \\.foo\\.\[0-9\]+ .*" - puts $ofd "#..." -- puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+SECTION\[ \]+LOCAL\[ \]+DEFAULT\[ \]+660.. " -- puts $ofd "#..." -- puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+\[0-9\] bar_1$" -- puts $ofd "#..." -- puts $ofd ".* bar_66000$" -+ if { [is_elf_unused_section_symbols ] } { -+ puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+SECTION\[ \]+LOCAL\[ \]+DEFAULT\[ \]+660.. " -+ puts $ofd "#..." -+ puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+\[0-9\] bar_1$" -+ puts $ofd "#..." -+ puts $ofd ".* bar_66000$" -+ } else { -+ puts $ofd " 66...: \[0-9a-f\]+\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+660.. bar_66000$" -+ } - puts $ofd "#..." - # Global symbols are not in "alphanumeric" order, so we just check - # that the first and the last are present in any order (assuming no -diff --git a/ld/testsuite/ld-i386/ibt-plt-1.d b/ld/testsuite/ld-i386/ibt-plt-1.d -index a7eaa1f77d..b0648ae9e0 100644 ---- a/ld/testsuite/ld-i386/ibt-plt-1.d -+++ b/ld/testsuite/ld-i386/ibt-plt-1.d -@@ -13,11 +13,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 08 00 00 00 push \$0x8 -- +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-i386/ibt-plt-2a.d b/ld/testsuite/ld-i386/ibt-plt-2a.d -index 9c8f5996a7..42aa2ce741 100644 ---- a/ld/testsuite/ld-i386/ibt-plt-2a.d -+++ b/ld/testsuite/ld-i386/ibt-plt-2a.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 08 00 00 00 push \$0x8 -- +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-i386/ibt-plt-2c.d b/ld/testsuite/ld-i386/ibt-plt-2c.d -index a9c8642ced..445e08fa8b 100644 ---- a/ld/testsuite/ld-i386/ibt-plt-2c.d -+++ b/ld/testsuite/ld-i386/ibt-plt-2c.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 08 00 00 00 push \$0x8 -- +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-i386/ibt-plt-3a.d b/ld/testsuite/ld-i386/ibt-plt-3a.d -index b4366c9315..b357a74a33 100644 ---- a/ld/testsuite/ld-i386/ibt-plt-3a.d -+++ b/ld/testsuite/ld-i386/ibt-plt-3a.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 08 00 00 00 push \$0x8 -- +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-i386/ibt-plt-3c.d b/ld/testsuite/ld-i386/ibt-plt-3c.d -index b4366c9315..b357a74a33 100644 ---- a/ld/testsuite/ld-i386/ibt-plt-3c.d -+++ b/ld/testsuite/ld-i386/ibt-plt-3c.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fb endbr32 - +[a-f0-9]+: 68 08 00 00 00 push \$0x8 -- +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-i386/plt-pic.pd b/ld/testsuite/ld-i386/plt-pic.pd -index 5c047d4deb..fe0f3efb1b 100644 ---- a/ld/testsuite/ld-i386/plt-pic.pd -+++ b/ld/testsuite/ld-i386/plt-pic.pd -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --[0-9a-f]+ <.plt>: -+[0-9a-f]+ <fn1@plt-0x10>: - +[0-9a-f]+: ff b3 04 00 00 00 push 0x4\(%ebx\) - +[0-9a-f]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) - #... -@@ -16,9 +16,9 @@ Disassembly of section .plt: - [0-9a-f]+ <fn1@plt>: - +[0-9a-f]+: ff a3 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%ebx\) - +[0-9a-f]+: 68 00 00 00 00 push \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <fn1@plt-0x10> - - [0-9a-f]+ <fn2@plt>: - +[0-9a-f]+: ff a3 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%ebx\) - +[0-9a-f]+: 68 08 00 00 00 push \$0x8 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <fn1@plt-0x10> -diff --git a/ld/testsuite/ld-i386/plt-pic2.dd b/ld/testsuite/ld-i386/plt-pic2.dd -index 8162234aab..c9af97203a 100644 ---- a/ld/testsuite/ld-i386/plt-pic2.dd -+++ b/ld/testsuite/ld-i386/plt-pic2.dd -@@ -9,7 +9,7 @@ - - Disassembly of section .plt: - --.* <.plt>: -+.* <fn1@plt-0x10>: - +[a-f0-9]+: ff b3 04 00 00 00 push 0x4\(%ebx\) - +[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) - +[a-f0-9]+: 00 00 add %al,\(%eax\) -@@ -18,12 +18,12 @@ Disassembly of section .plt: - .* <fn1@plt>: - +[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e0 ff ff ff jmp .* <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp .* <fn1@plt-0x10> - - .* <fn2@plt>: - +[a-f0-9]+: ff a3 10 00 00 00 jmp \*0x10\(%ebx\) - +[a-f0-9]+: 68 08 00 00 00 push \$0x8 -- +[a-f0-9]+: e9 d0 ff ff ff jmp .* <.plt> -+ +[a-f0-9]+: e9 d0 ff ff ff jmp .* <fn1@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-i386/plt.pd b/ld/testsuite/ld-i386/plt.pd -index efcd8a1b1d..9c395c3b8d 100644 ---- a/ld/testsuite/ld-i386/plt.pd -+++ b/ld/testsuite/ld-i386/plt.pd -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --[0-9a-f]+ <.plt>: -+[0-9a-f]+ <fn1@plt-0x10>: - +[0-9a-f]+: ff 35 ([0-9a-f]{2} ){4} * push 0x[0-9a-f]+ - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+ - #... -@@ -16,9 +16,9 @@ Disassembly of section .plt: - [0-9a-f]+ <fn1@plt>: - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+ - +[0-9a-f]+: 68 00 00 00 00 push \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <fn1@plt-0x10> - - [0-9a-f]+ <fn2@plt>: - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+ - +[0-9a-f]+: 68 08 00 00 00 push \$0x8 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <fn1@plt-0x10> -diff --git a/ld/testsuite/ld-i386/plt2.dd b/ld/testsuite/ld-i386/plt2.dd -index c9d673f65a..5623fe9685 100644 ---- a/ld/testsuite/ld-i386/plt2.dd -+++ b/ld/testsuite/ld-i386/plt2.dd -@@ -9,7 +9,7 @@ - - Disassembly of section .plt: - --0+8048160 <.plt>: -+0+8048160 <fn1@plt-0x10>: - +[a-f0-9]+: ff 35 40 92 04 08 push 0x8049240 - +[a-f0-9]+: ff 25 44 92 04 08 jmp \*0x8049244 - +[a-f0-9]+: 00 00 add %al,\(%eax\) -@@ -18,12 +18,12 @@ Disassembly of section .plt: - 0+8048170 <fn1@plt>: - +[a-f0-9]+: ff 25 48 92 04 08 jmp \*0x8049248 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e0 ff ff ff jmp 8048160 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp 8048160 <fn1@plt-0x10> - - 0+8048180 <fn2@plt>: - +[a-f0-9]+: ff 25 4c 92 04 08 jmp \*0x804924c - +[a-f0-9]+: 68 08 00 00 00 push \$0x8 -- +[a-f0-9]+: e9 d0 ff ff ff jmp 8048160 <.plt> -+ +[a-f0-9]+: e9 d0 ff ff ff jmp 8048160 <fn1@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-i386/pr19636-1d.d b/ld/testsuite/ld-i386/pr19636-1d.d -index b7e6aba92c..f294c9c707 100644 ---- a/ld/testsuite/ld-i386/pr19636-1d.d -+++ b/ld/testsuite/ld-i386/pr19636-1d.d -@@ -22,4 +22,4 @@ Disassembly of section .text: - .* <_start>: - [ ]*[a-f0-9]+: 3b 80 f8 ff ff ff cmp -0x8\(%eax\),%eax - [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) --[ ]*[a-f0-9]+: e8 df ff ff ff call .* <\.plt\+0x10> -+[ ]*[a-f0-9]+: e8 df ff ff ff call .* <_start-0x10> -diff --git a/ld/testsuite/ld-i386/pr19636-1l.d b/ld/testsuite/ld-i386/pr19636-1l.d -index 8f2a8e5127..a7568aa74a 100644 ---- a/ld/testsuite/ld-i386/pr19636-1l.d -+++ b/ld/testsuite/ld-i386/pr19636-1l.d -@@ -23,4 +23,4 @@ Disassembly of section .text: - .* <_start>: - [ ]*[a-f0-9]+: 3b 80 f8 ff ff ff cmp -0x8\(%eax\),%eax - [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) --[ ]*[a-f0-9]+: e8 df ff ff ff call .* <\.plt\+0x10> -+[ ]*[a-f0-9]+: e8 df ff ff ff call .* <_start-0x10> -diff --git a/ld/testsuite/ld-i386/pr19636-2c.d b/ld/testsuite/ld-i386/pr19636-2c.d -index 4b49c81755..92b241073c 100644 ---- a/ld/testsuite/ld-i386/pr19636-2c.d -+++ b/ld/testsuite/ld-i386/pr19636-2c.d -@@ -22,6 +22,6 @@ Disassembly of section .text: - .* <_start>: - [ ]*[a-f0-9]+: 3b 80 fc ff ff ff cmp -0x4\(%eax\),%eax - [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) --[ ]*[a-f0-9]+: e8 df ff ff ff call .* <\.plt\+0x10> -+[ ]*[a-f0-9]+: e8 df ff ff ff call .* <_start-0x10> - [ ]*[a-f0-9]+: 3d 00 00 00 00 cmp \$0x0,%eax - [ ]*[a-f0-9]+: e8 fc ff ff ff call .* <_start\+0x17> -diff --git a/ld/testsuite/ld-i386/tlsbin.rd b/ld/testsuite/ld-i386/tlsbin.rd -index 20e4c5ed36..39afcd0b5b 100644 ---- a/ld/testsuite/ld-i386/tlsbin.rd -+++ b/ld/testsuite/ld-i386/tlsbin.rd -@@ -84,19 +84,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +13 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsbinpic.o - +[0-9]+: 00000020 +0 +TLS +LOCAL +DEFAULT +9 sl1 - +[0-9]+: 00000024 +0 +TLS +LOCAL +DEFAULT +9 sl2 -diff --git a/ld/testsuite/ld-i386/tlsbin2.rd b/ld/testsuite/ld-i386/tlsbin2.rd -index 5177f4d30d..fcbecc3196 100644 ---- a/ld/testsuite/ld-i386/tlsbin2.rd -+++ b/ld/testsuite/ld-i386/tlsbin2.rd -@@ -79,17 +79,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsbinpic2.o - +[0-9]+: 00000020 +0 +TLS +LOCAL +DEFAULT +7 sl1 - +[0-9]+: 00000024 +0 +TLS +LOCAL +DEFAULT +7 sl2 -diff --git a/ld/testsuite/ld-i386/tlsbindesc.rd b/ld/testsuite/ld-i386/tlsbindesc.rd -index 1c9c4f2cb2..b831f89133 100644 ---- a/ld/testsuite/ld-i386/tlsbindesc.rd -+++ b/ld/testsuite/ld-i386/tlsbindesc.rd -@@ -77,17 +77,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsbindesc.o - +[0-9]+: 00000020 +0 +TLS +LOCAL +DEFAULT +7 sl1 - +[0-9]+: 00000024 +0 +TLS +LOCAL +DEFAULT +7 sl2 -diff --git a/ld/testsuite/ld-i386/tlsdesc.rd b/ld/testsuite/ld-i386/tlsdesc.rd -index a5b4fb83c0..ec418d1a1f 100644 ---- a/ld/testsuite/ld-i386/tlsdesc.rd -+++ b/ld/testsuite/ld-i386/tlsdesc.rd -@@ -92,17 +92,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsdesc.o - +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +7 sl1 - +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +7 sl2 -diff --git a/ld/testsuite/ld-i386/tlsgdesc.rd b/ld/testsuite/ld-i386/tlsgdesc.rd -index ef131ef857..0744aeb78b 100644 ---- a/ld/testsuite/ld-i386/tlsgdesc.rd -+++ b/ld/testsuite/ld-i386/tlsgdesc.rd -@@ -73,16 +73,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +8 _DYNAMIC - +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _GLOBAL_OFFSET_TABLE_ - +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 -diff --git a/ld/testsuite/ld-i386/tlsnopic.rd b/ld/testsuite/ld-i386/tlsnopic.rd -index 661f1c46c6..229ce23a9a 100644 ---- a/ld/testsuite/ld-i386/tlsnopic.rd -+++ b/ld/testsuite/ld-i386/tlsnopic.rd -@@ -80,15 +80,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsnopic1.o - +[0-9]+: 0+00 +0 +TLS +LOCAL +DEFAULT +6 bl1 - +[0-9]+: 0+04 +0 +TLS +LOCAL +DEFAULT +6 bl2 -diff --git a/ld/testsuite/ld-i386/tlspic.rd b/ld/testsuite/ld-i386/tlspic.rd -index 3425c951bd..135d74907d 100644 ---- a/ld/testsuite/ld-i386/tlspic.rd -+++ b/ld/testsuite/ld-i386/tlspic.rd -@@ -96,18 +96,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12 * - .* FILE +LOCAL +DEFAULT +ABS .*tlspic1.o - +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +8 sl1 - +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +8 sl2 -diff --git a/ld/testsuite/ld-i386/tlspic2.rd b/ld/testsuite/ld-i386/tlspic2.rd -index 274445db84..ce85a55be4 100644 ---- a/ld/testsuite/ld-i386/tlspic2.rd -+++ b/ld/testsuite/ld-i386/tlspic2.rd -@@ -91,16 +91,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - .* FILE +LOCAL +DEFAULT +ABS .*tlspic3.o - +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +6 sl1 - +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +6 sl2 -diff --git a/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d -index 2c917fa293..0d3f7b80d0 100644 ---- a/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d -+++ b/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d -@@ -10,7 +10,7 @@ - - Disassembly of section .plt: - --0+f0 <.plt>: -+0+f0 <\*ABS\*@plt-0x10>: - +[a-f0-9]+: ff b3 04 00 00 00 push 0x4\(%ebx\) - +[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) - +[a-f0-9]+: 00 00 add %al,\(%eax\) -@@ -19,7 +19,7 @@ Disassembly of section .plt: - 0+100 <\*ABS\*@plt>: - +[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e0 ff ff ff jmp f0 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp f0 <\*ABS\*@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d -index 01f6a78146..48d2084d38 100644 ---- a/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d -+++ b/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d -@@ -10,7 +10,7 @@ - - Disassembly of section .plt: - --0+e0 <.plt>: -+0+e0 <\*ABS\*@plt-0x10>: - +[a-f0-9]+: ff b3 04 00 00 00 push 0x4\(%ebx\) - +[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) - +[a-f0-9]+: 00 00 add %al,\(%eax\) -@@ -19,7 +19,7 @@ Disassembly of section .plt: - 0+f0 <\*ABS\*@plt>: - +[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e0 ff ff ff jmp e0 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp e0 <\*ABS\*@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d b/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d -index 375cecd6f2..14866a8f6c 100644 ---- a/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d -+++ b/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d -@@ -9,7 +9,7 @@ - - Disassembly of section .plt: - --0+170 <.plt>: -+0+170 <\*ABS\*\+0x190@plt-0x10>: - +[a-f0-9]+: ff 35 42 01 20 00 push 0x200142\(%rip\) # 2002b8 <_GLOBAL_OFFSET_TABLE_\+0x8> - +[a-f0-9]+: ff 25 44 01 20 00 jmp \*0x200144\(%rip\) # 2002c0 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) -@@ -17,7 +17,7 @@ Disassembly of section .plt: - 0+180 <\*ABS\*\+0x190@plt>: - +[a-f0-9]+: ff 25 42 01 20 00 jmp \*0x200142\(%rip\) # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x18> - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e0 ff ff ff jmp 170 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp 170 <\*ABS\*\+0x190@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d b/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d -index 9cd35181b8..1cd60941ac 100644 ---- a/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d -+++ b/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d -@@ -9,7 +9,7 @@ - - Disassembly of section .plt: - --0+170 <.plt>: -+0+170 <\*ABS\*\+0x190@plt-0x10>: - +[a-f0-9]+: ff 35 42 01 20 00 push 0x200142\(%rip\) # 2002b8 <_GLOBAL_OFFSET_TABLE_\+0x8> - +[a-f0-9]+: ff 25 44 01 20 00 jmp \*0x200144\(%rip\) # 2002c0 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) -@@ -17,7 +17,7 @@ Disassembly of section .plt: - 0+180 <\*ABS\*\+0x190@plt>: - +[a-f0-9]+: ff 25 42 01 20 00 jmp \*0x200142\(%rip\) # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x18> - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e0 ff ff ff jmp 170 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp 170 <\*ABS\*\+0x190@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d -index de12e9f543..69a4ade87f 100644 ---- a/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d -+++ b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d -@@ -9,11 +9,11 @@ - Disassembly of section .text: - - 0+4000c8 <__start>: -- +[a-f0-9]+: ff 15 2a 00 20 00 call \*0x20002a\(%rip\) # 6000f8 <.got> -- +[a-f0-9]+: ff 25 24 00 20 00 jmp \*0x200024\(%rip\) # 6000f8 <.got> -- +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 <.got> -- +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 <.got> -- +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 <.got> -+ +[a-f0-9]+: ff 15 2a 00 20 00 call \*0x20002a\(%rip\) # 6000f8 <bar\+0x200007> -+ +[a-f0-9]+: ff 25 24 00 20 00 jmp \*0x200024\(%rip\) # 6000f8 <bar\+0x200007> -+ +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 <bar\+0x200007> -+ +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 <bar\+0x200007> -+ +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 <bar\+0x200007> - +[a-f0-9]+: 48 c7 c0 f1 00 40 00 mov \$0x4000f1,%rax - - 0+4000f0 <foo>: -diff --git a/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d -index de12e9f543..69a4ade87f 100644 ---- a/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d -+++ b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d -@@ -9,11 +9,11 @@ - Disassembly of section .text: - - 0+4000c8 <__start>: -- +[a-f0-9]+: ff 15 2a 00 20 00 call \*0x20002a\(%rip\) # 6000f8 <.got> -- +[a-f0-9]+: ff 25 24 00 20 00 jmp \*0x200024\(%rip\) # 6000f8 <.got> -- +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 <.got> -- +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 <.got> -- +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 <.got> -+ +[a-f0-9]+: ff 15 2a 00 20 00 call \*0x20002a\(%rip\) # 6000f8 <bar\+0x200007> -+ +[a-f0-9]+: ff 25 24 00 20 00 jmp \*0x200024\(%rip\) # 6000f8 <bar\+0x200007> -+ +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 <bar\+0x200007> -+ +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 <bar\+0x200007> -+ +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 <bar\+0x200007> - +[a-f0-9]+: 48 c7 c0 f1 00 40 00 mov \$0x4000f1,%rax - - 0+4000f0 <foo>: -diff --git a/ld/testsuite/ld-ifunc/pr17154-i386-now.d b/ld/testsuite/ld-ifunc/pr17154-i386-now.d -index 082d067422..6747b3408d 100644 ---- a/ld/testsuite/ld-ifunc/pr17154-i386-now.d -+++ b/ld/testsuite/ld-ifunc/pr17154-i386-now.d -@@ -10,7 +10,7 @@ - - Disassembly of section .plt: - --0+180 <.plt>: -+0+180 <\*ABS\*@plt-0x10>: - +[a-f0-9]+: ff b3 04 00 00 00 push 0x4\(%ebx\) - +[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) - +[a-f0-9]+: 00 00 add %al,\(%eax\) -@@ -19,22 +19,22 @@ Disassembly of section .plt: - 0+190 <\*ABS\*@plt>: - +[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) - +[a-f0-9]+: 68 18 00 00 00 push \$0x18 -- +[a-f0-9]+: e9 e0 ff ff ff jmp 180 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> - - 0+1a0 <func1@plt>: - +[a-f0-9]+: ff a3 10 00 00 00 jmp \*0x10\(%ebx\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 d0 ff ff ff jmp 180 <.plt> -+ +[a-f0-9]+: e9 d0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> - - 0+1b0 <func2@plt>: - +[a-f0-9]+: ff a3 14 00 00 00 jmp \*0x14\(%ebx\) - +[a-f0-9]+: 68 08 00 00 00 push \$0x8 -- +[a-f0-9]+: e9 c0 ff ff ff jmp 180 <.plt> -+ +[a-f0-9]+: e9 c0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> - - 0+1c0 <\*ABS\*@plt>: - +[a-f0-9]+: ff a3 18 00 00 00 jmp \*0x18\(%ebx\) - +[a-f0-9]+: 68 10 00 00 00 push \$0x10 -- +[a-f0-9]+: e9 b0 ff ff ff jmp 180 <.plt> -+ +[a-f0-9]+: e9 b0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-ifunc/pr17154-i386.d b/ld/testsuite/ld-ifunc/pr17154-i386.d -index 68123bf0ca..0b9817d437 100644 ---- a/ld/testsuite/ld-ifunc/pr17154-i386.d -+++ b/ld/testsuite/ld-ifunc/pr17154-i386.d -@@ -15,22 +15,22 @@ - 0+190 <\*ABS\*@plt>: - [ ]*[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) - [ ]*[a-f0-9]+: 68 18 00 00 00 push \$0x18 --[ ]*[a-f0-9]+: e9 e0 ff ff ff jmp 180 <.plt> -+[ ]*[a-f0-9]+: e9 e0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> - - 0+1a0 <func1@plt>: - [ ]*[a-f0-9]+: ff a3 10 00 00 00 jmp \*0x10\(%ebx\) - [ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0 --[ ]*[a-f0-9]+: e9 d0 ff ff ff jmp 180 <.plt> -+[ ]*[a-f0-9]+: e9 d0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> - - 0+1b0 <func2@plt>: - [ ]*[a-f0-9]+: ff a3 14 00 00 00 jmp \*0x14\(%ebx\) - [ ]*[a-f0-9]+: 68 08 00 00 00 push \$0x8 --[ ]*[a-f0-9]+: e9 c0 ff ff ff jmp 180 <.plt> -+[ ]*[a-f0-9]+: e9 c0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> - - 0+1c0 <\*ABS\*@plt>: - [ ]*[a-f0-9]+: ff a3 18 00 00 00 jmp \*0x18\(%ebx\) - [ ]*[a-f0-9]+: 68 10 00 00 00 push \$0x10 --[ ]*[a-f0-9]+: e9 b0 ff ff ff jmp 180 <.plt> -+[ ]*[a-f0-9]+: e9 b0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d b/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d -index 928a6a78d7..4cc1dc206d 100644 ---- a/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d -+++ b/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d -@@ -9,7 +9,7 @@ - - Disassembly of section .plt: - --0+240 <.plt>: -+0+240 <\*ABS\*\+0x29a@plt-0x10>: - +[a-f0-9]+: ff 35 7a 01 20 00 push 0x20017a\(%rip\) # 2003c0 <_GLOBAL_OFFSET_TABLE_\+0x8> - +[a-f0-9]+: ff 25 7c 01 20 00 jmp \*0x20017c\(%rip\) # 2003c8 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) -@@ -17,22 +17,22 @@ Disassembly of section .plt: - 0+250 <\*ABS\*\+0x29a@plt>: - +[a-f0-9]+: ff 25 7a 01 20 00 jmp \*0x20017a\(%rip\) # 2003d0 <_GLOBAL_OFFSET_TABLE_\+0x18> - +[a-f0-9]+: 68 03 00 00 00 push \$0x3 -- +[a-f0-9]+: e9 e0 ff ff ff jmp 240 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> - - 0+260 <func1@plt>: - +[a-f0-9]+: ff 25 72 01 20 00 jmp \*0x200172\(%rip\) # 2003d8 <func1> - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 d0 ff ff ff jmp 240 <.plt> -+ +[a-f0-9]+: e9 d0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> - - 0+270 <func2@plt>: - +[a-f0-9]+: ff 25 6a 01 20 00 jmp \*0x20016a\(%rip\) # 2003e0 <func2> - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 c0 ff ff ff jmp 240 <.plt> -+ +[a-f0-9]+: e9 c0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> - - 0+280 <\*ABS\*\+0x290@plt>: - +[a-f0-9]+: ff 25 62 01 20 00 jmp \*0x200162\(%rip\) # 2003e8 <_GLOBAL_OFFSET_TABLE_\+0x30> - +[a-f0-9]+: 68 02 00 00 00 push \$0x2 -- +[a-f0-9]+: e9 b0 ff ff ff jmp 240 <.plt> -+ +[a-f0-9]+: e9 b0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-ifunc/pr17154-x86-64.d b/ld/testsuite/ld-ifunc/pr17154-x86-64.d -index 8a6861dcde..9fb23d410e 100644 ---- a/ld/testsuite/ld-ifunc/pr17154-x86-64.d -+++ b/ld/testsuite/ld-ifunc/pr17154-x86-64.d -@@ -13,22 +13,22 @@ - 0+250 <\*ABS\*\+0x29a@plt>: - +[a-f0-9]+: ff 25 5a 01 20 00 jmp \*0x20015a\(%rip\) # 2003b0 <_GLOBAL_OFFSET_TABLE_\+0x18> - +[a-f0-9]+: 68 03 00 00 00 push \$0x3 -- +[a-f0-9]+: e9 e0 ff ff ff jmp 240 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> - - 0+260 <func1@plt>: - +[a-f0-9]+: ff 25 52 01 20 00 jmp \*0x200152\(%rip\) # 2003b8 <func1> - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 d0 ff ff ff jmp 240 <.plt> -+ +[a-f0-9]+: e9 d0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> - - 0+270 <func2@plt>: - +[a-f0-9]+: ff 25 4a 01 20 00 jmp \*0x20014a\(%rip\) # 2003c0 <func2> - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 c0 ff ff ff jmp 240 <.plt> -+ +[a-f0-9]+: e9 c0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> - - 0+280 <\*ABS\*\+0x290@plt>: - +[a-f0-9]+: ff 25 42 01 20 00 jmp \*0x200142\(%rip\) # 2003c8 <_GLOBAL_OFFSET_TABLE_\+0x30> - +[a-f0-9]+: 68 02 00 00 00 push \$0x2 -- +[a-f0-9]+: e9 b0 ff ff ff jmp 240 <.plt> -+ +[a-f0-9]+: e9 b0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-x86-64/bnd-branch-1-now.d b/ld/testsuite/ld-x86-64/bnd-branch-1-now.d -index 9640beac2d..b7bc4e526c 100644 ---- a/ld/testsuite/ld-x86-64/bnd-branch-1-now.d -+++ b/ld/testsuite/ld-x86-64/bnd-branch-1-now.d -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --0+230 <.plt>: -+0+230 <foo2@plt-0x10>: - +[a-f0-9]+: ff 35 82 01 20 00 push 0x200182\(%rip\) # 2003b8 <_GLOBAL_OFFSET_TABLE_\+0x8> - +[a-f0-9]+: ff 25 84 01 20 00 jmp \*0x200184\(%rip\) # 2003c0 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) -@@ -16,22 +16,22 @@ Disassembly of section .plt: - 0+240 <foo2@plt>: - +[a-f0-9]+: ff 25 82 01 20 00 jmp \*0x200182\(%rip\) # 2003c8 <foo2> - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e0 ff ff ff jmp 230 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp 230 <foo2@plt-0x10> - - 0+250 <foo3@plt>: - +[a-f0-9]+: ff 25 7a 01 20 00 jmp \*0x20017a\(%rip\) # 2003d0 <foo3> - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 d0 ff ff ff jmp 230 <.plt> -+ +[a-f0-9]+: e9 d0 ff ff ff jmp 230 <foo2@plt-0x10> - - 0+260 <foo1@plt>: - +[a-f0-9]+: ff 25 72 01 20 00 jmp \*0x200172\(%rip\) # 2003d8 <foo1> - +[a-f0-9]+: 68 02 00 00 00 push \$0x2 -- +[a-f0-9]+: e9 c0 ff ff ff jmp 230 <.plt> -+ +[a-f0-9]+: e9 c0 ff ff ff jmp 230 <foo2@plt-0x10> - - 0+270 <foo4@plt>: - +[a-f0-9]+: ff 25 6a 01 20 00 jmp \*0x20016a\(%rip\) # 2003e0 <foo4> - +[a-f0-9]+: 68 03 00 00 00 push \$0x3 -- +[a-f0-9]+: e9 b0 ff ff ff jmp 230 <.plt> -+ +[a-f0-9]+: e9 b0 ff ff ff jmp 230 <foo2@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d b/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d -index 25af7f81d4..15ecfe1cc5 100644 ---- a/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d -+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d -@@ -13,7 +13,7 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 4b 01 20 00 bnd jmp \*0x20014b\(%rip\) # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 170 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 170 <\*ABS\*\+0x198@plt-0x20> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d b/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d -index 634940d5b1..211d72d233 100644 ---- a/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d -+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d -@@ -13,16 +13,16 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 9b 01 20 00 bnd jmp \*0x20019b\(%rip\) # 2003e8 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 03 00 00 00 push \$0x3 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 240 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 240 <.plt> -+ +[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 240 <.plt> -+ +[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - +[a-f0-9]+: 68 02 00 00 00 push \$0x2 -- +[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 240 <.plt> -+ +[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d -index 7a0356cc69..f80ba15aa3 100644 ---- a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d -+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d -@@ -8,16 +8,16 @@ - [ ]*[a-f0-9]+: f2 ff 25 7b 01 20 00 bnd jmp \*0x20017b\(%rip\)[ ]*(#.*)? - [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - [ ]*[a-f0-9]+: 68 03 00 00 00 push \$0x3 --[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 240 <.plt> -+[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0 --[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 240 <.plt> -+[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 01 00 00 00 push \$0x1 --[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 240 <.plt> -+[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 02 00 00 00 push \$0x2 --[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 240 <.plt> -+[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/bnd-plt-1-now.d b/ld/testsuite/ld-x86-64/bnd-plt-1-now.d -index be5392c45f..24e28210a0 100644 ---- a/ld/testsuite/ld-x86-64/bnd-plt-1-now.d -+++ b/ld/testsuite/ld-x86-64/bnd-plt-1-now.d -@@ -13,16 +13,16 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 a3 01 20 00 bnd jmp \*0x2001a3\(%rip\) # 2003e0 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 230 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 230 <foo2@plt-0x50> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 230 <.plt> -+ +[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 230 <foo2@plt-0x50> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - +[a-f0-9]+: 68 02 00 00 00 push \$0x2 -- +[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 230 <.plt> -+ +[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 230 <foo2@plt-0x50> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - +[a-f0-9]+: 68 03 00 00 00 push \$0x3 -- +[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 230 <.plt> -+ +[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 230 <foo2@plt-0x50> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/bnd-plt-1.d b/ld/testsuite/ld-x86-64/bnd-plt-1.d -index cca370527a..ab3ab45faa 100644 ---- a/ld/testsuite/ld-x86-64/bnd-plt-1.d -+++ b/ld/testsuite/ld-x86-64/bnd-plt-1.d -@@ -13,16 +13,16 @@ Disassembly of section .plt: - [ ]*[a-f0-9]+: f2 ff 25 83 01 20 00 bnd jmp \*0x200183\(%rip\)[ ]*(#.*)? - [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - [ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0 --[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 230 <.plt> -+[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 230 <foo2@plt-0x50> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 01 00 00 00 push \$0x1 --[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 230 <.plt> -+[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 230 <foo2@plt-0x50> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 02 00 00 00 push \$0x2 --[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 230 <.plt> -+[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 230 <foo2@plt-0x50> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - [ ]*[a-f0-9]+: 68 03 00 00 00 push \$0x3 --[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 230 <.plt> -+[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 230 <foo2@plt-0x50> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d -index 2018b11936..b011e3f158 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-1.d b/ld/testsuite/ld-x86-64/ibt-plt-1.d -index d556ec13f6..15563b432d 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-1.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-1.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.*> - +[a-f0-9]+: 90 nop - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.*> - +[a-f0-9]+: 90 nop - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d -index 5168a31c74..a19cece98e 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2a.d b/ld/testsuite/ld-x86-64/ibt-plt-2a.d -index 01401ba141..9278592909 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-2a.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-2a.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp 1f0 <.plt> -+ +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp 1f0 <.*> - +[a-f0-9]+: 90 nop - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp 1f0 <.plt> -+ +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp 1f0 <.*> - +[a-f0-9]+: 90 nop - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d -index 9f9663cca3..b00ab920c0 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2c.d b/ld/testsuite/ld-x86-64/ibt-plt-2c.d -index aa81fb9ddb..b7969d8c57 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-2c.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-2c.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.*> - +[a-f0-9]+: 90 nop - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.*> - +[a-f0-9]+: 90 nop - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d -index bf185d548f..d6f8bb3afb 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp 140 <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3a.d b/ld/testsuite/ld-x86-64/ibt-plt-3a.d -index 27dd93c8e5..9c15ed4f92 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-3a.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-3a.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp 1f0 <.plt> -+ +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp 1f0 <.*> - +[a-f0-9]+: 90 nop - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp 1f0 <.plt> -+ +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp 1f0 <.*> - +[a-f0-9]+: 90 nop - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d -index 66f4705124..f09b1a666a 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: e9 d2 ff ff ff jmp [a-f0-9]+ <bar1@plt-0x30> - +[a-f0-9]+: 66 90 xchg %ax,%ax - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3c.d b/ld/testsuite/ld-x86-64/ibt-plt-3c.d -index 5c918b8b4d..5c19e3dc96 100644 ---- a/ld/testsuite/ld-x86-64/ibt-plt-3c.d -+++ b/ld/testsuite/ld-x86-64/ibt-plt-3c.d -@@ -14,11 +14,11 @@ Disassembly of section .plt: - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.*> - +[a-f0-9]+: 90 nop - +[a-f0-9]+: f3 0f 1e fa endbr64 - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.plt> -+ +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.*> - +[a-f0-9]+: 90 nop - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/mpx3.dd b/ld/testsuite/ld-x86-64/mpx3.dd -index 96e56fc5e0..729b1cf4e9 100644 ---- a/ld/testsuite/ld-x86-64/mpx3.dd -+++ b/ld/testsuite/ld-x86-64/mpx3.dd -@@ -8,7 +8,7 @@ Disassembly of section .plt: - [ ]*[a-f0-9]+: f2 ff ([0-9a-f]{2} ){5} bnd jmp \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10> - [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - [ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0 --[ ]*[a-f0-9]+: f2 e9 ([0-9a-f]{2} ){4} bnd jmp [a-f0-9]+ <.plt> -+[ ]*[a-f0-9]+: f2 e9 ([0-9a-f]{2} ){4} bnd jmp [a-f0-9]+ <call1@plt-0x20> - [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/mpx3n.dd b/ld/testsuite/ld-x86-64/mpx3n.dd -index f4609d5ed6..a1eba8e975 100644 ---- a/ld/testsuite/ld-x86-64/mpx3n.dd -+++ b/ld/testsuite/ld-x86-64/mpx3n.dd -@@ -8,7 +8,7 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 a3 01 20 00 bnd jmp \*0x2001a3\(%rip\) # 6003d0 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 400220 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 400220 <call1@plt-0x20> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/mpx4.dd b/ld/testsuite/ld-x86-64/mpx4.dd -index 35f6869bad..50a0fbca50 100644 ---- a/ld/testsuite/ld-x86-64/mpx4.dd -+++ b/ld/testsuite/ld-x86-64/mpx4.dd -@@ -8,7 +8,7 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 43 01 20 00 bnd jmp \*0x200143\(%rip\) # 600340 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 4001f0 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 4001f0 <call1@plt-0x20> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/mpx4n.dd b/ld/testsuite/ld-x86-64/mpx4n.dd -index 5585610767..92177bb121 100644 ---- a/ld/testsuite/ld-x86-64/mpx4n.dd -+++ b/ld/testsuite/ld-x86-64/mpx4n.dd -@@ -8,7 +8,7 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 63 01 20 00 bnd jmp \*0x200163\(%rip\) # 600360 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 4001f0 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 4001f0 <call1@plt-0x20> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-1.od b/ld/testsuite/ld-x86-64/pe-x86-64-1.od -index 1ff644ee9c..4966d55fb5 100644 ---- a/ld/testsuite/ld-x86-64/pe-x86-64-1.od -+++ b/ld/testsuite/ld-x86-64/pe-x86-64-1.od -@@ -2,11 +2,6 @@ - .*: +file format .* - - SYMBOL TABLE: --0+401000 l d .text\$mn 0000000000000000 .text\$mn --0+402000 l d .xdata 0000000000000000 .xdata --0+402008 l d .pdata 0000000000000000 .pdata --0+403014 l d .bss 0000000000000000 .bss --0+ l d .debug\$S 0000000000000000 .debug\$S - 0+401000 g .text\$mn 0000000000000000 getaddr1 - 0+401020 g .text\$mn 0000000000000000 begin - 0+403014 g .bss 0000000000000000 __bss_start -diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-2.od b/ld/testsuite/ld-x86-64/pe-x86-64-2.od -index 1ff644ee9c..4966d55fb5 100644 ---- a/ld/testsuite/ld-x86-64/pe-x86-64-2.od -+++ b/ld/testsuite/ld-x86-64/pe-x86-64-2.od -@@ -2,11 +2,6 @@ - .*: +file format .* - - SYMBOL TABLE: --0+401000 l d .text\$mn 0000000000000000 .text\$mn --0+402000 l d .xdata 0000000000000000 .xdata --0+402008 l d .pdata 0000000000000000 .pdata --0+403014 l d .bss 0000000000000000 .bss --0+ l d .debug\$S 0000000000000000 .debug\$S - 0+401000 g .text\$mn 0000000000000000 getaddr1 - 0+401020 g .text\$mn 0000000000000000 begin - 0+403014 g .bss 0000000000000000 __bss_start -diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-3.od b/ld/testsuite/ld-x86-64/pe-x86-64-3.od -index 1ff644ee9c..4966d55fb5 100644 ---- a/ld/testsuite/ld-x86-64/pe-x86-64-3.od -+++ b/ld/testsuite/ld-x86-64/pe-x86-64-3.od -@@ -2,11 +2,6 @@ - .*: +file format .* - - SYMBOL TABLE: --0+401000 l d .text\$mn 0000000000000000 .text\$mn --0+402000 l d .xdata 0000000000000000 .xdata --0+402008 l d .pdata 0000000000000000 .pdata --0+403014 l d .bss 0000000000000000 .bss --0+ l d .debug\$S 0000000000000000 .debug\$S - 0+401000 g .text\$mn 0000000000000000 getaddr1 - 0+401020 g .text\$mn 0000000000000000 begin - 0+403014 g .bss 0000000000000000 __bss_start -diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-4.od b/ld/testsuite/ld-x86-64/pe-x86-64-4.od -index 302a345b2e..e0bde11d84 100644 ---- a/ld/testsuite/ld-x86-64/pe-x86-64-4.od -+++ b/ld/testsuite/ld-x86-64/pe-x86-64-4.od -@@ -2,12 +2,6 @@ - .*: +file format .* - - SYMBOL TABLE: --0+401000 l d .text\$mn 0000000000000000 .text\$mn --0+402000 l d .xdata 0000000000000000 .xdata --0+402008 l d .pdata 0000000000000000 .pdata --0+403018 l d .data 0000000000000000 .data --0+403038 l d .bss 0000000000000000 .bss --0+ l d .debug\$S 0000000000000000 .debug\$S - 0+403038 g .bss 0000000000000000 c - 0+401000 g .text\$mn 0000000000000000 begin - 0+403038 g .bss 0000000000000000 __bss_start -diff --git a/ld/testsuite/ld-x86-64/plt.pd b/ld/testsuite/ld-x86-64/plt.pd -index 54a00dffc4..6b4024c5c9 100644 ---- a/ld/testsuite/ld-x86-64/plt.pd -+++ b/ld/testsuite/ld-x86-64/plt.pd -@@ -8,7 +8,7 @@ - - Disassembly of section .plt: - --[0-9a-f]+ <.plt>: -+[0-9a-f]+ <fn1@plt-0x10>: - +[0-9a-f]+: ff 35 ([0-9a-f]{2} ){4} * push 0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x8> - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x10> - +[0-9a-f]+: 0f 1f 40 00 nopl 0x0\(%rax\) -@@ -16,9 +16,9 @@ Disassembly of section .plt: - [0-9a-f]+ <fn1@plt>: - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <fn1> - +[0-9a-f]+: 68 00 00 00 00 push \$0x0 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <fn1@plt-0x10> - - [0-9a-f]+ <fn2@plt>: - +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <fn2> - +[0-9a-f]+: 68 01 00 00 00 push \$0x1 -- +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <.plt> -+ +[0-9a-f]+: e9 ([0-9a-f]{2} ){4} * jmp [0-9a-f]+ <fn1@plt-0x10> -diff --git a/ld/testsuite/ld-x86-64/plt2.dd b/ld/testsuite/ld-x86-64/plt2.dd -index 663ec98192..454bc060dd 100644 ---- a/ld/testsuite/ld-x86-64/plt2.dd -+++ b/ld/testsuite/ld-x86-64/plt2.dd -@@ -9,7 +9,7 @@ - - Disassembly of section .plt: - --0+400220 <.plt>: -+0+400220 <fn1@plt-0x10>: - +[a-f0-9]+: ff 35 7a 01 20 00 push 0x20017a\(%rip\) # 6003a0 <_GLOBAL_OFFSET_TABLE_\+0x8> - +[a-f0-9]+: ff 25 7c 01 20 00 jmp \*0x20017c\(%rip\) # 6003a8 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) -@@ -17,12 +17,12 @@ Disassembly of section .plt: - 0+400230 <fn1@plt>: - +[a-f0-9]+: ff 25 7a 01 20 00 jmp \*0x20017a\(%rip\) # 6003b0 <fn1> - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: e9 e0 ff ff ff jmp 400220 <.plt> -+ +[a-f0-9]+: e9 e0 ff ff ff jmp 400220 <fn1@plt-0x10> - - 0+400240 <fn2@plt>: - +[a-f0-9]+: ff 25 72 01 20 00 jmp \*0x200172\(%rip\) # 6003b8 <fn2> - +[a-f0-9]+: 68 01 00 00 00 push \$0x1 -- +[a-f0-9]+: e9 d0 ff ff ff jmp 400220 <.plt> -+ +[a-f0-9]+: e9 d0 ff ff ff jmp 400220 <fn1@plt-0x10> - - Disassembly of section .text: - -diff --git a/ld/testsuite/ld-x86-64/pr19609-4e.d b/ld/testsuite/ld-x86-64/pr19609-4e.d -index f2634947d6..48adc947e7 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-4e.d -+++ b/ld/testsuite/ld-x86-64/pr19609-4e.d -@@ -9,5 +9,5 @@ - Disassembly of section .text: - - 0+70000000 <_start>: --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.got> --[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.got> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x1000> -+[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_start\+0x1000> -diff --git a/ld/testsuite/ld-x86-64/pr19609-6a.d b/ld/testsuite/ld-x86-64/pr19609-6a.d -index b340287f48..265825d4c6 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-6a.d -+++ b/ld/testsuite/ld-x86-64/pr19609-6a.d -@@ -9,5 +9,5 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.got> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x1000> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr19609-6b.d b/ld/testsuite/ld-x86-64/pr19609-6b.d -index 810023b2b9..1f769eff4d 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-6b.d -+++ b/ld/testsuite/ld-x86-64/pr19609-6b.d -@@ -9,5 +9,5 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.got> -+[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x1000> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr19609-7b.d b/ld/testsuite/ld-x86-64/pr19609-7b.d -index 20b42e838d..d85e5e9425 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-7b.d -+++ b/ld/testsuite/ld-x86-64/pr19609-7b.d -@@ -9,5 +9,5 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * call \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> -+[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * call \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x1000> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr19609-7d.d b/ld/testsuite/ld-x86-64/pr19609-7d.d -index 034a57b1e0..6eb511080d 100644 ---- a/ld/testsuite/ld-x86-64/pr19609-7d.d -+++ b/ld/testsuite/ld-x86-64/pr19609-7d.d -@@ -9,5 +9,5 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: --[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * call \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> -+[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * call \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x1000> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr19636-2l.d b/ld/testsuite/ld-x86-64/pr19636-2l.d -index c9b256dd44..1b894b3e97 100644 ---- a/ld/testsuite/ld-x86-64/pr19636-2l.d -+++ b/ld/testsuite/ld-x86-64/pr19636-2l.d -@@ -20,7 +20,7 @@ Disassembly of section .plt: - Disassembly of section .text: - - 0+140 <_start>: -- +[a-f0-9]+: 48 3b 05 f1 00 20 00 cmp 0x2000f1\(%rip\),%rax # 200238 <.got> -- +[a-f0-9]+: ff 25 f3 00 20 00 jmp \*0x2000f3\(%rip\) # 200240 <.got\+0x8> -- +[a-f0-9]+: e8 de ff ff ff call 130 <.plt\+0x10> -+ +[a-f0-9]+: 48 3b 05 f1 00 20 00 cmp 0x2000f1\(%rip\),%rax # 200238 <_DYNAMIC\+0xe0> -+ +[a-f0-9]+: ff 25 f3 00 20 00 jmp \*0x2000f3\(%rip\) # 200240 <_DYNAMIC\+0xe8> -+ +[a-f0-9]+: e8 de ff ff ff call 130 <_start-0x10> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr20253-1d.d b/ld/testsuite/ld-x86-64/pr20253-1d.d -index 28fbc998ea..f9f03ba840 100644 ---- a/ld/testsuite/ld-x86-64/pr20253-1d.d -+++ b/ld/testsuite/ld-x86-64/pr20253-1d.d -@@ -15,10 +15,10 @@ Disassembly of section .text: - +[a-f0-9]+: c3 ret * - - 0+1ca <_start>: -- +[a-f0-9]+: ff 15 28 01 20 00 call \*0x200128\(%rip\) # 2002f8 <.got> -- +[a-f0-9]+: ff 25 2a 01 20 00 jmp \*0x20012a\(%rip\) # 200300 <.got\+0x8> -- +[a-f0-9]+: 48 c7 05 1f 01 20 00 00 00 00 00 movq \$0x0,0x20011f\(%rip\) # 200300 <.got\+0x8> -- +[a-f0-9]+: 48 83 3d 0f 01 20 00 00 cmpq \$0x0,0x20010f\(%rip\) # 2002f8 <.got> -- +[a-f0-9]+: 48 3b 0d 08 01 20 00 cmp 0x200108\(%rip\),%rcx # 2002f8 <.got> -- +[a-f0-9]+: 48 3b 0d 09 01 20 00 cmp 0x200109\(%rip\),%rcx # 200300 <.got\+0x8> -+ +[a-f0-9]+: ff 15 28 01 20 00 call \*0x200128\(%rip\) # 2002f8 <_DYNAMIC\+0x100> -+ +[a-f0-9]+: ff 25 2a 01 20 00 jmp \*0x20012a\(%rip\) # 200300 <_DYNAMIC\+0x108> -+ +[a-f0-9]+: 48 c7 05 1f 01 20 00 00 00 00 00 movq \$0x0,0x20011f\(%rip\) # 200300 <_DYNAMIC\+0x108> -+ +[a-f0-9]+: 48 83 3d 0f 01 20 00 00 cmpq \$0x0,0x20010f\(%rip\) # 2002f8 <_DYNAMIC\+0x100> -+ +[a-f0-9]+: 48 3b 0d 08 01 20 00 cmp 0x200108\(%rip\),%rcx # 2002f8 <_DYNAMIC\+0x100> -+ +[a-f0-9]+: 48 3b 0d 09 01 20 00 cmp 0x200109\(%rip\),%rcx # 200300 <_DYNAMIC\+0x108> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr20253-1h.d b/ld/testsuite/ld-x86-64/pr20253-1h.d -index 132fa03afc..7d9b1475d5 100644 ---- a/ld/testsuite/ld-x86-64/pr20253-1h.d -+++ b/ld/testsuite/ld-x86-64/pr20253-1h.d -@@ -15,10 +15,10 @@ Disassembly of section .text: - +[a-f0-9]+: c3 ret * - - 0+40008e <_start>: -- +[a-f0-9]+: ff 15 2c 00 20 00 call \*0x20002c\(%rip\) # 6000c0 <.got> -- +[a-f0-9]+: ff 25 2e 00 20 00 jmp \*0x20002e\(%rip\) # 6000c8 <.got\+0x8> -- +[a-f0-9]+: 48 c7 05 23 00 20 00 00 00 00 00 movq \$0x0,0x200023\(%rip\) # 6000c8 <.got\+0x8> -- +[a-f0-9]+: 48 83 3d 13 00 20 00 00 cmpq \$0x0,0x200013\(%rip\) # 6000c0 <.got> -- +[a-f0-9]+: 48 3b 0d 0c 00 20 00 cmp 0x20000c\(%rip\),%rcx # 6000c0 <.got> -- +[a-f0-9]+: 48 3b 0d 0d 00 20 00 cmp 0x20000d\(%rip\),%rcx # 6000c8 <.got\+0x8> -+ +[a-f0-9]+: ff 15 2c 00 20 00 call \*0x20002c\(%rip\) # 6000c0 <_start\+0x200032> -+ +[a-f0-9]+: ff 25 2e 00 20 00 jmp \*0x20002e\(%rip\) # 6000c8 <_start\+0x20003a> -+ +[a-f0-9]+: 48 c7 05 23 00 20 00 00 00 00 00 movq \$0x0,0x200023\(%rip\) # 6000c8 <_start\+0x20003a> -+ +[a-f0-9]+: 48 83 3d 13 00 20 00 00 cmpq \$0x0,0x200013\(%rip\) # 6000c0 <_start\+0x200032> -+ +[a-f0-9]+: 48 3b 0d 0c 00 20 00 cmp 0x20000c\(%rip\),%rcx # 6000c0 <_start\+0x200032> -+ +[a-f0-9]+: 48 3b 0d 0d 00 20 00 cmp 0x20000d\(%rip\),%rcx # 6000c8 <_start\+0x20003a> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr21038b-now.d b/ld/testsuite/ld-x86-64/pr21038b-now.d -index 62e80dc06b..c042b6cf70 100644 ---- a/ld/testsuite/ld-x86-64/pr21038b-now.d -+++ b/ld/testsuite/ld-x86-64/pr21038b-now.d -@@ -54,7 +54,7 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 33 0e 20 00 bnd jmp \*0x200e33\(%rip\) # 200ff0 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1b0 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1b0 <func@plt-0x20> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/pr21038b.d b/ld/testsuite/ld-x86-64/pr21038b.d -index 126c1d2efe..144ed44ccc 100644 ---- a/ld/testsuite/ld-x86-64/pr21038b.d -+++ b/ld/testsuite/ld-x86-64/pr21038b.d -@@ -53,7 +53,7 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 53 0e 20 00 bnd jmp \*0x200e53\(%rip\) # 201010 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1b0 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1b0 <func@plt-0x20> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.sec: -diff --git a/ld/testsuite/ld-x86-64/pr21038c-now.d b/ld/testsuite/ld-x86-64/pr21038c-now.d -index 19a4ea8fcb..2058512b74 100644 ---- a/ld/testsuite/ld-x86-64/pr21038c-now.d -+++ b/ld/testsuite/ld-x86-64/pr21038c-now.d -@@ -63,7 +63,7 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 eb 0d 20 00 bnd jmp \*0x200deb\(%rip\) # 200fe8 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1f0 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1f0 <func1@plt-0x20> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.got: -diff --git a/ld/testsuite/ld-x86-64/pr21038c.d b/ld/testsuite/ld-x86-64/pr21038c.d -index 35e7d83c4e..a62d43a7bc 100644 ---- a/ld/testsuite/ld-x86-64/pr21038c.d -+++ b/ld/testsuite/ld-x86-64/pr21038c.d -@@ -62,7 +62,7 @@ Disassembly of section .plt: - +[a-f0-9]+: f2 ff 25 13 0e 20 00 bnd jmp \*0x200e13\(%rip\) # 201010 <_GLOBAL_OFFSET_TABLE_\+0x10> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 68 00 00 00 00 push \$0x0 -- +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1f0 <.plt> -+ +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1f0 <func1@plt-0x20> - +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) - - Disassembly of section .plt.got: -diff --git a/ld/testsuite/ld-x86-64/pr23854.d b/ld/testsuite/ld-x86-64/pr23854.d -index 95770d3cef..5113a2c44a 100644 ---- a/ld/testsuite/ld-x86-64/pr23854.d -+++ b/ld/testsuite/ld-x86-64/pr23854.d -@@ -7,22 +7,22 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: -- +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> -- +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <.got\+0x8> -- +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <.got\+0x8> -- +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <.got\+0x8> -- +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <.got\+0x8> -- +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <.got\+0x8> -- +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <.got\+0x8> -- +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <.got\+0x8> -- +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <.got\+0x8> -- +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got\+0x8> -+ +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <_start\+0x[a-f0-9]+> -+ +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr25416-3.d b/ld/testsuite/ld-x86-64/pr25416-3.d -index 9c1da13484..26927d9956 100644 ---- a/ld/testsuite/ld-x86-64/pr25416-3.d -+++ b/ld/testsuite/ld-x86-64/pr25416-3.d -@@ -9,8 +9,8 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: -- +[a-f0-9]+: 40 8b 05 ([0-9a-f]{2} ){4}[ \t]+rex mov 0x[a-f0-9]+\(%rip\),%eax[ \t]+# [a-f0-9]+ <.got> -+ +[a-f0-9]+: 40 8b 05 ([0-9a-f]{2} ){4}[ \t]+rex mov 0x[a-f0-9]+\(%rip\),%eax[ \t]+# [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> - +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) - +[a-f0-9]+: 64 8b 0c 25 00 00 00 00 mov %fs:0x0,%ecx -- +[a-f0-9]+: 40 03 0d ([0-9a-f]{2} ){4}[ \t]+rex add 0x[a-f0-9]+\(%rip\),%ecx[ \t]+# [a-f0-9]+ <.got> -+ +[a-f0-9]+: 40 03 0d ([0-9a-f]{2} ){4}[ \t]+rex add 0x[a-f0-9]+\(%rip\),%ecx[ \t]+# [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> - #pass -diff --git a/ld/testsuite/ld-x86-64/pr25416-4.d b/ld/testsuite/ld-x86-64/pr25416-4.d -index 8d91fbc0a6..d98121f1f3 100644 ---- a/ld/testsuite/ld-x86-64/pr25416-4.d -+++ b/ld/testsuite/ld-x86-64/pr25416-4.d -@@ -9,8 +9,8 @@ - Disassembly of section .text: - - [a-f0-9]+ <_start>: -- +[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4}[ \t]+mov 0x[a-f0-9]+\(%rip\),%rax[ \t]+# [a-f0-9]+ <.got> -+ +[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4}[ \t]+mov 0x[a-f0-9]+\(%rip\),%rax[ \t]+# [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> - +[a-f0-9]+: 66 90 xchg %ax,%ax - +[a-f0-9]+: 64 8b 0c 25 00 00 00 00 mov %fs:0x0,%ecx -- +[a-f0-9]+: 40 03 0d ([0-9a-f]{2} ){4}[ \t]+rex add 0x[a-f0-9]+\(%rip\),%ecx[ \t]+# [a-f0-9]+ <.got> -+ +[a-f0-9]+: 40 03 0d ([0-9a-f]{2} ){4}[ \t]+rex add 0x[a-f0-9]+\(%rip\),%ecx[ \t]+# [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> - #pass -diff --git a/ld/testsuite/ld-x86-64/tlsbin.rd b/ld/testsuite/ld-x86-64/tlsbin.rd -index c535732b75..54fe876ecc 100644 ---- a/ld/testsuite/ld-x86-64/tlsbin.rd -+++ b/ld/testsuite/ld-x86-64/tlsbin.rd -@@ -75,19 +75,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - .* NOTYPE +LOCAL +DEFAULT +UND * --.* SECTION +LOCAL +DEFAULT +1 * --.* SECTION +LOCAL +DEFAULT +2 * --.* SECTION +LOCAL +DEFAULT +3 * --.* SECTION +LOCAL +DEFAULT +4 * --.* SECTION +LOCAL +DEFAULT +5 * --.* SECTION +LOCAL +DEFAULT +6 * --.* SECTION +LOCAL +DEFAULT +7 * --.* SECTION +LOCAL +DEFAULT +8 * --.* SECTION +LOCAL +DEFAULT +9 * --.* SECTION +LOCAL +DEFAULT +10 * --.* SECTION +LOCAL +DEFAULT +11 * --.* SECTION +LOCAL +DEFAULT +12 * --.* SECTION +LOCAL +DEFAULT +13 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsbinpic.o - .* TLS +LOCAL +DEFAULT +9 sl1 - .* TLS +LOCAL +DEFAULT +9 sl2 -diff --git a/ld/testsuite/ld-x86-64/tlsbin2.rd b/ld/testsuite/ld-x86-64/tlsbin2.rd -index b1205fe49a..495115eb70 100644 ---- a/ld/testsuite/ld-x86-64/tlsbin2.rd -+++ b/ld/testsuite/ld-x86-64/tlsbin2.rd -@@ -70,17 +70,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - .* NOTYPE +LOCAL +DEFAULT +UND * --.* SECTION +LOCAL +DEFAULT +1 * --.* SECTION +LOCAL +DEFAULT +2 * --.* SECTION +LOCAL +DEFAULT +3 * --.* SECTION +LOCAL +DEFAULT +4 * --.* SECTION +LOCAL +DEFAULT +5 * --.* SECTION +LOCAL +DEFAULT +6 * --.* SECTION +LOCAL +DEFAULT +7 * --.* SECTION +LOCAL +DEFAULT +8 * --.* SECTION +LOCAL +DEFAULT +9 * --.* SECTION +LOCAL +DEFAULT +10 * --.* SECTION +LOCAL +DEFAULT +11 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsbinpic2.o - .* TLS +LOCAL +DEFAULT +7 sl1 - .* TLS +LOCAL +DEFAULT +7 sl2 -diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.rd b/ld/testsuite/ld-x86-64/tlsbindesc.rd -index 9e46ca1d0f..682c4a066a 100644 ---- a/ld/testsuite/ld-x86-64/tlsbindesc.rd -+++ b/ld/testsuite/ld-x86-64/tlsbindesc.rd -@@ -68,17 +68,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsbindesc.o - +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +7 sl1 - +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +7 sl2 -diff --git a/ld/testsuite/ld-x86-64/tlsdesc.rd b/ld/testsuite/ld-x86-64/tlsdesc.rd -index a15c6e0f22..58feb20e55 100644 ---- a/ld/testsuite/ld-x86-64/tlsdesc.rd -+++ b/ld/testsuite/ld-x86-64/tlsdesc.rd -@@ -100,18 +100,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12 * - .* FILE +LOCAL +DEFAULT +ABS .*tlsdesc.o - +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +8 sl1 - +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +8 sl2 -diff --git a/ld/testsuite/ld-x86-64/tlsgdesc.rd b/ld/testsuite/ld-x86-64/tlsgdesc.rd -index 77e8ae3d81..ca8f19bf3f 100644 ---- a/ld/testsuite/ld-x86-64/tlsgdesc.rd -+++ b/ld/testsuite/ld-x86-64/tlsgdesc.rd -@@ -73,16 +73,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * -- +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +8 _DYNAMIC - +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _GLOBAL_OFFSET_TABLE_ - +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 -diff --git a/ld/testsuite/ld-x86-64/tlspic.rd b/ld/testsuite/ld-x86-64/tlspic.rd -index 024e124e51..2e44dc6ac6 100644 ---- a/ld/testsuite/ld-x86-64/tlspic.rd -+++ b/ld/testsuite/ld-x86-64/tlspic.rd -@@ -84,18 +84,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - .* NOTYPE +LOCAL +DEFAULT +UND * --.* SECTION +LOCAL +DEFAULT +1 * --.* SECTION +LOCAL +DEFAULT +2 * --.* SECTION +LOCAL +DEFAULT +3 * --.* SECTION +LOCAL +DEFAULT +4 * --.* SECTION +LOCAL +DEFAULT +5 * --.* SECTION +LOCAL +DEFAULT +6 * --.* SECTION +LOCAL +DEFAULT +7 * --.* SECTION +LOCAL +DEFAULT +8 * --.* SECTION +LOCAL +DEFAULT +9 * --.* SECTION +LOCAL +DEFAULT +10 * --.* SECTION +LOCAL +DEFAULT +11 * --.* SECTION +LOCAL +DEFAULT +12 * - .* FILE +LOCAL +DEFAULT +ABS .*tlspic1.o - .* TLS +LOCAL +DEFAULT +8 sl1 - .* TLS +LOCAL +DEFAULT +8 sl2 -diff --git a/ld/testsuite/ld-x86-64/tlspic2.rd b/ld/testsuite/ld-x86-64/tlspic2.rd -index a39a8fe0d0..60decd2787 100644 ---- a/ld/testsuite/ld-x86-64/tlspic2.rd -+++ b/ld/testsuite/ld-x86-64/tlspic2.rd -@@ -81,18 +81,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: - Symbol table '\.symtab' contains [0-9]+ entries: - +Num: +Value +Size +Type +Bind +Vis +Ndx +Name - .* NOTYPE +LOCAL +DEFAULT +UND * --.* SECTION +LOCAL +DEFAULT +1 * --.* SECTION +LOCAL +DEFAULT +2 * --.* SECTION +LOCAL +DEFAULT +3 * --.* SECTION +LOCAL +DEFAULT +4 * --.* SECTION +LOCAL +DEFAULT +5 * --.* SECTION +LOCAL +DEFAULT +6 * --.* SECTION +LOCAL +DEFAULT +7 * --.* SECTION +LOCAL +DEFAULT +8 * --.* SECTION +LOCAL +DEFAULT +9 * --.* SECTION +LOCAL +DEFAULT +10 * --.* SECTION +LOCAL +DEFAULT +11 * --.* SECTION +LOCAL +DEFAULT +12 * - .* FILE +LOCAL +DEFAULT +ABS .*tlspic3.o - .* TLS +LOCAL +DEFAULT +8 sl1 - .* TLS +LOCAL +DEFAULT +8 sl2 --- -2.30.0 - diff --git a/source/d/binutils/patches/binutils-2.20.51.0.10-copy-osabi.patch b/source/d/binutils/patches/binutils-2.20.51.0.10-copy-osabi.patch deleted file mode 100644 index 6bd9f3df..00000000 --- a/source/d/binutils/patches/binutils-2.20.51.0.10-copy-osabi.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- binutils-2.26.orig/bfd/elf.c 2016-01-25 10:11:33.482288877 +0000 -+++ binutils-2.26/bfd/elf.c 2016-01-25 10:16:48.520223863 +0000 -@@ -1300,6 +1300,13 @@ _bfd_elf_copy_private_bfd_data (bfd *ibf - } - } - -+ /* If the input BFD has the OSABI field set and the -+ output BFD does not, then copy the value. */ -+ if (elf_elfheader (ibfd)->e_ident [EI_OSABI] != ELFOSABI_NONE -+ && elf_elfheader (obfd)->e_ident [EI_OSABI] == ELFOSABI_NONE) -+ elf_elfheader (obfd)->e_ident [EI_OSABI] = -+ elf_elfheader (ibfd)->e_ident [EI_OSABI]; -+ - return TRUE; - } - diff --git a/source/d/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch b/source/d/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch deleted file mode 100644 index 238beb38..00000000 --- a/source/d/binutils/patches/binutils-2.20.51.0.10-sec-merge-emit.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- binutils-2.26.orig/bfd/merge.c 2016-01-25 10:11:33.505289018 +0000 -+++ binutils-2.26/bfd/merge.c 2016-01-25 10:19:56.961381656 +0000 -@@ -334,7 +334,7 @@ sec_merge_emit (bfd *abfd, struct sec_me - - /* Trailing alignment needed? */ - off = sec->size - off; -- if (off != 0) -+ if (off != 0 && alignment_power) - { - if (contents) - memcpy (contents + offset, pad, off); diff --git a/source/d/binutils/patches/binutils-2.24-ldforcele.patch b/source/d/binutils/patches/binutils-2.24-ldforcele.patch deleted file mode 100644 index 194cf1ea..00000000 --- a/source/d/binutils/patches/binutils-2.24-ldforcele.patch +++ /dev/null @@ -1,54 +0,0 @@ -Common subdirectories: ../binutils-2.24.orig/ld/emulparams and ld/emulparams -Common subdirectories: ../binutils-2.24.orig/ld/emultempl and ld/emultempl -diff -up ../binutils-2.24.orig/ld/ldlang.c ld/ldlang.c ---- a/ld/ldlang.c 2014-05-09 10:35:04.589504928 +0100 -+++ b/ld/ldlang.c 2014-05-09 10:35:55.515661478 +0100 -@@ -7096,6 +7096,18 @@ - && little != NULL) - format = little; - -+ if (getenv ("LD_FORCE_LE") != NULL) -+ { -+ if (strcmp (format, "elf64-powerpc") == 0) -+ format = "elf64-powerpcle"; -+ else if (strcmp (format, "elf32-powerpc") == 0) -+ format = "elf32-powerpcle"; -+ else if (strcmp (format, "elf64-big") == 0) -+ format = "elf64-little"; -+ else if (strcmp (format, "elf32-big") == 0) -+ format = "elf32-little"; -+ } -+ - output_target = format; - } - } -Only in ld: ldlang.c.orig -diff -up ../binutils-2.24.orig/ld/ldmain.c ld/ldmain.c ---- a/ld/ldmain.c 2014-05-09 10:35:04.593504941 +0100 -+++ b/ld/ldmain.c 2014-05-09 10:35:55.515661478 +0100 -@@ -603,6 +603,18 @@ - } - } - -+ if ((strncmp (emulation, "elf64ppc", 8) == 0 -+ || strncmp (emulation, "elf32ppc", 8) == 0) -+ && getenv ("LD_FORCE_LE") != NULL) -+ { -+ size_t len = strlen (emulation); -+ char *le = xmalloc (len + 2); -+ memcpy (le, emulation, 5); -+ le[5] = 'l'; -+ memcpy (le + 6, emulation + 5, len - 4); -+ emulation = le; -+ } -+ - return emulation; - } - -Only in ld: ldmain.c.orig -Common subdirectories: ../binutils-2.24.orig/ld/ldscripts and ld/ldscripts -Common subdirectories: ../binutils-2.24.orig/ld/.libs and ld/.libs -Common subdirectories: ../binutils-2.24.orig/ld/po and ld/po -Common subdirectories: ../binutils-2.24.orig/ld/scripttempl and ld/scripttempl -Common subdirectories: ../binutils-2.24.orig/ld/testsuite and ld/testsuite -Common subdirectories: ../binutils-2.24.orig/ld/tmpdir and ld/tmpdir diff --git a/source/d/binutils/patches/binutils-2.27-aarch64-ifunc.patch b/source/d/binutils/patches/binutils-2.27-aarch64-ifunc.patch new file mode 100644 index 00000000..562ef18c --- /dev/null +++ b/source/d/binutils/patches/binutils-2.27-aarch64-ifunc.patch @@ -0,0 +1,11 @@ +diff -rup binutils.orig/bfd/elfnn-aarch64.c binutils-2.27/bfd/elfnn-aarch64.c +--- binutils.orig/bfd/elfnn-aarch64.c 2017-02-21 10:45:19.311956006 +0000 ++++ binutils-2.27/bfd/elfnn-aarch64.c 2017-02-21 11:55:07.517922655 +0000 +@@ -4947,6 +4947,7 @@ elfNN_aarch64_final_link_relocate (reloc + it here if it is defined in a non-shared object. */ + if (h != NULL + && h->type == STT_GNU_IFUNC ++ && (input_section->flags & SEC_ALLOC) + && h->def_regular) + { + asection *plt; diff --git a/source/d/binutils/patches/binutils-CVE-2019-1010204.patch b/source/d/binutils/patches/binutils-CVE-2019-1010204.patch new file mode 100644 index 00000000..56434b10 --- /dev/null +++ b/source/d/binutils/patches/binutils-CVE-2019-1010204.patch @@ -0,0 +1,15 @@ +--- binutils.orig/gold/fileread.cc 2019-08-06 14:22:08.669313110 +0100 ++++ binutils-2.32/gold/fileread.cc 2019-08-06 14:22:28.799177543 +0100 +@@ -381,6 +381,12 @@ File_read::do_read(off_t start, section_ + ssize_t bytes; + if (this->whole_file_view_ != NULL) + { ++ // See PR 23765 for an example of a testcase that triggers this error. ++ if (((ssize_t) start) < 0) ++ gold_fatal(_("%s: read failed, starting offset (%#llx) less than zero"), ++ this->filename().c_str(), ++ static_cast<long long>(start)); ++ + bytes = this->size_ - start; + if (static_cast<section_size_type>(bytes) >= size) + { diff --git a/source/d/binutils/patches/binutils-bfd-close-fds.patch b/source/d/binutils/patches/binutils-bfd-close-fds.patch new file mode 100644 index 00000000..192d4e02 --- /dev/null +++ b/source/d/binutils/patches/binutils-bfd-close-fds.patch @@ -0,0 +1,232 @@ +From 1c611b40e6bfc8029bff7696814330b5bc0ee5c0 Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" <hjl.tools@gmail.com> +Date: Mon, 26 Jul 2021 05:59:55 -0700 +Subject: [PATCH] bfd: Close the file descriptor if there is no archive fd + +Close the file descriptor if there is no archive plugin file descriptor +to avoid running out of file descriptors on thin archives with many +archive members. + +bfd/ + + PR ld/28138 + * plugin.c (bfd_plugin_close_file_descriptor): Close the file + descriptor there is no archive plugin file descriptor. + +ld/ + + PR ld/28138 + * testsuite/ld-plugin/lto.exp: Run tmpdir/pr28138 only for + native build. + + PR ld/28138 + * testsuite/ld-plugin/lto.exp: Run ld/28138 tests. + * testsuite/ld-plugin/pr28138.c: New file. + * testsuite/ld-plugin/pr28138-1.c: Likewise. + * testsuite/ld-plugin/pr28138-2.c: Likewise. + * testsuite/ld-plugin/pr28138-3.c: Likewise. + * testsuite/ld-plugin/pr28138-4.c: Likewise. + * testsuite/ld-plugin/pr28138-5.c: Likewise. + * testsuite/ld-plugin/pr28138-6.c: Likewise. + * testsuite/ld-plugin/pr28138-7.c: Likewise. + +(cherry picked from commit 5a98fb7513b559e20dfebdbaa2a471afda3b4742) +(cherry picked from commit 7dc37e1e1209c80e0bab784df6b6bac335e836f2) +--- + bfd/plugin.c | 8 +++++++ + ld/testsuite/ld-plugin/lto.exp | 34 ++++++++++++++++++++++++++++++ + ld/testsuite/ld-plugin/pr28138-1.c | 6 ++++++ + ld/testsuite/ld-plugin/pr28138-2.c | 6 ++++++ + ld/testsuite/ld-plugin/pr28138-3.c | 6 ++++++ + ld/testsuite/ld-plugin/pr28138-4.c | 6 ++++++ + ld/testsuite/ld-plugin/pr28138-5.c | 6 ++++++ + ld/testsuite/ld-plugin/pr28138-6.c | 6 ++++++ + ld/testsuite/ld-plugin/pr28138-7.c | 6 ++++++ + ld/testsuite/ld-plugin/pr28138.c | 20 ++++++++++++++++++ + 10 files changed, 104 insertions(+) + create mode 100644 ld/testsuite/ld-plugin/pr28138-1.c + create mode 100644 ld/testsuite/ld-plugin/pr28138-2.c + create mode 100644 ld/testsuite/ld-plugin/pr28138-3.c + create mode 100644 ld/testsuite/ld-plugin/pr28138-4.c + create mode 100644 ld/testsuite/ld-plugin/pr28138-5.c + create mode 100644 ld/testsuite/ld-plugin/pr28138-6.c + create mode 100644 ld/testsuite/ld-plugin/pr28138-7.c + create mode 100644 ld/testsuite/ld-plugin/pr28138.c + +diff --git a/bfd/plugin.c b/bfd/plugin.c +index 6cfa2b66470..3bab8febe88 100644 +--- a/bfd/plugin.c ++++ b/bfd/plugin.c +@@ -291,6 +291,14 @@ bfd_plugin_close_file_descriptor (bfd *abfd, int fd) + && !bfd_is_thin_archive (abfd->my_archive)) + abfd = abfd->my_archive; + ++ /* Close the file descriptor if there is no archive plugin file ++ descriptor. */ ++ if (abfd->archive_plugin_fd == -1) ++ { ++ close (fd); ++ return; ++ } ++ + abfd->archive_plugin_fd_open_count--; + /* Dup the archive plugin file descriptor for later use, which + will be closed by _bfd_archive_close_and_cleanup. */ +diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp +index def69e43ab3..999d911ce6a 100644 +--- a/ld/testsuite/ld-plugin/lto.exp ++++ b/ld/testsuite/ld-plugin/lto.exp +@@ -687,6 +687,40 @@ if { [is_elf_format] && [check_lto_shared_available] } { + } + } + ++run_cc_link_tests [list \ ++ [list \ ++ "Build pr28138.a" \ ++ "-T" "" \ ++ {pr28138-1.c pr28138-2.c pr28138-3.c pr28138-4.c pr28138-5.c \ ++ pr28138-6.c pr28138-7.c} {} "pr28138.a" \ ++ ] \ ++ [list \ ++ "Build pr28138.o" \ ++ "" "" \ ++ {pr28138.c} {} \ ++ ] \ ++] ++ ++set exec_output [run_host_cmd "sh" \ ++ "-c \"ulimit -n 20; \ ++ $CC -Btmpdir/ld -o tmpdir/pr28138 \ ++ tmpdir/pr28138.o tmpdir/pr28138.a\""] ++set exec_output [prune_warnings $exec_output] ++if [string match "" $exec_output] then { ++ if { [isnative] } { ++ set exec_output [run_host_cmd "tmpdir/pr28138" ""] ++ if [string match "PASS" $exec_output] then { ++ pass "PR ld/28138" ++ } else { ++ fail "PR ld/28138" ++ } ++ } else { ++ pass "PR ld/28138" ++ } ++} else { ++ fail "PR ld/28138" ++} ++ + set testname "Build liblto-11.a" + remote_file host delete "tmpdir/liblto-11.a" + set catch_output [run_host_cmd "$ar" "rc $plug_opt tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"] +diff --git a/ld/testsuite/ld-plugin/pr28138-1.c b/ld/testsuite/ld-plugin/pr28138-1.c +new file mode 100644 +index 00000000000..51d119e1642 +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr28138-1.c +@@ -0,0 +1,6 @@ ++extern int a0(void); ++int ++a1(void) ++{ ++ return 1 + a0(); ++} +diff --git a/ld/testsuite/ld-plugin/pr28138-2.c b/ld/testsuite/ld-plugin/pr28138-2.c +new file mode 100644 +index 00000000000..1120cd797e9 +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr28138-2.c +@@ -0,0 +1,6 @@ ++extern int a1(void); ++int ++a2(void) ++{ ++ return 1 + a1(); ++} +diff --git a/ld/testsuite/ld-plugin/pr28138-3.c b/ld/testsuite/ld-plugin/pr28138-3.c +new file mode 100644 +index 00000000000..ec464947ee6 +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr28138-3.c +@@ -0,0 +1,6 @@ ++extern int a2(void); ++int ++a3(void) ++{ ++ return 1 + a2(); ++} +diff --git a/ld/testsuite/ld-plugin/pr28138-4.c b/ld/testsuite/ld-plugin/pr28138-4.c +new file mode 100644 +index 00000000000..475701b2c5c +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr28138-4.c +@@ -0,0 +1,6 @@ ++extern int a3(void); ++int ++a4(void) ++{ ++ return 1 + a3(); ++} +diff --git a/ld/testsuite/ld-plugin/pr28138-5.c b/ld/testsuite/ld-plugin/pr28138-5.c +new file mode 100644 +index 00000000000..e24f86c363e +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr28138-5.c +@@ -0,0 +1,6 @@ ++extern int a4(void); ++int ++a5(void) ++{ ++ return 1 + a4(); ++} +diff --git a/ld/testsuite/ld-plugin/pr28138-6.c b/ld/testsuite/ld-plugin/pr28138-6.c +new file mode 100644 +index 00000000000..b5b938bdb21 +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr28138-6.c +@@ -0,0 +1,6 @@ ++extern int a5(void); ++int ++a6(void) ++{ ++ return 1 + a5(); ++} +diff --git a/ld/testsuite/ld-plugin/pr28138-7.c b/ld/testsuite/ld-plugin/pr28138-7.c +new file mode 100644 +index 00000000000..4ef75bf0f0c +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr28138-7.c +@@ -0,0 +1,6 @@ ++extern int a6(void); ++int ++a7(void) ++{ ++ return 1 + a6(); ++} +diff --git a/ld/testsuite/ld-plugin/pr28138.c b/ld/testsuite/ld-plugin/pr28138.c +new file mode 100644 +index 00000000000..68252c9f382 +--- /dev/null ++++ b/ld/testsuite/ld-plugin/pr28138.c +@@ -0,0 +1,20 @@ ++#include <stdio.h> ++ ++extern int a7(void); ++ ++int ++a0(void) ++{ ++ return 0; ++} ++ ++int ++main() ++{ ++ if (a7() == 7) ++ { ++ printf ("PASS\n"); ++ return 0; ++ } ++ return 1; ++} +-- +2.27.0 + diff --git a/source/d/binutils/patches/binutils-do-not-link-with-static-libstdc++.patch b/source/d/binutils/patches/binutils-do-not-link-with-static-libstdc++.patch new file mode 100644 index 00000000..49d46c2e --- /dev/null +++ b/source/d/binutils/patches/binutils-do-not-link-with-static-libstdc++.patch @@ -0,0 +1,83 @@ +diff -rup binutils.orig/configure binutils-2.30/configure +--- binutils.orig/configure 2018-09-24 17:50:06.967172922 +0100 ++++ binutils-2.30/configure 2018-09-24 17:51:16.648624865 +0100 +@@ -4996,49 +4996,6 @@ if test -z "$LD"; then + fi + fi + +-# Check whether -static-libstdc++ -static-libgcc is supported. +-have_static_libs=no +-if test "$GCC" = yes; then +- saved_LDFLAGS="$LDFLAGS" +- +- LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc" +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether g++ accepts -static-libstdc++ -static-libgcc" >&5 +-$as_echo_n "checking whether g++ accepts -static-libstdc++ -static-libgcc... " >&6; } +- ac_ext=cpp +-ac_cpp='$CXXCPP $CPPFLAGS' +-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +- +- +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) +-#error -static-libstdc++ not implemented +-#endif +-int main() {} +-_ACEOF +-if ac_fn_cxx_try_link "$LINENO"; then : +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; }; have_static_libs=yes +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +- ac_ext=c +-ac_cpp='$CPP $CPPFLAGS' +-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +-ac_compiler_gnu=$ac_cv_c_compiler_gnu +- +- +- LDFLAGS="$saved_LDFLAGS" +-fi +- +- + + + if test -n "$ac_tool_prefix"; then +diff -rup binutils.orig/configure.ac binutils-2.30/configure.ac +--- binutils.orig/configure.ac 2018-09-24 17:50:07.241170767 +0100 ++++ binutils-2.30/configure.ac 2018-09-24 17:50:29.908992486 +0100 +@@ -1288,26 +1288,6 @@ if test -z "$LD"; then + fi + fi + +-# Check whether -static-libstdc++ -static-libgcc is supported. +-have_static_libs=no +-if test "$GCC" = yes; then +- saved_LDFLAGS="$LDFLAGS" +- +- LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc" +- AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc]) +- AC_LANG_PUSH(C++) +- AC_LINK_IFELSE([AC_LANG_SOURCE([ +-#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) +-#error -static-libstdc++ not implemented +-#endif +-int main() {}])], +- [AC_MSG_RESULT([yes]); have_static_libs=yes], +- [AC_MSG_RESULT([no])]) +- AC_LANG_POP(C++) +- +- LDFLAGS="$saved_LDFLAGS" +-fi +- + ACX_PROG_GNAT + ACX_PROG_CMP_IGNORE_INITIAL + diff --git a/source/d/binutils/patches/binutils-dwarf-5-dir0.patch b/source/d/binutils/patches/binutils-dwarf-5-dir0.patch new file mode 100644 index 00000000..24233cce --- /dev/null +++ b/source/d/binutils/patches/binutils-dwarf-5-dir0.patch @@ -0,0 +1,201 @@ +diff -rup binutils.orig/gas/dwarf2dbg.c binutils-2.37/gas/dwarf2dbg.c +--- binutils.orig/gas/dwarf2dbg.c 2021-08-09 17:28:17.743318315 +0100 ++++ binutils-2.37/gas/dwarf2dbg.c 2021-08-09 17:28:27.043264112 +0100 +@@ -620,7 +620,22 @@ get_directory_table_entry (const char *d + if (can_use_zero) + { + if (dirs == NULL || dirs[0] == NULL) +- d = 0; ++ { ++ const char * pwd = getpwd (); ++ ++ if (dwarf_level >= 5 && strcmp (dirname, pwd) != 0) ++ { ++ /* In DWARF-5 the 0 entry in the directory table is expected to be ++ the same as the DW_AT_comp_dir (which is set to the current build ++ directory). Since we are about to create a directory entry that ++ is not the same, allocate the current directory first. ++ FIXME: Alternatively we could generate an error message here. */ ++ (void) get_directory_table_entry (pwd, strlen (pwd), true); ++ d = 1; ++ } ++ else ++ d = 0; ++ } + } + else if (d == 0) + d = 1; +@@ -628,8 +643,8 @@ get_directory_table_entry (const char *d + if (d >= dirs_allocated) + { + unsigned int old = dirs_allocated; +- +- dirs_allocated = d + 32; ++#define DIR_TABLE_INCREMENT 32 ++ dirs_allocated = d + DIR_TABLE_INCREMENT; + dirs = XRESIZEVEC (char *, dirs, dirs_allocated); + memset (dirs + old, 0, (dirs_allocated - old) * sizeof (char *)); + } +@@ -779,7 +794,7 @@ allocate_filename_to_slot (const char *d + { + if (dirs == NULL) + { +- dirs_allocated = files[num].dir + 32; ++ dirs_allocated = files[num].dir + DIR_TABLE_INCREMENT; + dirs = XCNEWVEC (char *, dirs_allocated); + } + +@@ -807,7 +822,7 @@ allocate_filename_to_slot (const char *d + { + if (dirs == NULL) + { +- dirs_allocated = files[num].dir + 32; ++ dirs_allocated = files[num].dir + DIR_TABLE_INCREMENT; + dirs = XCNEWVEC (char *, dirs_allocated); + } + +@@ -840,7 +855,7 @@ allocate_filename_to_slot (const char *d + dirlen = strlen (dirname); + file = filename; + } +- ++ + d = get_directory_table_entry (dirname, dirlen, num == 0); + i = num; + +@@ -2082,7 +2097,12 @@ out_dir_and_file_list (segT line_seg, in + Otherwise use pwd as main file directory. */ + if (dirs_in_use > 0 && dirs != NULL && dirs[0] != NULL) + dir = remap_debug_filename (dirs[0]); +- else if (dirs_in_use > 1 && dirs != NULL && dirs[1] != NULL) ++ else if (dirs_in_use > 1 ++ && dirs != NULL ++ && dirs[1] != NULL ++ /* DWARF-5 directory tables expect dir[0] to be the same as ++ DW_AT_comp_dir, which is the same as pwd. */ ++ && dwarf_level < 5) + dir = remap_debug_filename (dirs[1]); + else + dir = remap_debug_filename (getpwd ()); +@@ -2185,8 +2205,8 @@ out_dir_and_file_list (segT line_seg, in + uses slot zero, but that is only set explicitly using a + .file 0 directive. If that isn't used, but file 1 is, + then use that as main file name. */ +- if (DWARF2_LINE_VERSION >= 5 && i == 0 && files_in_use >= 1) +- files[0].filename = files[1].filename; ++ if (DWARF2_LINE_VERSION >= 5 && i == 0 && files_in_use >= 1 && files[0].filename == NULL) ++ files[0].filename = files[1].filename; + else + files[i].filename = ""; + if (DWARF2_LINE_VERSION < 5 || i != 0) +Only in binutils-2.37/gas/testsuite/gas/elf: dwarf-5-dir0.d +Only in binutils-2.37/gas/testsuite/gas/elf: dwarf-5-dir0.s +diff -rup binutils.orig/gas/testsuite/gas/elf/dwarf-5-file0.d binutils-2.37/gas/testsuite/gas/elf/dwarf-5-file0.d +--- binutils.orig/gas/testsuite/gas/elf/dwarf-5-file0.d 2021-08-09 17:28:17.817317884 +0100 ++++ binutils-2.37/gas/testsuite/gas/elf/dwarf-5-file0.d 2021-08-09 17:28:27.043264112 +0100 +@@ -3,17 +3,18 @@ + #readelf: -wl + + #... +- The Directory Table \(offset 0x.*, lines 3, columns 1\): ++ The Directory Table \(offset 0x.*, lines 4, columns 1\): + Entry Name +- 0 \(indirect line string, offset: 0x.*\): master directory +- 1 \(indirect line string, offset: 0x.*\): secondary directory +- 2 \(indirect line string, offset: 0x.*\): /tmp ++#... ++ 1 \(indirect line string, offset: 0x.*\): master directory ++ 2 \(indirect line string, offset: 0x.*\): secondary directory ++ 3 \(indirect line string, offset: 0x.*\): /tmp + + The File Name Table \(offset 0x.*, lines 3, columns 3\): + Entry Dir MD5 Name +- 0 0 0x0 \(indirect line string, offset: 0x.*\): master source file +- 1 1 0x0 \(indirect line string, offset: 0x.*\): secondary source file +- 2 2 0x95828e8bc4f7404dbf7526fb7bd0f192 \(indirect line string, offset: 0x.*\): foo.c ++ 0 1 0x0 \(indirect line string, offset: 0x.*\): master source file ++ 1 2 0x0 \(indirect line string, offset: 0x.*\): secondary source file ++ 2 3 0x95828e8bc4f7404dbf7526fb7bd0f192 \(indirect line string, offset: 0x.*\): foo.c + #pass + + +diff -rup binutils.orig/gas/testsuite/gas/elf/elf.exp binutils-2.37/gas/testsuite/gas/elf/elf.exp +--- binutils.orig/gas/testsuite/gas/elf/elf.exp 2021-08-09 17:28:17.817317884 +0100 ++++ binutils-2.37/gas/testsuite/gas/elf/elf.exp 2021-08-09 17:28:27.044264106 +0100 +@@ -297,6 +297,7 @@ if { [is_elf_format] } then { + run_dump_test "dwarf2-19" $dump_opts + run_dump_test "dwarf2-20" $dump_opts + run_dump_test "dwarf-5-file0" $dump_opts ++ run_dump_test "dwarf-5-dir0" $dump_opts + run_dump_test "dwarf-4-cu" $dump_opts + run_dump_test "dwarf-5-cu" $dump_opts + run_dump_test "dwarf-5-nop-for-line-table" $dump_opts +diff -rup binutils.orig/gas/testsuite/gas/i386/dwarf5-line-1.d binutils-2.37/gas/testsuite/gas/i386/dwarf5-line-1.d +--- binutils.orig/gas/testsuite/gas/i386/dwarf5-line-1.d 2021-08-09 17:28:17.782318088 +0100 ++++ binutils-2.37/gas/testsuite/gas/i386/dwarf5-line-1.d 2021-08-09 17:28:27.044264106 +0100 +@@ -33,7 +33,7 @@ Raw dump of debug contents of section \. + + The Directory Table \(offset 0x.*, lines 2, columns 1\): + Entry Name +- 0 \(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386 ++ 0 \(indirect line string, offset: 0x.*\): .*/gas/testsuite + 1 \(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386 + + The File Name Table \(offset 0x.*, lines 2, columns 3\): +diff -rup binutils.orig/gas/testsuite/gas/i386/dwarf5-line-2.d binutils-2.37/gas/testsuite/gas/i386/dwarf5-line-2.d +--- binutils.orig/gas/testsuite/gas/i386/dwarf5-line-2.d 2021-08-09 17:28:17.785318070 +0100 ++++ binutils-2.37/gas/testsuite/gas/i386/dwarf5-line-2.d 2021-08-09 17:28:27.044264106 +0100 +@@ -33,7 +33,7 @@ Raw dump of debug contents of section \. + + The Directory Table \(offset 0x.*, lines 2, columns 1\): + Entry Name +- 0 \(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386 ++ 0 \(indirect line string, offset: 0x.*\): .*/gas/testsuite + 1 \(indirect line string, offset: 0x.*\): .*/gas/testsuite/gas/i386 + + The File Name Table \(offset 0x.*, lines 1, columns 3\): +--- /dev/null 2021-08-09 07:51:33.817495606 +0100 ++++ binutils-2.37/gas/testsuite/gas/elf/dwarf-5-dir0.s 2021-08-09 17:28:54.787102415 +0100 +@@ -0,0 +1,19 @@ ++ .section .debug_info,"",%progbits ++ .4byte 0x8a ++ .2byte 0x2 ++ .4byte .Ldebug_abbrev0 ++ .byte 0x4 ++ .uleb128 0x1 ++ ++ .file 0 "../not-the-build-directory/master-source-file.c" ++ .line 1 ++ .text ++ .octa 0x12345678901234567890123456789012 ++ ++ .file 1 "secondary directory/secondary source file" ++ .line 2 ++ .word 2 ++ ++ .file 2 "/tmp" "foo.c" md5 0x95828e8bc4f7404dbf7526fb7bd0f192 ++ .line 5 ++ .word 6 +--- /dev/null 2021-08-09 07:51:33.817495606 +0100 ++++ binutils-2.37/gas/testsuite/gas/elf/dwarf-5-dir0.d 2021-08-09 17:28:54.787102415 +0100 +@@ -0,0 +1,20 @@ ++#as: --gdwarf-5 ++#name: DWARF5 dir[0] ++#readelf: -wl ++ ++#... ++ The Directory Table \(offset 0x.*, lines 4, columns 1\): ++ Entry Name ++ 0 \(indirect line string, offset: 0x0\): .*/gas/testsuite ++ 1 \(indirect line string, offset: 0x.*\): ../not-the-build-directory ++ 2 \(indirect line string, offset: 0x.*\): secondary directory ++ 3 \(indirect line string, offset: 0x.*\): /tmp ++ ++ The File Name Table \(offset 0x.*, lines 3, columns 3\): ++ Entry Dir MD5 Name ++ 0 1 0x0 \(indirect line string, offset: 0x.*\): master-source-file.c ++ 1 2 0x0 \(indirect line string, offset: 0x.*\): secondary source file ++ 2 3 0x95828e8bc4f7404dbf7526fb7bd0f192 \(indirect line string, offset: 0x.*\): foo.c ++#pass ++ ++ diff --git a/source/d/binutils/patches/binutils-export-demangle.h.patch b/source/d/binutils/patches/binutils-export-demangle.h.patch new file mode 100644 index 00000000..9716a8bf --- /dev/null +++ b/source/d/binutils/patches/binutils-export-demangle.h.patch @@ -0,0 +1,33 @@ +diff -rup binutils.orig/bfd/Makefile.am binutils-2.32/bfd/Makefile.am +--- binutils.orig/bfd/Makefile.am 2019-02-08 12:22:51.395684251 +0000 ++++ binutils-2.32/bfd/Makefile.am 2019-02-08 12:22:53.970664973 +0000 +@@ -33,7 +33,7 @@ bfdlibdir = @bfdlibdir@ + bfdincludedir = @bfdincludedir@ + bfdlib_LTLIBRARIES = libbfd.la + bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ +- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h ++ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h + else !INSTALL_LIBBFD + # Empty these so that the respective installation directories will not be created. + bfdlibdir = +diff -rup binutils.orig/bfd/Makefile.in binutils-2.32/bfd/Makefile.in +--- binutils.orig/bfd/Makefile.in 2019-02-08 12:21:35.291254044 +0000 ++++ binutils-2.32/bfd/Makefile.in 2019-02-08 12:22:10.163992947 +0000 +@@ -249,7 +249,7 @@ am__can_run_installinfo = \ + esac + am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \ + $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ +- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h ++ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h + HEADERS = $(bfdinclude_HEADERS) + RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +@@ -468,7 +468,7 @@ libbfd_la_LDFLAGS = $(am__append_1) -rel + @INSTALL_LIBBFD_FALSE@bfdinclude_HEADERS = $(am__append_2) + @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ + @INSTALL_LIBBFD_TRUE@ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ +-@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h \ ++@INSTALL_LIBBFD_TRUE@ $(INCDIR)/diagnostics.h $(INCDIR)/demangle.h \ + @INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h $(am__append_2) + @INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@ + @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la diff --git a/source/d/binutils/patches/binutils-filename-in-error-messages.patch b/source/d/binutils/patches/binutils-filename-in-error-messages.patch new file mode 100644 index 00000000..e23d3ecc --- /dev/null +++ b/source/d/binutils/patches/binutils-filename-in-error-messages.patch @@ -0,0 +1,134 @@ +--- binutils.orig/binutils/readelf.c 2021-07-19 12:39:14.206556025 +0100 ++++ binutils-2.37/binutils/readelf.c 2021-07-19 12:44:37.712728732 +0100 +@@ -21873,45 +21873,52 @@ process_file (char * file_name) + struct stat statbuf; + char armag[SARMAG]; + bool ret = true; ++ char * name; ++ char * saved_program_name; ++ ++ /* Overload program_name to include file_name. Doing this means ++ that warning/error messages will positively identify the file ++ concerned even when multiple instances of readelf are running. */ ++ name = xmalloc (strlen (program_name) + strlen (file_name) + 3); ++ sprintf (name, "%s: %s", program_name, file_name); ++ saved_program_name = program_name; ++ program_name = name; + + if (stat (file_name, &statbuf) < 0) + { + if (errno == ENOENT) +- error (_("'%s': No such file\n"), file_name); ++ error (_("No such file\n")); + else +- error (_("Could not locate '%s'. System error message: %s\n"), +- file_name, strerror (errno)); +- return false; ++ error (_("Could not locate file. System error message: %s\n"), ++ strerror (errno)); ++ goto done; + } + + if (! S_ISREG (statbuf.st_mode)) + { +- error (_("'%s' is not an ordinary file\n"), file_name); +- return false; ++ error (_("Not an ordinary file\n")); ++ goto done; + } + + filedata = calloc (1, sizeof * filedata); + if (filedata == NULL) + { + error (_("Out of memory allocating file data structure\n")); +- return false; ++ goto done; + } + + filedata->file_name = file_name; + filedata->handle = fopen (file_name, "rb"); + if (filedata->handle == NULL) + { +- error (_("Input file '%s' is not readable.\n"), file_name); +- free (filedata); +- return false; ++ error (_("Not readable\n")); ++ goto done; + } + + if (fread (armag, SARMAG, 1, filedata->handle) != 1) + { +- error (_("%s: Failed to read file's magic number\n"), file_name); +- fclose (filedata->handle); +- free (filedata); +- return false; ++ error (_("Failed to read file's magic number\n")); ++ goto done; + } + + filedata->file_size = (bfd_size_type) statbuf.st_size; +@@ -21919,33 +21926,39 @@ process_file (char * file_name) + + if (memcmp (armag, ARMAG, SARMAG) == 0) + { +- if (! process_archive (filedata, false)) +- ret = false; ++ if (process_archive (filedata, false)) ++ ret = true; + } + else if (memcmp (armag, ARMAGT, SARMAG) == 0) + { +- if ( ! process_archive (filedata, true)) +- ret = false; ++ if (process_archive (filedata, true)) ++ ret = true; + } + else + { + if (do_archive_index && !check_all) +- error (_("File %s is not an archive so its index cannot be displayed.\n"), +- file_name); ++ error (_("Not an archive so its index cannot be displayed.\n")); + + rewind (filedata->handle); + filedata->archive_file_size = filedata->archive_file_offset = 0; + +- if (! process_object (filedata)) +- ret = false; ++ if (process_object (filedata)) ++ ret = true; + } + +- fclose (filedata->handle); +- free (filedata->section_headers); +- free (filedata->program_headers); +- free (filedata->string_table); +- free (filedata->dump.dump_sects); +- free (filedata); ++ done: ++ if (filedata) ++ { ++ if (filedata->handle != NULL) ++ fclose (filedata->handle); ++ free (filedata->section_headers); ++ free (filedata->program_headers); ++ free (filedata->string_table); ++ free (filedata->dump.dump_sects); ++ free (filedata); ++ } ++ free (program_name); ++ program_name = saved_program_name; + + free (ba_cache.strtab); + ba_cache.strtab = NULL; +--- binutils.orig/binutils/readelf.c 2021-08-10 10:15:22.088016072 +0100 ++++ binutils-2.37/binutils/readelf.c 2021-08-10 10:15:55.567907891 +0100 +@@ -21884,7 +21884,7 @@ process_file (char * file_name) + Filedata * filedata = NULL; + struct stat statbuf; + char armag[SARMAG]; +- bool ret = true; ++ bool ret = false; + char * name; + char * saved_program_name; + diff --git a/source/d/binutils/patches/binutils-fix-testsuite-failures.patch b/source/d/binutils/patches/binutils-fix-testsuite-failures.patch new file mode 100644 index 00000000..c2b19a5e --- /dev/null +++ b/source/d/binutils/patches/binutils-fix-testsuite-failures.patch @@ -0,0 +1,330 @@ +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d 2019-02-15 13:33:21.979627285 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d 2019-02-15 13:40:26.911199033 +0000 +@@ -34,5 +34,6 @@ hook called: claim_file tmpdir/libtext.a + hook called: all symbols read. + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-13.d binutils-2.32/ld/testsuite/ld-plugin/plugin-13.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-13.d 2019-02-15 13:33:21.980627277 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-13.d 2019-02-15 13:41:30.189692800 +0000 +@@ -23,5 +23,3 @@ hook called: claim_file tmpdir/main.o \[ + hook called: claim_file .*/ld/testsuite/ld-plugin/func.c \[@0/.* CLAIMED + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... +-.*main.c.*: undefined reference to `\.?func' +-#... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-14.d binutils-2.32/ld/testsuite/ld-plugin/plugin-14.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-14.d 2019-02-15 13:33:21.977627301 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-14.d 2019-02-15 13:42:03.598430960 +0000 +@@ -27,7 +27,6 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-15.d binutils-2.32/ld/testsuite/ld-plugin/plugin-15.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-15.d 2019-02-15 13:33:21.980627277 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-15.d 2019-02-15 13:42:28.014239600 +0000 +@@ -28,7 +28,6 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-16.d binutils-2.32/ld/testsuite/ld-plugin/plugin-16.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-16.d 2019-02-15 13:33:21.977627301 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-16.d 2019-02-15 13:43:21.309821910 +0000 +@@ -30,9 +30,8 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-17.d binutils-2.32/ld/testsuite/ld-plugin/plugin-17.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-17.d 2019-02-15 13:33:21.977627301 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-17.d 2019-02-15 13:43:54.925558451 +0000 +@@ -31,7 +31,8 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-20.d binutils-2.32/ld/testsuite/ld-plugin/plugin-20.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-20.d 2019-02-15 13:33:21.980627277 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-20.d 2019-02-15 13:49:20.091010016 +0000 +@@ -2,6 +2,5 @@ hook called: all symbols read. + Input: func.c \(tmpdir/libfunc.a\) + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-21.d binutils-2.32/ld/testsuite/ld-plugin/plugin-21.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-21.d 2019-02-15 13:33:21.978627293 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-21.d 2019-02-15 13:49:34.506897033 +0000 +@@ -2,6 +2,5 @@ hook called: all symbols read. + Input: .*/ld/testsuite/ld-plugin/func.c \(.*/ld/testsuite/ld-plugin/func.c\) + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-22.d binutils-2.32/ld/testsuite/ld-plugin/plugin-22.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-22.d 2019-02-15 13:33:21.980627277 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-22.d 2019-02-15 13:50:00.409694022 +0000 +@@ -2,6 +2,5 @@ Claimed: tmpdir/libfunc.a \[@.* + hook called: all symbols read. + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-23.d binutils-2.32/ld/testsuite/ld-plugin/plugin-23.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-23.d 2019-02-15 13:33:21.979627285 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-23.d 2019-02-15 13:50:14.938580156 +0000 +@@ -2,6 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func. + hook called: all symbols read. + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-24.d binutils-2.32/ld/testsuite/ld-plugin/plugin-24.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-24.d 2019-02-15 13:33:21.980627277 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-24.d 2019-02-15 13:49:46.346804240 +0000 +@@ -2,4 +2,5 @@ hook called: all symbols read. + Input: .*/ld/testsuite/ld-plugin/func.c \(.*/ld/testsuite/ld-plugin/func.c\) + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* ++#... + hook called: cleanup. +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-25.d binutils-2.32/ld/testsuite/ld-plugin/plugin-25.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-25.d 2019-02-15 13:33:21.978627293 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-25.d 2019-02-15 13:50:29.322467422 +0000 +@@ -2,4 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func. + hook called: all symbols read. + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.* ++#... + hook called: cleanup. +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d 2019-02-15 13:33:21.977627301 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d 2019-02-15 13:45:05.343006557 +0000 +@@ -1 +1,3 @@ + .*: error: Error ++#... ++ +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-29.d binutils-2.32/ld/testsuite/ld-plugin/plugin-29.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-29.d 2019-02-15 13:33:21.978627293 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-29.d 2019-02-15 13:45:22.764870016 +0000 +@@ -1 +1,2 @@ + .*: warning: Warning ++#... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-30.d binutils-2.32/ld/testsuite/ld-plugin/plugin-30.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-30.d 2019-02-15 13:33:21.976627309 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-30.d 2019-02-15 13:48:57.067190464 +0000 +@@ -24,3 +24,4 @@ hook called: claim_file tmpdir/main.o \[ + hook called: claim_file tmpdir/func.o \[@0/.* not claimed + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + hook called: claim_file tmpdir/libempty.a \[@.* not claimed ++#pass +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-6.d binutils-2.32/ld/testsuite/ld-plugin/plugin-6.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-6.d 2019-02-15 13:33:21.979627285 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-6.d 2019-02-15 13:37:14.672749977 +0000 +@@ -27,7 +27,6 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-7.d binutils-2.32/ld/testsuite/ld-plugin/plugin-7.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-7.d 2019-02-15 13:33:21.977627301 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-7.d 2019-02-15 13:37:58.000400421 +0000 +@@ -28,7 +28,6 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d 2019-02-15 13:33:21.980627277 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d 2019-02-15 13:38:34.096109209 +0000 +@@ -32,7 +32,6 @@ hook called: claim_file tmpdir/text.o \[ + hook called: all symbols read. + Sym: '_?func' Resolution: LDPR_PREVAILING_DEF + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY +-.*: tmpdir/main.o: in function `main': +-.*main.c.*: undefined reference to `\.?func' ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-9.d binutils-2.32/ld/testsuite/ld-plugin/plugin-9.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-9.d 2019-02-15 13:33:21.977627301 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-9.d 2019-02-15 13:39:52.655475403 +0000 +@@ -31,7 +31,8 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/pr20070.d binutils-2.32/ld/testsuite/ld-plugin/pr20070.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/pr20070.d 2019-02-15 13:33:21.976627309 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/pr20070.d 2019-02-15 13:50:56.874251486 +0000 +@@ -5,5 +5,6 @@ Sym: 'weakdef' Resolution: LDPR_PREVAILI + Sym: 'undef' Resolution: LDPR_UNDEF + Sym: 'weakundef' Resolution: LDPR_UNDEF + Sym: 'common' Resolution: LDPR_PREVAILING_DEF_IRONLY ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-srec/srec.exp binutils-2.32/ld/testsuite/ld-srec/srec.exp +--- binutils-2.32.orig/ld/testsuite/ld-srec/srec.exp 2019-02-15 13:33:21.938627615 +0000 ++++ binutils-2.32/ld/testsuite/ld-srec/srec.exp 2019-02-15 13:53:58.744814006 +0000 +@@ -21,6 +21,8 @@ + + # Get the offset from an S-record line to the start of the data. + ++return ++ + proc srec_off { l } { + if [string match "S1*" $l] { + return 8 +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d 2019-02-15 14:10:59.038709514 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d 2019-02-15 14:13:53.532300721 +0000 +@@ -32,7 +32,7 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/libtext.a \[@.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-11.d binutils-2.32/ld/testsuite/ld-plugin/plugin-11.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-11.d 2019-02-15 14:10:59.041709490 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-11.d 2019-02-15 14:14:50.061844322 +0000 +@@ -35,8 +35,9 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY +-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-18.d binutils-2.32/ld/testsuite/ld-plugin/plugin-18.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-18.d 2019-02-15 14:10:58.942710289 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-18.d 2019-02-15 14:15:20.030602369 +0000 +@@ -32,7 +32,8 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/libtext.a \[@.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-19.d binutils-2.32/ld/testsuite/ld-plugin/plugin-19.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-19.d 2019-02-15 14:10:59.024709627 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-19.d 2019-02-15 14:15:54.926320633 +0000 +@@ -35,8 +35,9 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY +-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY ++#... + hook called: cleanup. + #... +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d 2019-02-15 14:10:58.998709837 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d 2019-02-15 14:12:19.856057024 +0000 +@@ -1,3 +1,2 @@ + .*: error: Error + #... +- +diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d +--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d 2019-02-15 14:10:59.074709224 +0000 ++++ binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d 2019-02-15 14:11:48.144313048 +0000 +@@ -30,7 +30,7 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF ++Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rup binutils.orig/ld/testsuite/ld-elfvers/vers24.rd binutils-2.30/ld/testsuite/ld-elfvers/vers24.rd +--- binutils.orig/ld/testsuite/ld-elfvers/vers24.rd 2018-09-05 09:45:44.013108697 +0100 ++++ binutils-2.30/ld/testsuite/ld-elfvers/vers24.rd 2018-09-05 12:06:17.287425232 +0100 +@@ -7,9 +7,9 @@ Symbol table '.dynsym' contains [0-9]+ e + # And ensure the dynamic symbol table contains at least x@VERS.0 + # and foo@@VERS.0 symbols + #... +- +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0 ++ +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0.* + #... +- +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0 ++ +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0.* + #... + Symbol table '.symtab' contains [0-9]+ entries: + #pass +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin.exp binutils-2.30/ld/testsuite/ld-plugin/plugin.exp +--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2018-09-05 09:45:44.023108605 +0100 ++++ binutils-2.30/ld/testsuite/ld-plugin/plugin.exp 2018-09-05 11:18:53.997202105 +0100 +@@ -118,6 +118,12 @@ if { $can_compile && !$failed_compile } + } + } + ++# I do not know why, but the underscore prefix test is going ++# wrong on ppc64le targets. So override it here. ++if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] } { ++ set _ "" ++} ++ + set testobjfiles "tmpdir/main.o tmpdir/func.o tmpdir/text.o" + set testobjfiles_notext "tmpdir/main.o tmpdir/func.o" + set testsrcfiles "tmpdir/main.o $srcdir/$subdir/func.c tmpdir/text.o" diff --git a/source/d/binutils/patches/binutils-gold-i386-gnu-property-notes.patch b/source/d/binutils/patches/binutils-gold-i386-gnu-property-notes.patch new file mode 100644 index 00000000..7831bf7d --- /dev/null +++ b/source/d/binutils/patches/binutils-gold-i386-gnu-property-notes.patch @@ -0,0 +1,193 @@ +diff --git a/gold/i386.cc b/gold/i386.cc +index bf209fe9a86..31161ff091c 100644 +--- a/gold/i386.cc ++++ b/gold/i386.cc +@@ -360,7 +360,11 @@ class Target_i386 : public Sized_target<32, false> + got_(NULL), plt_(NULL), got_plt_(NULL), got_irelative_(NULL), + got_tlsdesc_(NULL), global_offset_table_(NULL), rel_dyn_(NULL), + rel_irelative_(NULL), copy_relocs_(elfcpp::R_386_COPY), +- got_mod_index_offset_(-1U), tls_base_symbol_defined_(false) ++ got_mod_index_offset_(-1U), tls_base_symbol_defined_(false), ++ isa_1_used_(0), isa_1_needed_(0), ++ feature_1_(0), feature_2_used_(0), feature_2_needed_(0), ++ object_isa_1_used_(0), object_feature_1_(0), ++ object_feature_2_used_(0), seen_first_object_(false) + { } + + // Process the relocations to determine unreferenced sections for +@@ -859,6 +863,21 @@ class Target_i386 : public Sized_target<32, false> + this->rel_dyn_section(layout)); + } + ++ // Record a target-specific program property in the .note.gnu.property ++ // section. ++ void ++ record_gnu_property(unsigned int, unsigned int, size_t, ++ const unsigned char*, const Object*); ++ ++ // Merge the target-specific program properties from the current object. ++ void ++ merge_gnu_properties(const Object*); ++ ++ // Finalize the target-specific program properties and add them back to ++ // the layout. ++ void ++ do_finalize_gnu_properties(Layout*) const; ++ + // Information about this specific target which we pass to the + // general Target structure. + static const Target::Target_info i386_info; +@@ -898,6 +917,26 @@ class Target_i386 : public Sized_target<32, false> + unsigned int got_mod_index_offset_; + // True if the _TLS_MODULE_BASE_ symbol has been defined. + bool tls_base_symbol_defined_; ++ ++ // Target-specific program properties, from .note.gnu.property section. ++ // Each bit represents a specific feature. ++ uint32_t isa_1_used_; ++ uint32_t isa_1_needed_; ++ uint32_t feature_1_; ++ uint32_t feature_2_used_; ++ uint32_t feature_2_needed_; ++ // Target-specific properties from the current object. ++ // These bits get ORed into ISA_1_USED_ after all properties for the object ++ // have been processed. But if either is all zeroes (as when the property ++ // is absent from an object), the result should be all zeroes. ++ // (See PR ld/23486.) ++ uint32_t object_isa_1_used_; ++ // These bits get ANDed into FEATURE_1_ after all properties for the object ++ // have been processed. ++ uint32_t object_feature_1_; ++ uint32_t object_feature_2_used_; ++ // Whether we have seen our first object, for use in initializing FEATURE_1_. ++ bool seen_first_object_; + }; + + const Target::Target_info Target_i386::i386_info = +@@ -1042,6 +1081,126 @@ Target_i386::rel_irelative_section(Layout* layout) + return this->rel_irelative_; + } + ++// Record a target-specific program property from the .note.gnu.property ++// section. ++void ++Target_i386::record_gnu_property( ++ unsigned int, unsigned int pr_type, ++ size_t pr_datasz, const unsigned char* pr_data, ++ const Object* object) ++{ ++ uint32_t val = 0; ++ ++ switch (pr_type) ++ { ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED: ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED: ++ if (pr_datasz != 4) ++ { ++ gold_warning(_("%s: corrupt .note.gnu.property section " ++ "(pr_datasz for property %d is not 4)"), ++ object->name().c_str(), pr_type); ++ return; ++ } ++ val = elfcpp::Swap<32, false>::readval(pr_data); ++ break; ++ default: ++ gold_warning(_("%s: unknown program property type 0x%x " ++ "in .note.gnu.property section"), ++ object->name().c_str(), pr_type); ++ break; ++ } ++ ++ switch (pr_type) ++ { ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED: ++ this->object_isa_1_used_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED: ++ this->isa_1_needed_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND: ++ // If we see multiple feature props in one object, OR them together. ++ this->object_feature_1_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED: ++ this->object_feature_2_used_ |= val; ++ break; ++ case elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED: ++ this->feature_2_needed_ |= val; ++ break; ++ } ++} ++ ++// Merge the target-specific program properties from the current object. ++void ++Target_i386::merge_gnu_properties(const Object*) ++{ ++ if (this->seen_first_object_) ++ { ++ // If any object is missing the ISA_1_USED property, we must omit ++ // it from the output file. ++ if (this->object_isa_1_used_ == 0) ++ this->isa_1_used_ = 0; ++ else if (this->isa_1_used_ != 0) ++ this->isa_1_used_ |= this->object_isa_1_used_; ++ this->feature_1_ &= this->object_feature_1_; ++ // If any object is missing the FEATURE_2_USED property, we must ++ // omit it from the output file. ++ if (this->object_feature_2_used_ == 0) ++ this->feature_2_used_ = 0; ++ else if (this->feature_2_used_ != 0) ++ this->feature_2_used_ |= this->object_feature_2_used_; ++ } ++ else ++ { ++ this->isa_1_used_ = this->object_isa_1_used_; ++ this->feature_1_ = this->object_feature_1_; ++ this->feature_2_used_ = this->object_feature_2_used_; ++ this->seen_first_object_ = true; ++ } ++ this->object_isa_1_used_ = 0; ++ this->object_feature_1_ = 0; ++ this->object_feature_2_used_ = 0; ++} ++ ++static inline void ++add_property(Layout* layout, unsigned int pr_type, uint32_t val) ++{ ++ unsigned char buf[4]; ++ elfcpp::Swap<32, false>::writeval(buf, val); ++ layout->add_gnu_property(elfcpp::NT_GNU_PROPERTY_TYPE_0, pr_type, 4, buf); ++} ++ ++// Finalize the target-specific program properties and add them back to ++// the layout. ++void ++Target_i386::do_finalize_gnu_properties(Layout* layout) const ++{ ++ if (this->isa_1_used_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_ISA_1_USED, ++ this->isa_1_used_); ++ if (this->isa_1_needed_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED, ++ this->isa_1_needed_); ++ if (this->feature_1_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_1_AND, ++ this->feature_1_); ++ if (this->feature_2_used_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_USED, ++ this->feature_2_used_); ++ if (this->feature_2_needed_ != 0) ++ add_property(layout, elfcpp::GNU_PROPERTY_X86_FEATURE_2_NEEDED, ++ this->feature_2_needed_); ++} ++ + // Write the first three reserved words of the .got.plt section. + // The remainder of the section is written while writing the PLT + // in Output_data_plt_i386::do_write. diff --git a/source/d/binutils/patches/binutils-gold-mismatched-section-flags.patch b/source/d/binutils/patches/binutils-gold-mismatched-section-flags.patch new file mode 100644 index 00000000..63dba2b4 --- /dev/null +++ b/source/d/binutils/patches/binutils-gold-mismatched-section-flags.patch @@ -0,0 +1,19 @@ +diff -rup binutils.orig/gold/layout.cc binutils-2.32/gold/layout.cc +--- binutils.orig/gold/layout.cc 2019-06-24 14:37:36.013086899 +0100 ++++ binutils-2.32/gold/layout.cc 2019-06-24 14:41:40.054517479 +0100 +@@ -868,6 +868,7 @@ Layout::get_output_section(const char* n + && (same_name->flags() & elfcpp::SHF_TLS) == 0) + os = same_name; + } ++#if 0 /* BZ 1722715, PR 17556. */ + else if ((flags & elfcpp::SHF_TLS) == 0) + { + elfcpp::Elf_Xword zero_flags = 0; +@@ -878,6 +879,7 @@ Layout::get_output_section(const char* n + if (p != this->section_name_map_.end()) + os = p->second; + } ++#endif + } + + if (os == NULL) diff --git a/source/d/binutils/patches/binutils-gold-warn-unsupported.patch b/source/d/binutils/patches/binutils-gold-warn-unsupported.patch new file mode 100644 index 00000000..8e00aa3d --- /dev/null +++ b/source/d/binutils/patches/binutils-gold-warn-unsupported.patch @@ -0,0 +1,66 @@ +Only in binutils-2.34/gold: autom4te.cache +diff -rup binutils.orig/gold/configure binutils-2.34/gold/configure +--- binutils.orig/gold/configure 2020-04-20 12:35:13.048297305 +0100 ++++ binutils-2.34/gold/configure 2020-04-20 14:02:06.743725696 +0100 +@@ -5180,7 +5180,8 @@ for targ in $target $canon_targets; do + . ${srcdir}/configure.tgt + + if test "$targ_obj" = "UNKNOWN"; then +- as_fn_error $? "\"unsupported target $targ\"" "$LINENO" 5 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"unsupported target $targ\"" >&5 ++$as_echo "$as_me: WARNING: \"unsupported target $targ\"" >&2;} + else + targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)" + if test "$targ_extra_obj" != ""; then +diff -rup binutils.orig/gold/configure.ac binutils-2.34/gold/configure.ac +--- binutils.orig/gold/configure.ac 2020-04-20 12:35:13.050297291 +0100 ++++ binutils-2.34/gold/configure.ac 2020-04-20 14:01:46.435868770 +0100 +@@ -181,7 +181,7 @@ for targ in $target $canon_targets; do + . ${srcdir}/configure.tgt + + if test "$targ_obj" = "UNKNOWN"; then +- AC_MSG_ERROR("unsupported target $targ") ++ AC_MSG_WARN("unsupported target $targ") + else + targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)" + if test "$targ_extra_obj" != ""; then +--- binutils.orig/ld/configure.tgt 2020-04-20 12:35:12.465301359 +0100 ++++ binutils-2.34/ld/configure.tgt 2020-04-20 14:17:52.123066333 +0100 +@@ -220,7 +220,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi + targ_extra_emuls="elf32bfin" + targ_extra_libpath=$targ_extra_emuls + ;; +-bpf-*-*) targ_emul=elf64bpf ++bpf-* | bpf-*-*) targ_emul=elf64bpf + ;; + cr16-*-elf*) targ_emul=elf32cr16 + ;; +@@ -1026,7 +1026,7 @@ z8k-*-coff) targ_emul=z8002 + targ_extra_ofiles= + ;; + *) +- echo 2>&1 "*** ld does not support target ${targ}" ++ echo 2>&1 "*** ld does not support target '${targ}' NO REALLY" + echo 2>&1 "*** see ld/configure.tgt for supported targets" + exit 1 + +--- binutils.orig/bfd/config.bfd 2020-04-20 12:35:13.038297375 +0100 ++++ binutils-2.34/bfd/config.bfd 2020-04-20 14:25:26.452869193 +0100 +@@ -473,7 +473,7 @@ case "${targ}" in + ;; + + #ifdef BFD64 +- bpf-*-none) ++ bpf-*-none | bpf-*) + targ_defvec=bpf_elf64_le_vec + targ_selvecs=bpf_elf64_be_vec + targ_underscore=yes +@@ -1427,7 +1427,7 @@ case "${targ}" in + ;; + + *) +- echo 1>&2 "*** BFD does not support target ${targ}." ++ echo 1>&2 "*** BFD does not support target '${targ}'. Honest." + echo 1>&2 "*** Look in bfd/config.bfd for supported targets." + exit 1 + ;; diff --git a/source/d/binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch b/source/d/binutils/patches/binutils-libtool-lib64.patch index 142fc7e2..142fc7e2 100644 --- a/source/d/binutils/patches/binutils-2.20.51.0.2-libtool-lib64.patch +++ b/source/d/binutils/patches/binutils-libtool-lib64.patch diff --git a/source/d/binutils/patches/binutils-missing-man-pages.patch b/source/d/binutils/patches/binutils-missing-man-pages.patch new file mode 100644 index 00000000..eff15480 --- /dev/null +++ b/source/d/binutils/patches/binutils-missing-man-pages.patch @@ -0,0 +1,12 @@ +diff -rup binutils.orig/etc/texi2pod.pl binutils-2.37/etc/texi2pod.pl +--- binutils.orig/etc/texi2pod.pl 2021-08-10 10:15:38.063964450 +0100 ++++ binutils-2.37/etc/texi2pod.pl 2021-08-10 16:52:51.705688992 +0100 +@@ -59,6 +59,8 @@ while ($_ = shift) { + $flag = shift; + } + push (@ipath, $flag); ++ } elsif (/^--no-split$/) { ++ # ignore option for makeinfo compatibility + } elsif (/^-/) { + usage(); + } else { diff --git a/source/d/binutils/patches/binutils-no-config-h-check.patch b/source/d/binutils/patches/binutils-no-config-h-check.patch new file mode 100644 index 00000000..c89195a5 --- /dev/null +++ b/source/d/binutils/patches/binutils-no-config-h-check.patch @@ -0,0 +1,28 @@ +--- a/bfd/bfd-in.h 2012-08-02 10:56:34.561769686 +0100 ++++ b/bfd/bfd-in.h 2012-08-02 11:13:27.134797755 +0100 +@@ -25,11 +25,6 @@ + #ifndef __BFD_H_SEEN__ + #define __BFD_H_SEEN__ + +-/* PR 14072: Ensure that config.h is included first. */ +-#if !defined PACKAGE && !defined PACKAGE_VERSION +-#error config.h must be included before this header +-#endif +- + #ifdef __cplusplus + extern "C" { + #endif +--- a/bfd/bfd-in2.h 2012-08-02 10:56:34.349769680 +0100 ++++ b/bfd/bfd-in2.h 2012-08-02 11:13:40.015798113 +0100 +@@ -32,11 +32,6 @@ + #ifndef __BFD_H_SEEN__ + #define __BFD_H_SEEN__ + +-/* PR 14072: Ensure that config.h is included first. */ +-#if !defined PACKAGE && !defined PACKAGE_VERSION +-#error config.h must be included before this header +-#endif +- + #ifdef __cplusplus + extern "C" { + #endif diff --git a/source/d/binutils/patches/binutils-readelf-other-sym-info.patch b/source/d/binutils/patches/binutils-readelf-other-sym-info.patch new file mode 100644 index 00000000..72913bac --- /dev/null +++ b/source/d/binutils/patches/binutils-readelf-other-sym-info.patch @@ -0,0 +1,35 @@ +--- binutils.orig/binutils/readelf.c 2020-07-24 15:08:30.317597020 +0100 ++++ binutils-2.35/binutils/readelf.c 2020-07-24 15:09:39.029155552 +0100 +@@ -12069,11 +12069,13 @@ print_dynamic_symbol (Filedata *filedata + unsigned int vis = ELF_ST_VISIBILITY (psym->st_other); + + printf (" %-7s", get_symbol_visibility (vis)); ++#if 0 + /* Check to see if any other bits in the st_other field are set. + Note - displaying this information disrupts the layout of the + table being generated, but for the moment this case is very rare. */ + if (psym->st_other ^ vis) + printf (" [%s] ", get_symbol_other (filedata, psym->st_other ^ vis)); ++#endif + } + printf (" %4s ", get_symbol_index_type (filedata, psym->st_shndx)); + +@@ -12112,7 +12114,17 @@ print_dynamic_symbol (Filedata *filedata + version_string); + } + +- putchar ('\n'); ++#if 1 ++ { ++ unsigned int vis = ELF_ST_VISIBILITY (psym->st_other); ++ ++ /* Check to see if any other bits in the st_other field are set. */ ++ if (psym->st_other ^ vis) ++ printf (" \t[%s]", get_symbol_other (filedata, psym->st_other ^ vis)); ++ } ++#endif ++ ++ putchar ('\n'); + + if (ELF_ST_BIND (psym->st_info) == STB_LOCAL + && section != NULL diff --git a/source/d/binutils/patches/binutils-revert-PLT-elision.patch b/source/d/binutils/patches/binutils-revert-PLT-elision.patch new file mode 100644 index 00000000..885bbeee --- /dev/null +++ b/source/d/binutils/patches/binutils-revert-PLT-elision.patch @@ -0,0 +1,243 @@ +diff -rup binutils.orig/ld/testsuite/ld-i386/pltgot-1.d binutils-2.29.1/ld/testsuite/ld-i386/pltgot-1.d +--- binutils.orig/ld/testsuite/ld-i386/pltgot-1.d 2017-11-15 13:32:39.335065263 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-i386/pltgot-1.d 2017-11-15 15:03:55.649727195 +0000 +@@ -2,6 +2,7 @@ + #readelf: -S --wide + #as: --32 + ++#pass + #... + +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.* + #... +diff -rup binutils.orig/ld/testsuite/ld-i386/pltgot-2.d binutils-2.29.1/ld/testsuite/ld-i386/pltgot-2.d +--- binutils.orig/ld/testsuite/ld-i386/pltgot-2.d 2017-11-15 13:32:39.329065335 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-i386/pltgot-2.d 2017-11-15 15:04:20.803430034 +0000 +@@ -3,7 +3,6 @@ + #readelf: -d --wide + #as: --32 + +-#failif + #... + +0x[0-9a-f]+ +\(PLTREL.* + #... +diff -rup binutils.orig/ld/testsuite/ld-i386/pr19636-2d.d binutils-2.29.1/ld/testsuite/ld-i386/pr19636-2d.d +--- binutils.orig/ld/testsuite/ld-i386/pr19636-2d.d 2017-11-15 13:32:39.336065251 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-i386/pr19636-2d.d 2017-11-15 15:03:00.413379749 +0000 +@@ -9,7 +9,7 @@ Relocation section '\.rel\.dyn' at offse + [0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_PC32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_GLOB_DAT +0+ +func +- ++#... + Symbol table '\.dynsym' contains [0-9]+ entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + #... +diff -rup binutils.orig/ld/testsuite/ld-i386/pr19636-2e.d binutils-2.29.1/ld/testsuite/ld-i386/pr19636-2e.d +--- binutils.orig/ld/testsuite/ld-i386/pr19636-2e.d 2017-11-15 13:32:39.330065323 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-i386/pr19636-2e.d 2017-11-15 15:03:28.928042882 +0000 +@@ -9,7 +9,7 @@ Relocation section '\.rel\.dyn' at offse + [0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_PC32 +0+ +func + [0-9a-f]+ +[0-9a-f]+ +R_386_GLOB_DAT +0+ +func +- ++#... + Symbol table '\.dynsym' contains [0-9]+ entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + #... +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pltgot-1.d binutils-2.29.1/ld/testsuite/ld-x86-64/pltgot-1.d +--- binutils.orig/ld/testsuite/ld-x86-64/pltgot-1.d 2017-11-15 13:32:39.415064300 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pltgot-1.d 2017-11-15 15:08:39.333375801 +0000 +@@ -2,8 +2,4 @@ + #readelf: -S --wide + #as: --64 + +-#... +- +\[ *[0-9]+\] \.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+10 +.* +-#... +- +\[ *[0-9]+\] \.got\.plt +PROGBITS +[0-9a-f]+ +[0-9a-f]+ +0+18 +.* + #pass +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pltgot-2.d binutils-2.29.1/ld/testsuite/ld-x86-64/pltgot-2.d +--- binutils.orig/ld/testsuite/ld-x86-64/pltgot-2.d 2017-11-15 13:32:39.404064432 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pltgot-2.d 2017-11-15 15:08:59.031143095 +0000 +@@ -3,7 +3,6 @@ + #readelf: -d --wide + #as: --64 + +-#failif + #... + +0x[0-9a-f]+ +\(PLTREL.* + #... +diff -rup binutils.orig/ld/testsuite/ld-x86-64/plt-main.rd binutils-2.29.1/ld/testsuite/ld-x86-64/plt-main.rd +--- binutils.orig/ld/testsuite/ld-x86-64/plt-main.rd 2017-11-15 13:32:39.407064397 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/plt-main.rd 2017-11-15 15:06:17.244054423 +0000 +@@ -1,4 +1,3 @@ +-#failif + #... + [0-9a-f ]+R_X86_64_JUMP_SLOT +0+ +bar \+ 0 + #... +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830a.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830a.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr20830a.d 2017-11-15 13:32:39.412064336 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830a.d 2017-11-15 15:15:09.918750288 +0000 +@@ -20,6 +20,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop ++#pass + + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830a-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830a-now.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr20830a-now.d 2017-11-15 13:32:39.413064324 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830a-now.d 2017-11-15 15:16:08.227055104 +0000 +@@ -20,6 +20,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop ++#pass + + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830b.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830b.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr20830b.d 2017-11-15 13:32:39.413064324 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830b.d 2017-11-15 15:16:20.115913358 +0000 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144 + DW_CFA_nop + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830b-now.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr20830b-now.d 2017-11-15 13:32:39.411064348 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr20830b-now.d 2017-11-15 15:16:29.012807282 +0000 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144 + DW_CFA_nop + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038a.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr21038a.d 2017-11-15 13:32:39.408064384 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a.d 2017-11-15 15:19:48.097433680 +0000 +@@ -19,7 +19,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038a-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a-now.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr21038a-now.d 2017-11-15 13:32:39.401064469 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a-now.d 2017-11-15 15:10:56.077760324 +0000 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4 + DW_CFA_nop + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038b.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr21038b.d 2017-11-15 13:32:39.405064420 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b.d 2017-11-15 15:10:42.828916844 +0000 +@@ -19,6 +19,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop ++#pass + + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038b-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b-now.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr21038b-now.d 2017-11-15 13:32:39.416064288 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b-now.d 2017-11-15 15:11:11.550577531 +0000 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd + DW_CFA_nop + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038c.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr21038c.d 2017-11-15 13:32:39.411064348 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c.d 2017-11-15 15:09:52.664509478 +0000 +@@ -19,7 +19,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231 + DW_CFA_nop + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038c-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c-now.d +--- binutils.orig/ld/testsuite/ld-x86-64/pr21038c-now.d 2017-11-15 13:32:39.413064324 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c-now.d 2017-11-15 15:11:22.975442559 +0000 +@@ -20,7 +20,8 @@ Contents of the .eh_frame section: + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop +- ++#pass ++ + 0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231 + DW_CFA_nop + DW_CFA_nop +diff -rup binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd +--- binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 13:32:39.417064276 +0000 ++++ binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 15:05:02.950932110 +0000 +@@ -14,6 +14,7 @@ Section Headers: + +\[[ 0-9]+\] .dynsym +.* + +\[[ 0-9]+\] .dynstr +.* + +\[[ 0-9]+\] .rela.dyn +.* ++#pass + +\[[ 0-9]+\] .plt +.* + +\[[ 0-9]+\] .plt.got +.* + +\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+31a 00 +AX +0 +0 4096 +--- binutils.orig/bfd/elfxx-x86.c 2018-01-22 15:59:25.875788033 +0000 ++++ binutils-2.30.0/bfd/elfxx-x86.c 2018-01-22 16:00:20.789146597 +0000 +@@ -107,7 +107,7 @@ elf_x86_allocate_dynrelocs (struct elf_l + plt_entry_size = htab->plt.plt_entry_size; + + resolved_to_zero = UNDEFINED_WEAK_RESOLVED_TO_ZERO (info, eh); +- ++#if 0 + /* We can't use the GOT PLT if pointer equality is needed since + finish_dynamic_symbol won't clear symbol value and the dynamic + linker won't update the GOT slot. We will get into an infinite +@@ -125,7 +125,7 @@ elf_x86_allocate_dynrelocs (struct elf_l + /* Use the GOT PLT. */ + eh->plt_got.refcount = 1; + } +- ++#endif + /* Since STT_GNU_IFUNC symbol must go through PLT, we handle it + here if it is defined and referenced in a non-shared object. */ + if (h->type == STT_GNU_IFUNC +--- binutils.orig/ld/testsuite/ld-i386/pr20830.d 2018-07-09 09:49:51.277239857 +0100 ++++ binutils-2.30.90/ld/testsuite/ld-i386/pr20830.d 2018-07-09 10:32:41.113356733 +0100 +@@ -19,7 +19,7 @@ Contents of the .eh_frame section: + DW_CFA_offset: r8 \(eip\) at cfa-4 + DW_CFA_nop + DW_CFA_nop +- ++#pass + 0+18 00000010 0000001c FDE cie=00000000 pc=00000128..00000133 + DW_CFA_nop + DW_CFA_nop diff --git a/source/d/binutils/patches/binutils-special-sections-in-groups.patch b/source/d/binutils/patches/binutils-special-sections-in-groups.patch new file mode 100644 index 00000000..7de5a93f --- /dev/null +++ b/source/d/binutils/patches/binutils-special-sections-in-groups.patch @@ -0,0 +1,27 @@ +--- binutils.orig/bfd/elf.c 2018-10-19 11:42:10.107277490 +0100 ++++ binutils-2.31.1/bfd/elf.c 2018-10-19 11:44:33.607105801 +0100 +@@ -830,7 +830,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd + } + } + +- if (elf_group_name (newsect) == NULL) ++ if (elf_group_name (newsect) == NULL ++ /* OS specific sections might be in a group (eg ARM's ARM_EXIDX section) ++ but they will not have been added to the group because they do not ++ have contents that the ELF code in the BFD library knows how to ++ process. This is OK though - we rely upon the target backends to ++ handle these sections for us. */ ++ && hdr->sh_type < SHT_LOOS) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%pB: no group info for section '%pA'"), +@@ -936,7 +942,8 @@ _bfd_elf_setup_sections (bfd *abfd) + else if (idx->shdr->bfd_section) + elf_sec_group (idx->shdr->bfd_section) = shdr->bfd_section; + else if (idx->shdr->sh_type != SHT_RELA +- && idx->shdr->sh_type != SHT_REL) ++ && idx->shdr->sh_type != SHT_REL ++ && idx->shdr->sh_type < SHT_LOOS) + { + /* There are some unknown sections in the group. */ + _bfd_error_handler diff --git a/source/d/binutils/patches/binutils-testsuite-fixes.patch b/source/d/binutils/patches/binutils-testsuite-fixes.patch new file mode 100644 index 00000000..3583682d --- /dev/null +++ b/source/d/binutils/patches/binutils-testsuite-fixes.patch @@ -0,0 +1,952 @@ +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-10.d binutils-2.36.1/ld/testsuite/ld-plugin/plugin-10.d +--- binutils.orig/ld/testsuite/ld-plugin/plugin-10.d 2021-02-12 10:13:11.116049499 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-10.d 2021-02-12 10:23:44.298370984 +0000 +@@ -32,7 +32,7 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/libtext.a \[@.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-11.d binutils-2.36.1/ld/testsuite/ld-plugin/plugin-11.d +--- binutils.orig/ld/testsuite/ld-plugin/plugin-11.d 2021-02-12 10:13:11.119049477 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-11.d 2021-02-12 10:50:40.973828943 +0000 +@@ -35,9 +35,9 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY +-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?text' Resolution: LDPR_PREVAILING_DE.* + #... + hook called: cleanup. + #... +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-16.d binutils-2.36.1/ld/testsuite/ld-plugin/plugin-16.d +--- binutils.orig/ld/testsuite/ld-plugin/plugin-16.d 2021-02-12 10:13:11.119049477 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-16.d 2021-02-12 10:29:31.510843797 +0000 +@@ -30,7 +30,7 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-17.d binutils-2.36.1/ld/testsuite/ld-plugin/plugin-17.d +--- binutils.orig/ld/testsuite/ld-plugin/plugin-17.d 2021-02-12 10:13:11.116049499 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-17.d 2021-02-12 10:35:13.348404638 +0000 +@@ -31,7 +31,7 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-18.d binutils-2.36.1/ld/testsuite/ld-plugin/plugin-18.d +--- binutils.orig/ld/testsuite/ld-plugin/plugin-18.d 2021-02-12 10:13:11.118049484 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-18.d 2021-02-12 10:29:47.974726314 +0000 +@@ -32,7 +32,7 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/libtext.a \[@.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-19.d binutils-2.36.1/ld/testsuite/ld-plugin/plugin-19.d +--- binutils.orig/ld/testsuite/ld-plugin/plugin-19.d 2021-02-12 10:13:11.116049499 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-19.d 2021-02-12 10:30:31.990412245 +0000 +@@ -35,9 +35,9 @@ hook called: claim_file .*/ld/testsuite/ + hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY +-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?text' Resolution: LDPR_PREVAILING_DE.* + #... + hook called: cleanup. + #... +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-8.d binutils-2.36.1/ld/testsuite/ld-plugin/plugin-8.d +--- binutils.orig/ld/testsuite/ld-plugin/plugin-8.d 2021-02-12 10:13:11.118049484 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-8.d 2021-02-12 10:23:18.489561148 +0000 +@@ -30,7 +30,7 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin-9.d binutils-2.36.1/ld/testsuite/ld-plugin/plugin-9.d +--- binutils.orig/ld/testsuite/ld-plugin/plugin-9.d 2021-02-12 10:13:11.119049477 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-9.d 2021-02-12 10:23:34.417443785 +0000 +@@ -31,7 +31,7 @@ hook called: claim_file tmpdir/func.o \[ + hook called: claim_file tmpdir/text.o \[@0/.* not claimed + #... + hook called: all symbols read. +-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY ++Sym: '_?func' Resolution: LDPR_PREVAILING_DE.* + Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY + #... + hook called: cleanup. +diff -rup binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.36.1/ld/testsuite/ld-x86-64/x86-64.exp +--- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2021-02-12 10:13:11.177049047 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-x86-64/x86-64.exp 2021-02-12 10:57:23.339975059 +0000 +@@ -1437,22 +1437,6 @@ if { [isnative] && [check_compiler_avail + } else { + run_cc_link_tests [list \ + [list \ +- "Build pr22001-1b" \ +- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \ +- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \ +- { pr22001-1c.c } \ +- {{error_output "pr22001-1b.err"}} \ +- "pr22001-1b" \ +- ] \ +- [list \ +- "Build pr21997-1b" \ +- "$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \ +- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \ +- { pr21997-1c.c } \ +- {{error_output "pr21997-1b.err"}} \ +- "pr21997-1b" \ +- ] \ +- [list \ + "Build lam-u48.so" \ + "-shared -Wl,-z,lam-u48" \ + "" \ +@@ -1766,49 +1750,6 @@ if { [isnative] && [check_compiler_avail + if { [istarget "x86_64-*-linux*"] \ + && ![istarget "x86_64-*-linux*-gnux32"]} { + +- run_cc_link_tests [list \ +- [list \ +- "Build plt-main with -z bndplt" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \ +- { plt-main5.c } \ +- {{objdump {-drw} plt-main-bnd.dd}} \ +- "plt-main-bnd" \ +- ] \ +- [list \ +- "Build plt-main with PIE and -z bndplt" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -pie \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \ +- { plt-main5.c } \ +- {{objdump {-drw} plt-main-bnd.dd}} \ +- "plt-main-pie-bnd" \ +- ] \ +- [list \ +- "Build plt-main with -z bndplt -z now" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \ +- { plt-main5.c } \ +- {{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \ +- "plt-main-bnd-now" \ +- ] \ +- [list \ +- "Build plt-main with PIE and -z bndplt -z now" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now -pie \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes $NOCF_PROTECTION_CFLAGS" \ +- { plt-main5.c } \ +- {{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \ +- "plt-main-pie-bnd-now" \ +- ] \ +- ] +- + run_ld_link_exec_tests [list \ + [list \ + "Run plt-main with -z bndplt" \ +@@ -1893,66 +1834,6 @@ if { [isnative] && [check_compiler_avail + set pltdump {{objdump {-drw} plt-main-ibt.dd}} + set pltsecdump {{readelf {-SW} plt-main-ibt-now.rd} {objdump {-drw} plt-main-ibt.dd}} + } +- run_cc_link_tests [list \ +- [list \ +- "Build plt-main with -z ibtplt" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- $pltdump \ +- "plt-main-ibt" \ +- ] \ +- [list \ +- "Build plt-main with PIE and -z ibtplt" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -pie \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- $pltdump \ +- "plt-main-pie-ibt" \ +- ] \ +- [list \ +- "Build plt-main with -z ibtplt -z now" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- $pltsecdump \ +- "plt-main-ibt-now" \ +- ] \ +- [list \ +- "Build plt-main with PIE and -z ibtplt -z now" \ +- "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ +- tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now -pie \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- $pltsecdump \ +- "plt-main-pie-ibt-now" \ +- ] \ +- [list \ +- "Build libibtplt-lib.so with -z ibtplt" \ +- "-shared -z ibtplt \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes" \ +- { plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \ +- $pltdump \ +- "libibtplt-lib.so" \ +- ] \ +- [list \ +- "Build libibtplt--now-lib.so with -z ibtplt -z now" \ +- "-shared -z ibtplt -z now \ +- -z noseparate-code -z max-page-size=0x200000" \ +- "-fPIC -Wa,-mx86-used-note=yes" \ +- { plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \ +- $pltdump \ +- "libibtplt-now-lib.so" \ +- ] \ +- ] + + run_ld_link_exec_tests [list \ + [list \ +diff -rup binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-2.36.1/ld/testsuite/ld-x86-64/x86-64.exp +--- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2021-02-12 11:44:39.121364751 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-x86-64/x86-64.exp 2021-02-12 11:46:27.505597689 +0000 +@@ -1878,24 +1878,6 @@ if { [isnative] && [check_compiler_avail + "plt-main.out" \ + "-fPIC" \ + ] \ +- [list \ +- "Run plt-main with libibtplt-lib.so -z ibtplt" \ +- "-Wl,--no-as-needed,-z,ibtplt tmpdir/libibtplt-lib.so \ +- tmpdir/libplt-lib.so" \ +- "-Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- "plt-main-ibt-lib" \ +- "plt-main.out" \ +- ] \ +- [list \ +- "Run plt-main with libibtplt-lib.so -z ibtplt -z now" \ +- "-Wl,--no-as-needed,-z,ibtplt,-z,now \ +- tmpdir/libibtplt-now-lib.so tmpdir/libplt-lib.so" \ +- "-Wa,-mx86-used-note=yes" \ +- { plt-main5.c } \ +- "plt-main-ibt-now-lib" \ +- "plt-main.out" \ +- ] \ + ] + + if { [check_ifunc_attribute_available] } { +@@ -1922,7 +1904,6 @@ if { [isnative] && [check_compiler_avail + } + } + +- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" + undefined_weak "-fPIE" "" + undefined_weak "-fPIE" "-pie" + undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak" +--- binutils.orig/ld/testsuite/ld-plugin/plugin-12.d 2021-02-12 11:44:39.076365068 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-12.d 2021-02-12 12:01:48.091931654 +0000 +@@ -1,5 +1,5 @@ + #... +-.*: symbol `func' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DEF ++.*: symbol `func' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DE.* + .*: symbol `func1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DEF_IRONLY + .*: symbol `func2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY + .*: symbol `func3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY +--- binutils.orig/ld/testsuite/ld-plugin/plugin-12.d 2021-02-12 14:14:25.023160021 +0000 ++++ binutils-2.36.1/ld/testsuite/ld-plugin/plugin-12.d 2021-02-12 14:19:29.106923745 +0000 +@@ -1,6 +1,6 @@ + #... +-.*: symbol `func' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DE.* +-.*: symbol `func1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DEF_IRONLY +-.*: symbol `func2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY +-.*: symbol `func3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY ++.*: symbol `.*unc' definition: DEF, visibility: DEFAULT, resolution: PREVAILING_DE.* ++.*: symbol `.*unc1' definition: DEF, visibility: PROTECTED, resolution: PREVAILING_DEF_IRONLY ++.*: symbol `.*unc2' definition: DEF, visibility: INTERNAL, resolution: PREVAILING_DEF_IRONLY ++.*: symbol `.*unc3' definition: DEF, visibility: HIDDEN, resolution: PREVAILING_DEF_IRONLY + #pass +--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-07-19 12:39:14.240555833 +0100 ++++ binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-now.d 2021-07-19 12:50:27.753751551 +0100 +@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] ++ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] + 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] + 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc + + Symbol table '\.symtab' contains 35 entries: +@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr + 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.* + 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.* + 9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* ++ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x + 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT .* ++ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT .* + 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x + 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* + 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc + 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def + 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x + 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT .* + 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .* + 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-07-19 12:39:14.235555861 +0100 ++++ binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-r.d 2021-07-19 12:51:04.981541273 +0100 +@@ -37,24 +37,24 @@ Symbol table '\.symtab' contains 26 entr + 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3.* + 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4.* + 4: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 6: 0000000000000000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT .* ++ 6: 0000000000000000 0 IFUNC LOCAL DEFAULT .* + 7: 0000000000000000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 8: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 9: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 \$x + 10: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 12: 0000000000000038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 11: 0000000000000038 0 NOTYPE LOCAL DEFAULT .* ++ 12: 0000000000000038 0 IFUNC LOCAL DEFAULT .* + 13: 0000000000000038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 14: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 15: 0000000000000038 0 NOTYPE LOCAL DEFAULT 1 \$x + 16: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 17: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 18: 0000000000000000 0 NOTYPE GLOBAL HIDDEN .* + 19: 0000000000000000 0 IFUNC GLOBAL HIDDEN 1 f_base_global_hidden_ifunc +- 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 20: 0000000000000000 0 IFUNC GLOBAL DEFAULT .* + 21: 0000000000000000 0 NOTYPE GLOBAL HIDDEN 1 f_base_global_hidden_def +- 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 22: 0000000000000000 0 IFUNC GLOBAL HIDDEN .* + 23: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 24: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* + 25: 0000000000000000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +--- binutils.orig/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-07-19 12:39:14.235555861 +0100 ++++ binutils-2.37/ld/testsuite/ld-aarch64/variant_pcs-shared.d 2021-07-19 12:51:38.076354339 +0100 +@@ -23,10 +23,10 @@ Symbol table '\.dynsym' contains 7 entri + Num: Value Size Type Bind Vis Ndx Name + 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND + 1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT[ ]+UND f_spec_global_default_undef[ ]+\[VARIANT_PCS\] ++ 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT[ ]+1 f_spec_global_default_ifunc[ ]+\[VARIANT_PCS\] + 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT[ ]+1 f_spec_global_default_def[ ]+\[VARIANT_PCS\] + 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc + + Symbol table '\.symtab' contains 35 entries: +@@ -41,28 +41,28 @@ Symbol table '\.symtab' contains 35 entr + 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.* + 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.* + 9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o +- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local +- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc ++ 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* ++ 11: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc + 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local + 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x + 15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o +- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2 +- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc ++ 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT .* ++ 17: 0000000000008038 0 IFUNC LOCAL DEFAULT .* + 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc + 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2 + 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x + 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC +- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def ++ 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT .* + 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc + 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def + 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc ++ 27: 0000000000008000 0 IFUNC LOCAL DEFAULT .* + 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x + 29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef +- 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef +- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc ++ 30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT .* ++ 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT .* + 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def +- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def ++ 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT .* + 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc +--- binutils.orig/gold/main.cc 2021-07-19 12:39:14.643553557 +0100 ++++ binutils-2.37/gold/main.cc 2021-07-19 12:53:40.043665415 +0100 +@@ -290,16 +290,6 @@ main(int argc, char** argv) + elapsed.sys / 1000, (elapsed.sys % 1000) * 1000, + elapsed.wall / 1000, (elapsed.wall % 1000) * 1000); + +-#if defined(HAVE_MALLINFO2) +- struct mallinfo2 m = mallinfo2(); +- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"), +- program_name, static_cast<long long>(m.arena)); +-#elif defined(HAVE_MALLINFO) +- struct mallinfo m = mallinfo(); +- fprintf(stderr, _("%s: total space allocated by malloc: %lld bytes\n"), +- program_name, static_cast<long long>(m.arena)); +-#endif +- + File_read::print_stats(); + Archive::print_stats(); + Lib_group::print_stats(); +--- binutils.orig/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d 2021-07-19 14:51:48.859666911 +0100 ++++ binutils-2.37/ld/testsuite/ld-aarch64/tls-relax-gdesc-le-now.d 2021-07-19 14:59:56.130065901 +0100 +@@ -11,7 +11,7 @@ + 0x.+ \(PLTRELSZ\) \s+.+ \(bytes\) + 0x.+ \(PLTREL\) \s+RELA + 0x.+ \(JMPREL\) \s+0x.+ +- 0x.+ \(BIND_NOW\) \s+ ++ 0x.+ \(FLAGS\) \s+BIND_NOW + 0x.+ \(FLAGS_1\) \s+ Flags: NOW + 0x.+ \(NULL\) \s+ 0x0 + +--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2021-07-19 14:51:48.905666659 +0100 ++++ binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-19 15:06:56.159875135 +0100 +@@ -119,7 +119,7 @@ if { $can_compile && !$failed_compile } + + # I do not know why, but the underscore prefix test is going + # wrong on ppc64le targets. So override it here. +-if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] } { ++if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] || [istarget *-*-*] } { + set _ "" + } + +--- binutils.orig/ld/testsuite/ld-elf/compress.exp 2021-07-19 14:51:48.982666235 +0100 ++++ binutils-2.37/ld/testsuite/ld-elf/compress.exp 2021-07-19 15:16:14.268931663 +0100 +@@ -168,7 +168,7 @@ if { [regexp_diff tmpdir/$test.out $srcd + set test_name "Link with zlib compressed debug output 1" + set test normal + send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" +--- binutils.orig/ld/testsuite/ld-elf/compress.exp 2021-07-20 09:55:20.387674258 +0100 ++++ binutils-2.37/ld/testsuite/ld-elf/compress.exp 2021-07-20 09:59:51.118189655 +0100 +@@ -167,7 +167,7 @@ if { [regexp_diff tmpdir/$test.out $srcd + + set test_name "Link with zlib compressed debug output 1" + set test normal +-send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n" ++send_log "$READELF -wi tmpdir/$test > tmpdir/$test.out\n" + set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" +@@ -176,8 +176,8 @@ if { [lindex $got 0] != 0 || ![string ma + + set test_name "Link with zlib compressed debug output 2" + set test zlibnormal +-send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"] ++send_log "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" +@@ -203,8 +203,8 @@ if { [regexp_diff tmpdir/$test.out $srcd + + set test_name "Link with zlib-gnu compressed debug output 1" + set test gnunormal +-send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"] ++send_log "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" +@@ -230,8 +230,8 @@ if { [regexp_diff tmpdir/$test.out $srcd + + set test gabinormal + set test_name "Link with zlib-gabi compressed debug output 1" +-send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n" +-set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] ++send_log "$READELF -wi tmpdir/$test > tmpdir/$test.out\n" ++set got [remote_exec host [concat sh -c [list "$READELF -wi tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"] + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + fail "$test_name" +--- binutils.orig/ld/testsuite/ld-elf/shared.exp 2021-07-20 09:55:20.398674198 +0100 ++++ binutils-2.37/ld/testsuite/ld-elf/shared.exp 2021-07-20 10:04:13.180751421 +0100 +@@ -1629,6 +1629,7 @@ if [istarget "sparc*-*-*"] { + if { ([istarget "*-*-linux*"] + || [istarget "*-*-nacl*"] + || [istarget "*-*-gnu*"]) ++ && ![istarget "aarch64*-*-*"] && ![istarget "arm*-*-*"] + && ![istarget "mips*-*-*"] } { + run_ld_link_tests [list \ + [list \ +--- binutils.orig/ld/testsuite/ld-gc/pr13683.d 2021-07-20 09:55:20.295674760 +0100 ++++ binutils-2.37/ld/testsuite/ld-gc/pr13683.d 2021-07-20 10:10:30.650663650 +0100 +@@ -2,7 +2,7 @@ + #source: dummy.s + #ld: --gc-sections -e main --defsym foo=foo2 tmpdir/pr13683.o + #nm: --format=bsd +-#xfail: iq2000-*-* lm32-*-* epiphany-*-* mips64vr-*-* frv-*-* m32c-*-* rl78-*-* rx-*-* sh-*-* powerpc*-*-eabivle msp430-*-* ++#xfail: iq2000-*-* lm32-*-* epiphany-*-* mips64vr-*-* frv-*-* m32c-*-* rl78-*-* rx-*-* sh-*-* powerpc*-*-eabivle msp430-*-* aarch64*-*-* arm*-*-* + + # Note - look for both "foo" and "foo2" being defined, non-zero function symbols + +--- binutils.orig/ld/testsuite/ld-gc/pr19161.d 2021-07-20 09:55:20.295674760 +0100 ++++ binutils-2.37/ld/testsuite/ld-gc/pr19161.d 2021-07-20 10:12:36.585966659 +0100 +@@ -2,7 +2,7 @@ + #source: dummy.s + #ld: --gc-sections -e main tmpdir/pr19161-1.o tmpdir/pr19161-2.o + #nm: --format=bsd +-#xfail: epiphany-*-* frv-*-* iq2000-*-* lm32-*-* m32c-*-* ++#xfail: epiphany-*-* frv-*-* iq2000-*-* lm32-*-* m32c-*-* aarch64*-*-* arm*-*-* + #xfail: mips64vr-*-* msp430-*-* powerpc*-*-eabivle rl78-*-* rx-*-* sh*-*-* + + #... +--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-20 09:55:20.315674651 +0100 ++++ binutils-2.37/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-20 10:15:51.096886972 +0100 +@@ -664,6 +664,11 @@ run_cc_link_tests [list \ + ] \ + ] + ++if { [isnative] ++ && !([istarget "powerpc-*-*"] ++ || [istarget "aarch64*-*-*"] || [istarget "arm*-*-*"] ++ || [istarget "sparc*-*-*"] ++ || [istarget "riscv*-*-*"]) } { + run_ld_link_exec_tests [list \ + [list \ + "Run pr18808" \ +@@ -714,6 +719,7 @@ run_ld_link_exec_tests [list \ + "pr18841.out" \ + ] \ + ] ++} + + # The pr23169 testcase is not valid. In general, you can't call ifunc + # resolvers in another binary unless you know what you're doing. In +--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2021-07-20 09:55:20.326674591 +0100 ++++ binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-20 10:20:38.647289474 +0100 +@@ -81,6 +81,10 @@ if { [istarget m681*-*-*] || [istarget m + # otherwise get FAILS due to _.frame + set CFLAGS "$CFLAGS -fomit-frame-pointer" + } ++if { [istarget aarch64*-*-*] || [istarget arm*-*-*] } { ++ set LDFLAGS "$LDFLAGS --defsym __aeabi_unwind_cpp_pr0=0" ++} ++ + # In order to define symbols in plugin options in the list of tests below, + # we need to know if the platform prepends an underscore to C symbols, + # which we find out by compiling the test objects now. If there is any +--- binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-20 12:04:23.815709733 +0100 ++++ binutils.new/ld/testsuite/ld-plugin/plugin.exp 2021-07-20 12:04:16.782748608 +0100 +@@ -81,9 +81,6 @@ if { [istarget m681*-*-*] || [istarget m + # otherwise get FAILS due to _.frame + set CFLAGS "$CFLAGS -fomit-frame-pointer" + } +-if { [istarget aarch64*-*-*] || [istarget arm*-*-*] } { +- set LDFLAGS "$LDFLAGS --defsym __aeabi_unwind_cpp_pr0=0" +-} + + # In order to define symbols in plugin options in the list of tests below, + # we need to know if the platform prepends an underscore to C symbols, +@@ -141,6 +138,9 @@ if [is_pecoff_format] { + #otherwise relocs overflow to symbols defined on the command line + append libs " --image-base=0x10000000" + } ++if { [istarget aarch64*-*-*] || [istarget arm*-*-*] } { ++ append libs " --defsym __aeabi_unwind_cpp_pr0=0" ++} + + set plugin_tests [list \ + [list "load plugin" "-plugin $plugin_path \ +--- binutils.orig/ld/testsuite/ld-elfvsb/elfvsb.exp 2021-07-20 13:28:42.151614203 +0100 ++++ binutils-2.37/ld/testsuite/ld-elfvsb/elfvsb.exp 2021-07-20 13:32:09.558459291 +0100 +@@ -94,6 +94,10 @@ if { [istarget *-*-linux*] + } + } + ++if { [istarget i686*-*-*] } { ++ set support_protected "no" ++} ++ + # The test procedure. + proc visibility_test { visibility progname testname main sh1 sh2 dat args } { + global CC +--- binutils.orig/ld/testsuite/ld-i386/i386.exp 2021-07-20 13:28:42.211613869 +0100 ++++ binutils-2.37/ld/testsuite/ld-i386/i386.exp 2021-07-20 13:40:00.116839084 +0100 +@@ -1057,15 +1057,6 @@ if { [isnative] + "pr18900.out" \ + ] \ + [list \ +- "Run pr19031" \ +- "$NOPIE_LDFLAGS tmpdir/pr19031.so" \ +- "-Wa,-mx86-used-note=yes" \ +- { pr19031b.S pr19031c.c } \ +- "pr19031" \ +- "pr19031.out" \ +- "$NOPIE_CFLAGS" \ +- ] \ +- [list \ + "Run got1" \ + "$NOPIE_LDFLAGS tmpdir/got1d.so" \ + "-Wa,-mx86-used-note=yes" \ +@@ -1117,6 +1108,7 @@ if { [isnative] + ] \ + ] + ++ setup_xfail i686*-*-* + undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" + undefined_weak "-fPIE" "$NOPIE_LDFLAGS" + undefined_weak "-fPIE" "-pie" +--- binutils.orig/ld/testsuite/ld-i386/plt-main.rd 2021-07-20 13:28:42.214613852 +0100 ++++ binutils-2.37/ld/testsuite/ld-i386/plt-main.rd 2021-07-20 13:39:25.781030283 +0100 +@@ -1,4 +1 @@ +-#failif +-#... +-[0-9a-f ]+R_386_JUMP_SLOT +0+ +bar + #... +--- binutils.orig/ld/testsuite/ld-i386/plt-pie-ibt.dd 2021-07-20 13:28:42.211613869 +0100 ++++ binutils-2.37/ld/testsuite/ld-i386/plt-pie-ibt.dd 2021-07-20 13:42:32.515990374 +0100 +@@ -1,7 +1,2 @@ + #... +-Disassembly of section .plt.got: +- +-[a-f0-9]+ <[_a-z]+@plt>: +-[ ]*[a-f0-9]+: f3 0f 1e fb endbr32 +-[ ]*[a-f0-9]+: ff a3 .. .. .. .. jmp +\*\-0x[a-f0-9]+\(%ebx\) + #pass +--- binutils.orig/ld/testsuite/ld-scripts/crossref.exp 2021-07-20 13:28:42.114614409 +0100 ++++ binutils-2.37/ld/testsuite/ld-scripts/crossref.exp 2021-07-20 13:45:27.476015992 +0100 +@@ -147,6 +147,8 @@ set exec_output [prune_warnings $exec_ou + + regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output + ++setup_xfail i686*-*-* ++ + if [string match "" $exec_output] then { + pass $test3 + } else { +@@ -187,6 +189,8 @@ set exec_output [prune_warnings $exec_ou + + regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output + ++setup_xfail i686*-*-* ++ + if [string match "" $exec_output] then { + pass $test6 + } else { +@@ -199,6 +203,8 @@ set exec_output [prune_warnings $exec_ou + + regsub -all "(^|\n)($ld: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output + ++setup_xfail i686*-*-* ++ + if [string match "" $exec_output] then { + fail $test7 + } else { +--- binutils.orig/ld/testsuite/ld-shared/shared.exp 2021-07-20 13:28:42.168614108 +0100 ++++ binutils-2.37/ld/testsuite/ld-shared/shared.exp 2021-07-20 13:46:57.073516995 +0100 +@@ -36,9 +36,6 @@ if { ![istarget hppa*64*-*-hpux*] \ + && ![istarget hppa*-*-linux*] \ + && ![istarget i?86-*-sysv4*] \ + && ![istarget i?86-*-unixware] \ +- && ![istarget i?86-*-elf*] \ +- && ![istarget i?86-*-linux*] \ +- && ![istarget i?86-*-gnu*] \ + && ![istarget *-*-nacl*] \ + && ![istarget ia64-*-elf*] \ + && ![istarget ia64-*-linux*] \ +--- binutils.orig/ld/testsuite/ld-i386/i386.exp 2021-07-20 15:22:27.898561717 +0100 ++++ binutils-2.37/ld/testsuite/ld-i386/i386.exp 2021-07-20 15:24:39.121829544 +0100 +@@ -1108,8 +1108,9 @@ if { [isnative] + ] \ + ] + +- setup_xfail i686*-*-* +- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" ++ if { ! [istarget i686*-*-*] } { ++ undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" ++ } + undefined_weak "-fPIE" "$NOPIE_LDFLAGS" + undefined_weak "-fPIE" "-pie" + undefined_weak "-fPIE" "-z nodynamic-undefined-weak $NOPIE_LDFLAGS" +@@ -1173,7 +1174,7 @@ if { [isnative] + ] \ + ] + +- if { [istarget "i?86-*-linux*"] } { ++ if { [istarget "i?86-*-linux*"] && ! [istarget i686*-*-*] } { + run_cc_link_tests [list \ + [list \ + "Build pr21168.so with -z ibtplt" \ +--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-20 15:22:27.806562231 +0100 ++++ binutils-2.37/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-20 15:28:03.248690669 +0100 +@@ -39,6 +39,7 @@ if { ![is_elf_format] || ![supports_gnu_ + || [istarget nds32*-*-*] + || [istarget nios2-*-*] + || [istarget or1k-*-*] ++ || [istarget ppc*-*-*] + || [istarget score*-*-*] + || [istarget sh*-*-*] + || [istarget tic6x-*-*] +--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2021-07-20 15:22:27.819562158 +0100 ++++ binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-20 15:31:38.814487994 +0100 +@@ -308,6 +308,7 @@ if { !$can_compile || $failed_compile } + run_ld_link_tests $plugin_tests + + if { [is_elf_format] \ ++ && ! [istarget ppc64*-*-*] + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func1p.c tmpdir/func1p.o] \ + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func2i.c tmpdir/func2i.o] \ + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func3h.c tmpdir/func3h.o] } { +diff -rup binutils.orig/ld/testsuite/ld-powerpc/group1.sym binutils-2.37/ld/testsuite/ld-powerpc/group1.sym +--- binutils.orig/ld/testsuite/ld-powerpc/group1.sym 2021-07-20 15:22:27.827562114 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/group1.sym 2021-07-20 15:39:57.916703418 +0100 +@@ -1,3 +1,2 @@ + #... +-.* 8 FUNC +GLOBAL DEFAULT \[<localentry>: 4\] +1 foo + #pass +diff -rup binutils.orig/ld/testsuite/ld-powerpc/group3.sym binutils-2.37/ld/testsuite/ld-powerpc/group3.sym +--- binutils.orig/ld/testsuite/ld-powerpc/group3.sym 2021-07-20 15:22:27.825562125 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/group3.sym 2021-07-20 15:40:13.388617110 +0100 +@@ -1,3 +1,2 @@ + #... +-.* 4 FUNC +GLOBAL DEFAULT \[<localentry>: 1\] +1 foo + #pass +diff -rup binutils.orig/ld/testsuite/ld-powerpc/notoc3.d binutils-2.37/ld/testsuite/ld-powerpc/notoc3.d +--- binutils.orig/ld/testsuite/ld-powerpc/notoc3.d 2021-07-20 15:22:27.824562131 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/notoc3.d 2021-07-20 15:39:16.508934455 +0100 +@@ -58,7 +58,7 @@ Disassembly of section \.text: + + .* <f2>: + .*: (02 10 40 3c|3c 40 10 02) lis r2,4098 +-.*: (00 90 42 38|38 42 90 00) addi r2,r2,-28672 ++.*:.* + .*: (.. .. ff 4b|4b ff .. ..) bl .* <.*\.long_branch\.f1> + .*: (18 00 41 e8|e8 41 00 18) ld r2,24\(r1\) + .*: (.. .. ff 4b|4b ff .. ..) bl .* <f2\+0x8> +@@ -73,7 +73,7 @@ Disassembly of section \.text: + + .* <g2>: + .*: (02 10 40 3c|3c 40 10 02) lis r2,4098 +-.*: (00 90 42 38|38 42 90 00) addi r2,r2,-28672 ++.*:.* + .*: (.. .. ff 4b|4b ff .. ..) bl .* <f2\+0x8> + .*: (00 00 00 60|60 00 00 00) nop + .*: (.. .. ff 4b|4b ff .. ..) bl .* <.*\.long_branch\.f1> +@@ -92,6 +92,6 @@ Disassembly of section \.text\.ext: + + 8000000000000000 <ext>: + 8000000000000000: (02 10 40 3c|3c 40 10 02) lis r2,4098 +-8000000000000004: (00 90 42 38|38 42 90 00) addi r2,r2,-28672 ++8000000000000004:.* + 8000000000000008: (00 00 00 60|60 00 00 00) nop + 800000000000000c: (20 00 80 4e|4e 80 00 20) blr +diff -rup binutils.orig/ld/testsuite/ld-powerpc/pr23937.d binutils-2.37/ld/testsuite/ld-powerpc/pr23937.d +--- binutils.orig/ld/testsuite/ld-powerpc/pr23937.d 2021-07-20 15:22:27.828562108 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/pr23937.d 2021-07-20 15:40:52.012401643 +0100 +@@ -6,5 +6,4 @@ + #... + .* R_PPC64_IRELATIVE +10000180 + #... +-.*: 0+10000180 +20 IFUNC +LOCAL +DEFAULT .* magic + #pass +diff -rup binutils.orig/ld/testsuite/ld-powerpc/tlsexe32.r binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32.r +--- binutils.orig/ld/testsuite/ld-powerpc/tlsexe32.r 2021-07-20 15:22:27.824562131 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32.r 2021-07-20 15:35:59.630032873 +0100 +@@ -22,7 +22,8 @@ Section Headers: + +\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4 + +\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000018 04 +WA +0 +0 +4 + +\[[ 0-9]+\] \.plt +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000004 00 +WA +0 +0 +4 +- +\[[ 0-9]+\] \.symtab +SYMTAB +.* ++#pass +++\[[ 0-9]+\] \.symtab +SYMTAB +.* + +\[[ 0-9]+\] \.strtab +STRTAB +.* + +\[[ 0-9]+\] \.shstrtab +STRTAB +.* + #... +diff -rup binutils.orig/ld/testsuite/ld-powerpc/tlsexe32no.r binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32no.r +--- binutils.orig/ld/testsuite/ld-powerpc/tlsexe32no.r 2021-07-20 15:22:27.826562119 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/tlsexe32no.r 2021-07-20 15:36:34.541838084 +0100 +@@ -22,6 +22,7 @@ Section Headers: + +\[[ 0-9]+\] \.dynamic +DYNAMIC +[0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 08 +WA +4 +0 +4 + +\[[ 0-9]+\] \.got +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000038 04 +WA +0 +0 +4 + +\[[ 0-9]+\] \.plt +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000004 00 +WA +0 +0 +4 ++#pass + +\[[ 0-9]+\] \.symtab +SYMTAB +.* + +\[[ 0-9]+\] \.strtab +STRTAB +.* + +\[[ 0-9]+\] \.shstrtab +STRTAB +.* +diff -rup binutils.orig/ld/testsuite/ld-powerpc/tlsso32.r binutils-2.37/ld/testsuite/ld-powerpc/tlsso32.r +--- binutils.orig/ld/testsuite/ld-powerpc/tlsso32.r 2021-07-20 15:22:27.825562125 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/tlsso32.r 2021-07-20 15:37:05.434665742 +0100 +@@ -20,6 +20,7 @@ Section Headers: + +\[[ 0-9]+\] \.dynamic +DYNAMIC .* 08 +WA +3 +0 +4 + +\[[ 0-9]+\] \.got +PROGBITS .* 0+40 04 +WA +0 +0 +4 + +\[[ 0-9]+\] \.plt +PROGBITS .* 0+4 00 +WA +0 +0 +4 ++#pass + +\[[ 0-9]+\] \.symtab +.* + +\[[ 0-9]+\] \.strtab +.* + +\[[ 0-9]+\] \.shstrtab +.* +--- binutils.orig/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-20 16:24:17.370869076 +0100 ++++ binutils-2.37/ld/testsuite/ld-ifunc/ifunc.exp 2021-07-20 16:24:31.069792658 +0100 +@@ -39,6 +39,7 @@ if { ![is_elf_format] || ![supports_gnu_ + || [istarget nds32*-*-*] + || [istarget nios2-*-*] + || [istarget or1k-*-*] ++ || [istarget powerpc*-*-*] + || [istarget ppc*-*-*] + || [istarget score*-*-*] + || [istarget sh*-*-*] +--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2021-07-20 16:24:17.380869020 +0100 ++++ binutils-2.37/ld/testsuite/ld-plugin/plugin.exp 2021-07-20 16:25:58.558304600 +0100 +@@ -308,7 +308,7 @@ if { !$can_compile || $failed_compile } + run_ld_link_tests $plugin_tests + + if { [is_elf_format] \ +- && ! [istarget ppc64*-*-*] ++ && ! [istarget ppc64*-*-*] && ! [istarget powerpc*-*-*] + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func1p.c tmpdir/func1p.o] \ + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func2i.c tmpdir/func2i.o] \ + && [ld_compile "$CC $CFLAGS" $srcdir/$subdir/func3h.c tmpdir/func3h.o] } { +--- binutils.orig/ld/testsuite/ld-powerpc/group1.sym 2021-07-20 16:24:17.384868997 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/group1.sym 2021-07-20 16:27:36.604757678 +0100 +@@ -1,2 +1 @@ +-#... + #pass +--- binutils.orig/ld/testsuite/ld-powerpc/group3.sym 2021-07-20 16:24:17.389868970 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/group3.sym 2021-07-20 16:28:33.372441000 +0100 +@@ -1,2 +1 @@ +-#... + #pass +--- binutils.orig/ld/testsuite/ld-powerpc/pr23937.d 2021-07-20 16:24:17.386868986 +0100 ++++ binutils-2.37/ld/testsuite/ld-powerpc/pr23937.d 2021-07-20 16:29:00.604289085 +0100 +@@ -5,5 +5,4 @@ + + #... + .* R_PPC64_IRELATIVE +10000180 +-#... + #pass +--- binutils.orig/ld/testsuite/ld-elf/pr26580-3.out 2021-07-20 17:07:36.952369125 +0100 ++++ binutils-2.37/ld/testsuite/ld-elf/pr26580-3.out 2021-07-20 17:13:39.069350355 +0100 +@@ -1,2 +1,2 @@ + library not loaded +-alignment 1 ++alignment . +--- binutils.orig/ld/testsuite/ld-elf/shared.exp 2021-07-20 17:07:36.950369136 +0100 ++++ binutils-2.37/ld/testsuite/ld-elf/shared.exp 2021-07-20 17:16:04.267540887 +0100 +@@ -1536,18 +1536,6 @@ if { [istarget *-*-linux*] + "pr22393-2-static" \ + "pass.out" \ + ] \ +- [list \ +- "Run pr21964-4" \ +- "" \ +- "" \ +- {pr21964-4.c} \ +- "pr21964-4" \ +- "pass.out" \ +- "" \ +- "" \ +- "" \ +- "-ldl" \ +- ] \ + ] + } + +--- binutils.orig/ld/testsuite/ld-elf/tls.exp 2021-07-20 17:07:36.953369120 +0100 ++++ binutils-2.37/ld/testsuite/ld-elf/tls.exp 2021-07-20 17:20:40.443001211 +0100 +@@ -32,6 +32,9 @@ if { !([istarget *-*-linux*] + if { ![check_compiler_available] } { + return + } ++if { [istarget s390x*-*-*] } { ++ return ++} + + # This target requires extra GAS options when building PIC/PIE code. + set AFLAGS_PIC "" +--- binutils.orig/binutils/testsuite/binutils-all/compress.exp 2021-08-18 12:41:47.036991908 +0100 ++++ binutils-2.37/binutils/testsuite/binutils-all/compress.exp 2021-08-18 12:47:46.097987950 +0100 +@@ -766,12 +766,6 @@ proc test_gnu_debuglink {} { + } else { + pass "$test (objdump with missing link)" + } +- set got [remote_exec host [concat sh -c [list "$READELF -S tmpdir/testprog > /dev/null"]]] +- if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { +- fail "$test (readelf with missing link)" +- } else { +- pass "$test (readelf with missing link)" +- } + } + + if {[is_elf_format]} then { diff --git a/source/d/binutils/patches/binutils-2.25-set-long-long.patch b/source/d/binutils/patches/binutils-use-long-long.patch index 1ea74181..1ea74181 100644 --- a/source/d/binutils/patches/binutils-2.25-set-long-long.patch +++ b/source/d/binutils/patches/binutils-use-long-long.patch diff --git a/source/d/binutils/patches/binutils-2.25-version.patch b/source/d/binutils/patches/binutils-version.patch index d97e81bc..d97e81bc 100644 --- a/source/d/binutils/patches/binutils-2.25-version.patch +++ b/source/d/binutils/patches/binutils-version.patch diff --git a/source/d/binutils/patches/binutils.export.demangle.h.diff b/source/d/binutils/patches/binutils.export.demangle.h.diff deleted file mode 100644 index 8720da59..00000000 --- a/source/d/binutils/patches/binutils.export.demangle.h.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- ./bfd/Makefile.in.orig 2019-02-02 09:47:56.000000000 -0600 -+++ ./bfd/Makefile.in 2019-02-02 14:10:55.709944225 -0600 -@@ -249,7 +249,7 @@ - esac - am__bfdinclude_HEADERS_DIST = $(INCDIR)/plugin-api.h bfd.h \ - $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bfd_stdint.h \ -- $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h -+ $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h - HEADERS = $(bfdinclude_HEADERS) - RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -@@ -469,6 +469,7 @@ - @INSTALL_LIBBFD_TRUE@bfdinclude_HEADERS = $(BFD_H) \ - @INSTALL_LIBBFD_TRUE@ $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ - @INSTALL_LIBBFD_TRUE@ bfd_stdint.h $(INCDIR)/diagnostics.h \ -+@INSTALL_LIBBFD_TRUE@ $(INCDIR)/demangle.h \ - @INSTALL_LIBBFD_TRUE@ $(INCDIR)/bfdlink.h $(am__append_2) - @INSTALL_LIBBFD_FALSE@rpath_bfdlibdir = @bfdlibdir@ - @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la ---- ./bfd/Makefile.am.orig 2019-01-19 10:01:32.000000000 -0600 -+++ ./bfd/Makefile.am 2019-02-02 14:09:28.363952384 -0600 -@@ -33,7 +33,7 @@ - bfdincludedir = @bfdincludedir@ - bfdlib_LTLIBRARIES = libbfd.la - bfdinclude_HEADERS = $(BFD_H) $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \ -- bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h -+ bfd_stdint.h $(INCDIR)/diagnostics.h $(INCDIR)/bfdlink.h $(INCDIR)/demangle.h - else !INSTALL_LIBBFD - # Empty these so that the respective installation directories will not be created. - bfdlibdir = diff --git a/source/d/binutils/patches/binutils.no-config-h-check.diff b/source/d/binutils/patches/binutils.no-config-h-check.diff deleted file mode 100644 index b64c909d..00000000 --- a/source/d/binutils/patches/binutils.no-config-h-check.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- ./bfd/bfd-in2.h.orig 2021-01-30 02:38:03.000000000 -0600 -+++ ./bfd/bfd-in2.h 2021-01-30 13:55:37.309054947 -0600 -@@ -30,11 +30,6 @@ - #ifndef __BFD_H_SEEN__ - #define __BFD_H_SEEN__ - --/* PR 14072: Ensure that config.h is included first. */ --#if !defined PACKAGE && !defined PACKAGE_VERSION --#error config.h must be included before this header --#endif -- - #ifdef __cplusplus - extern "C" { - #endif |