ELF: Don't generate unused section symbols
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 7 Jan 2021 14:42:00 +0000 (06:42 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 7 Jan 2021 14:46:55 +0000 (06:46 -0800)
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.

162 files changed:
bfd/ChangeLog
bfd/aix386-core.c
bfd/aout-target.h
bfd/bfd-in2.h
bfd/binary.c
bfd/cisco-core.c
bfd/coff-alpha.c
bfd/coff-i386.c
bfd/coff-ia64.c
bfd/coff-mips.c
bfd/coff-rs6000.c
bfd/coff-sh.c
bfd/coff-tic30.c
bfd/coff-tic54x.c
bfd/coff-x86_64.c
bfd/coff64-rs6000.c
bfd/coffcode.h
bfd/elf.c
bfd/elfcode.h
bfd/elflink.c
bfd/elfxx-target.h
bfd/elfxx-x86.h
bfd/hppabsd-core.c
bfd/hpux-core.c
bfd/i386msdos.c
bfd/ihex.c
bfd/irix-core.c
bfd/mach-o-target.c
bfd/mmo.c
bfd/netbsd-core.c
bfd/osf-core.c
bfd/pdp11.c
bfd/pef.c
bfd/plugin.c
bfd/ppcboot.c
bfd/ptrace-core.c
bfd/sco5-core.c
bfd/som.c
bfd/srec.c
bfd/syms.c
bfd/targets.c
bfd/tekhex.c
bfd/trad-core.c
bfd/verilog.c
bfd/vms-alpha.c
bfd/vms-lib.c
bfd/wasm-module.c
bfd/xsym.c
binutils/ChangeLog
binutils/objcopy.c
binutils/testsuite/binutils-all/readelf.exp
binutils/testsuite/binutils-all/readelf.s-64
binutils/testsuite/binutils-all/readelf.s-64-unused [new file with mode: 0644]
binutils/testsuite/binutils-all/readelf.ss
binutils/testsuite/binutils-all/readelf.ss-64
binutils/testsuite/binutils-all/readelf.ss-64-unused [new file with mode: 0644]
binutils/testsuite/binutils-all/readelf.ss-unused [new file with mode: 0644]
binutils/testsuite/lib/binutils-common.exp
gas/ChangeLog
gas/config/obj-elf.c
gas/read.c
gas/subsegs.c
gas/testsuite/gas/cfi/cfi-label.d
gas/testsuite/gas/elf/elf.exp
gas/testsuite/gas/elf/section2.e
gas/testsuite/gas/elf/section2.e-unused [new file with mode: 0644]
gas/testsuite/gas/elf/symver.d
gas/testsuite/gas/i386/ilp32/elf/symver.d
gas/testsuite/gas/i386/ilp32/x86-64-size-1.d
gas/testsuite/gas/i386/ilp32/x86-64-size-3.d
gas/testsuite/gas/i386/ilp32/x86-64-size-5.d
gas/testsuite/gas/i386/ilp32/x86-64-unwind.d
gas/testsuite/gas/i386/size-1.d
gas/testsuite/gas/i386/size-3.d
gas/testsuite/gas/i386/svr4.d
gas/testsuite/gas/i386/x86-64-size-1.d
gas/testsuite/gas/i386/x86-64-size-3.d
gas/testsuite/gas/i386/x86-64-size-5.d
gas/testsuite/gas/i386/x86-64-unwind.d
gas/write.c
ld/ChangeLog
ld/testsuite/ld-elf/export-class.sd
ld/testsuite/ld-elf/loadaddr3b.d
ld/testsuite/ld-elf/sec64k.exp
ld/testsuite/ld-i386/ibt-plt-1.d
ld/testsuite/ld-i386/ibt-plt-2a.d
ld/testsuite/ld-i386/ibt-plt-2c.d
ld/testsuite/ld-i386/ibt-plt-3a.d
ld/testsuite/ld-i386/ibt-plt-3c.d
ld/testsuite/ld-i386/plt-pic.pd
ld/testsuite/ld-i386/plt-pic2.dd
ld/testsuite/ld-i386/plt.pd
ld/testsuite/ld-i386/plt2.dd
ld/testsuite/ld-i386/pr19636-1d.d
ld/testsuite/ld-i386/pr19636-1l.d
ld/testsuite/ld-i386/pr19636-2c.d
ld/testsuite/ld-i386/tlsbin.rd
ld/testsuite/ld-i386/tlsbin2.rd
ld/testsuite/ld-i386/tlsbindesc.rd
ld/testsuite/ld-i386/tlsdesc.rd
ld/testsuite/ld-i386/tlsgdesc.rd
ld/testsuite/ld-i386/tlsnopic.rd
ld/testsuite/ld-i386/tlspic.rd
ld/testsuite/ld-i386/tlspic2.rd
ld/testsuite/ld-ifunc/ifunc-2-i386-now.d
ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d
ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d
ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d
ld/testsuite/ld-ifunc/ifunc-21-x86-64.d
ld/testsuite/ld-ifunc/ifunc-22-x86-64.d
ld/testsuite/ld-ifunc/pr17154-i386-now.d
ld/testsuite/ld-ifunc/pr17154-i386.d
ld/testsuite/ld-ifunc/pr17154-x86-64-now.d
ld/testsuite/ld-ifunc/pr17154-x86-64.d
ld/testsuite/ld-x86-64/bnd-branch-1-now.d
ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d
ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d
ld/testsuite/ld-x86-64/bnd-ifunc-2.d
ld/testsuite/ld-x86-64/bnd-plt-1-now.d
ld/testsuite/ld-x86-64/bnd-plt-1.d
ld/testsuite/ld-x86-64/ibt-plt-1-x32.d
ld/testsuite/ld-x86-64/ibt-plt-1.d
ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d
ld/testsuite/ld-x86-64/ibt-plt-2a.d
ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d
ld/testsuite/ld-x86-64/ibt-plt-2c.d
ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d
ld/testsuite/ld-x86-64/ibt-plt-3a.d
ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d
ld/testsuite/ld-x86-64/ibt-plt-3c.d
ld/testsuite/ld-x86-64/mpx3.dd
ld/testsuite/ld-x86-64/mpx3n.dd
ld/testsuite/ld-x86-64/mpx4.dd
ld/testsuite/ld-x86-64/mpx4n.dd
ld/testsuite/ld-x86-64/pe-x86-64-1.od
ld/testsuite/ld-x86-64/pe-x86-64-2.od
ld/testsuite/ld-x86-64/pe-x86-64-3.od
ld/testsuite/ld-x86-64/pe-x86-64-4.od
ld/testsuite/ld-x86-64/plt.pd
ld/testsuite/ld-x86-64/plt2.dd
ld/testsuite/ld-x86-64/pr19609-4e.d
ld/testsuite/ld-x86-64/pr19609-6a.d
ld/testsuite/ld-x86-64/pr19609-6b.d
ld/testsuite/ld-x86-64/pr19609-7b.d
ld/testsuite/ld-x86-64/pr19609-7d.d
ld/testsuite/ld-x86-64/pr19636-2l.d
ld/testsuite/ld-x86-64/pr20253-1d.d
ld/testsuite/ld-x86-64/pr20253-1h.d
ld/testsuite/ld-x86-64/pr21038b-now.d
ld/testsuite/ld-x86-64/pr21038b.d
ld/testsuite/ld-x86-64/pr21038c-now.d
ld/testsuite/ld-x86-64/pr21038c.d
ld/testsuite/ld-x86-64/pr23854.d
ld/testsuite/ld-x86-64/pr25416-3.d
ld/testsuite/ld-x86-64/pr25416-4.d
ld/testsuite/ld-x86-64/tlsbin.rd
ld/testsuite/ld-x86-64/tlsbin2.rd
ld/testsuite/ld-x86-64/tlsbindesc.rd
ld/testsuite/ld-x86-64/tlsdesc.rd
ld/testsuite/ld-x86-64/tlsgdesc.rd
ld/testsuite/ld-x86-64/tlspic.rd
ld/testsuite/ld-x86-64/tlspic2.rd

index ec3ab0a1f750216e267cd10dbcc723d6f7497018..69313e1cd2d7cce5ad215317df3ad0b4005904b0 100644 (file)
@@ -1,3 +1,79 @@
+2021-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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.
+
 2021-01-07  Nick Clifton  <nickc@redhat.com>
 
        PR 25713
index d641b810319b695c2112bb057900d16607b47e15..68cd642952f44dc080d811f90d45d18ce2bf0613 100644 (file)
@@ -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 */
index 8c27bb1007eca738a0ec52718a902a314be6b85a..92fc3ed4dd2041b29e25dbab898890141235ba06 100644 (file)
@@ -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,
index 43ead185c197bbad6f1b1d4b806876f0b5efe6f3..7eff85b7eaa6e58e26baf24b6dae06597688c18a 100644 (file)
@@ -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);
index db1bec02b680c3202c819dafbb3d3823fad75a9e..942c66bbd68714162419cc91f04219f4ff44c5b2 100644 (file)
@@ -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 */
index 1b77829c15ab50c102cfcd76edd1f795cb2920a5..c0e68ade481f5962666670db4b0a69972d385051 100644 (file)
@@ -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 */
index 50b2f973a5da5c9896775cc1fa2733bb2e49736b..db26587feae55c1bbcc799b12a1df0b07a1f4de3 100644 (file)
@@ -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 */
index 5048df9daf427193576ae6c151fa2ae1d8d12152..e02519564d1df575cfa2acee9be94b6b1b8b657f 100644 (file)
@@ -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
index 24a4a7c13311bef5829907d8288d9c3d7b04fdb8..887c7aae77cf840c9cbb73224025154b93e1685a 100644 (file)
@@ -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,
index 38376b23d7b4324c24a12c6df2a7d21bc3a90739..d20f4b465976d7c6a2de29499d9903befdd5db47 100644 (file)
@@ -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 */
index a71791e3f9d330678ad391f33199e152ad8f9d31..fbc1aed3118232d3b524c1ffa8a94512793692eb 100644 (file)
@@ -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,
index 99541a76e0506d836a169bc0941f7e58013b83ae..04ef99b777c7134ab51458d1df1450df8e3f71d3 100644 (file)
@@ -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 */
index f3e7df0a3dcc8dd7c9e41622b3eef4e36d4a800f..f4d3a13ef4527988df172b22dddd14d9c05c6517 100644 (file)
@@ -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 */
index 914bb2a39078ad3648159108982c1886095ab12c..3c18221d248c385ef92ff82d6322ceb61335ebdf 100644 (file)
@@ -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 */
index 0279ce23c86269e1556282e24cf3927c6a4862fe..adab60cd113fd91aae2a92bed733c9106d97ddd7 100644 (file)
@@ -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,
index a3b17020c178d04c8057c05b00870430cd787249..9aa0304ec9fe8a423f8d57b0d855332f66860551 100644 (file)
@@ -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,
index 21820da453a2721653f8cdcb33fe10a33afc6d40..2fd699ff1b82818950d858a3dce2697b42f6d4a0 100644 (file)
@@ -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,                          \
index 3f4ccd20559bfea3cbd714644203641ee3bf5e97..ab19bdb4530b0e8ac5c74feda3dd1faf5580decc 100644 (file)
--- 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;
index b40fb4a1f5dbc1163d896ebfa6e04b44d88ad52a..4e99fcc6b9b4b174f450abf1eabfd1eb4443067f 100644 (file)
@@ -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;
index 4c54b1a1591ee72ee72a658f7d7abde6e301ad5d..a7c952b6fc1b09665722ce5a933275e5b642ac25 100644 (file)
@@ -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;
+               }
            }
        }
     }
index cae1fbf0bb95c2c5f2d5802f8105876657f6e37c..c930b767bfb1f796c938ad36cacc7d3aaeb62fca 100644 (file)
@@ -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,
index cc8149d06bdce14eb2fa7d7b136684a77ed46cad..e11e06bdad67283295ae992488fbd9eedbbe372e 100644 (file)
@@ -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"
index d2c8a94b946577f96cec378fa1b9209ffc5e5f05..c36e467ae1d8f127a6f283ce15fb64227c3b0581 100644 (file)
@@ -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 */
index 42f84247d896d12f84f82ec539258eda2fad0e62..03d0de338227f3cbd8580f9815af051a134495c9 100644 (file)
@@ -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 */
index 526561e3ae694e1bab3e43c38db83c3842bb3f4c..6254b2aa2eb57498b570a4938741cdd50399dfbd 100644 (file)
@@ -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 */
index 65431025ea0a767ac68b9545d21dec1127fbbdb2..13dd106817bc9eec5f137ebe2d163cce5bfeebf9 100644 (file)
@@ -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.  */
index d00f4917c1aad5e84da861dedf03f86a38c7a107..e4fb622d69497f959a552955f5f531b28f4277cd 100644 (file)
@@ -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 */
index 993c9747b5c7e083b72890cd90f4cfdeb86bed93..3b454336539f429b45a7d9565f156917357a37b3 100644 (file)
@@ -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,
index a31ddef81e14e5fb07b73ef417cc072a931afe2c..4ba62d0bc69377db7651c1ee0215c024ed897487 100644 (file)
--- 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 */
index a1f88207b1af74c8ef616551a66b93b6e89e65d0..60fa69d1423f98ea24f9ef857e002f642c36d177 100644 (file)
@@ -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.  */
index f91b2aac14b4a5c90408a70406e9ef90b453165d..17cc532396a31e274809bdcf999549078f768362 100644 (file)
@@ -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 */
index 914dcaa5de190a656201d9f4e59b5e988d2c85e3..8992f4e5432339db696bc2096f98b2e13f0e8472 100644 (file)
@@ -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.  */
index 85030e5463cf519b180cd3c540ff665cf7147401..93bc933eec1ee727cab3934b52e9884e28570afd 100644 (file)
--- 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.  */
index d733f6afdf183156689abe15e657a2b437a98aa0..d1767b013453d90aae31e6ea4fb78bf1e700c3d4 100644 (file)
@@ -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,
index e3ade1cdf0c6016404c728d2917a073b35e7c8dd..5cdd7adbbde672b4d53e78a8de9186cc600b2106 100644 (file)
@@ -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 */
index 7cf47af10be1accc1c266617237c1ca6097f7a2b..d21a61ce3f48e152c1e51bcf8b13aa2b7758e57a 100644 (file)
@@ -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 */
index c543c38be10cd19bc58f94a907c6d330b96c00ea..167dba9f321f43de6712153debc26affa6d48213 100644 (file)
@@ -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 */
index 5897ae6c5b7e29d07f5f38454ab08cdd9830d643..872e93341d15df72eff76da5250383e11a0de31f 100644 (file)
--- 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.  */
index e21d7f8b808df761d0afdb6dded16841391cf7c2..92faf3dc8249cd5088c602ee83ffa06de876f848 100644 (file)
@@ -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.  */
index 9559ab4580513ce64f4d791d23f695d201242b6d..10ea8bd7b89869b684eedffa429fa9f6cd273cb4 100644 (file)
@@ -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
index 8086f03e464078ede6e71f5147efde90266b1413..076441b3a216fa2c5849537df4025d590e97fc9e 100644 (file)
@@ -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).
index 99d54dbdb8e02b93d6fd1ba70b89272948cfffbe..6599a4f3f47d2a13c9584cbe0339ba57a05fe24f 100644 (file)
@@ -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.  */
index 1a4dbe6bf819165ef198876c6ae46fe5d9ae9e9e..14627cb72ec2fd0619209df25004c20ab68d3a27 100644 (file)
@@ -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 */
index a54f6b04ebb5863bea24008988a3df304ee8bae6..94a9cc8045917a1ed81a1e3876b6810deb61fdf9 100644 (file)
@@ -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.  */
index 72d89e518f60fce075fa3ecd2f025e2df25b59c5..94001cc3bf9c0c2f0403f1da68c7d47bfc1becbf 100644 (file)
@@ -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,
index 3752b91139176a83fabd52a463d7a3a4be7463c2..eaac8af2a22a028c5075f96608e00976aa7e4e0f 100644 (file)
@@ -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,
index 1fde4a57ab0c55cf33b1060fc1aaf5b0c037d8cb..dc135645f4acc51ee8ed5e0d68c208394ecddfb8 100644 (file)
@@ -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,
index ea26603141093c8cabe8609a5f7da11dafc49524..e9283f63ad79618c3381496a7269d67ef4b3226d 100644 (file)
@@ -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.  */
index c3b21c6a7a7e3572662441b48cea229af75f0d10..c308759c989afed122d99da1002c81056ae1c137 100644 (file)
@@ -1,3 +1,19 @@
+2021-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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.
+
 2021-01-06  Reuben Thomas  <rrt@sc3d.org>
 
        * binutils/readelf.c: Correct grammar in comment.
index 560e7c648d1e36462df7f1661c7dcd37bc100d2f..62ee22202ff59fa0d7b932b049fd59d36be9d5eb 100644 (file)
@@ -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
index 4834233ad3160da25d5b42696800bb976c45262e..51d26b762b3aa8bfe3511ad1d0c846e9a7d5ec5d 100644 (file)
@@ -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
index a1e6cd1bbd8cb4a4c54cb18db2ab86e602783747..5582d77c37295988483fd4dfbf314ec54fd7b871 100644 (file)
@@ -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 (file)
index 0000000..a1e6cd1
--- /dev/null
@@ -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:
+#...
index acc6d9390c58302693a92181e3acd9352e850943..5fbb5d002e332c63e62a919c18c8e877d1418ea0 100644 (file)
@@ -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...
 #...
index bd10cabef35859fa881df896b176815116828f66..99a732f71f53829d3655372eb1d54fdf1322f7c8 100644 (file)
@@ -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 (file)
index 0000000..bd10cab
--- /dev/null
@@ -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 (file)
index 0000000..acc6d93
--- /dev/null
@@ -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
+#...
index 6552d3026497d870f35290e6360f3b14634b1627..616a6cad3d5caf3cc337708df1c677f8f3329680 100644 (file)
@@ -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'.
index 48c21f71292b809682d9ab026a761ecba68ed00b..1d345441c84c8a7455252e98fde8001dd1e5b0ec 100644 (file)
@@ -1,3 +1,36 @@
+2021-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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.
+
 2021-01-07  Philipp Tomsich  <prt@gnu.org>
 
        * config/tc-riscv.c (riscv_multi_subset_supports): Added
index 94fa8051a0bfe749b4201c999272a700687d4f7a..6c0a6ae9ee215ee50ff090dc7d92cdc3e60ff018 100644 (file)
@@ -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);
     }
 }
 
index 9d0ba27ea8c75ca21fdc0a151663ab36d3551a7f..be6e3e03d4589d4278030b4652a590cb3b6e31b7 100644 (file)
@@ -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:
index 8e4b310afeb98008cf1b0cb33cc941448a7e8db0..191879eb08e44110909c584da810300109e0f944 100644 (file)
@@ -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);
index 0350b57f13474d72a086c0419852e51ec35afa54..c6507138b4351c4aa950cee7b81e719f9d20a141 100644 (file)
@@ -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
 
 
index 5cfb7a6237ef6bd6e8b2eb71152704e4be4a7f98..a0f98eddd67907903f8bb60126044b71b41a6c7c 100644 (file)
@@ -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
index 9b50798bcfa0414d70a0f221cc39320feb34e605..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 (file)
@@ -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 (file)
index 0000000..9b50798
--- /dev/null
@@ -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 
index 7fcc62a5caa8a64d783ef11155c061ffae6c1dbd..2292e3267d9dabbf3ca5024d3ac437994ea1449b 100644 (file)
@@ -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
 #...
index 7f69d660b3742e16d75afa53badfccab46194bc4..3acf1487b38df178468f2699d2990afcb846317a 100644 (file)
@@ -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
 #...
index e5b74fa5c9828d2cbdc73179c3a23efbbcdd1b43..64b052dc935e0f77c80c9e3e97539fef3d14de3a 100644 (file)
@@ -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
index 6f96134f13603473576fc24e632a262023c62e8c..65f6890dae7c85a248f07ac6eee27e28b9705f2e 100644 (file)
@@ -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
index 8ce06b0f8489222157a2198c13f5ddb2221917fb..4571a484ea97519f2007ac4fbc1df03889df7c60 100644 (file)
@@ -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
index bd532b73e889b886b24249ffd10e6277132bf423..274ddb0627432da3a595e991a68767313b59145f 100644 (file)
@@ -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
index d582bbecc9404355f5c0723fe30c0a0a34086f45..b187e5d4a3f713c1160097b9c6b50f3ebafbdd97 100644 (file)
@@ -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
index 2b08707f432901e86a768b0d6f49aa901391fead..b45811c5d8e665756b758334f98cef06f4071c48 100644 (file)
@@ -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
index 3a4635419281b4db26ae70c92366e0c80ee52d08..282050666844bf1004452ea18215951a20851226 100644 (file)
@@ -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
index 657408cf733768e5d906fc901e9f287377423fb9..57db8994372acc50343e3fbb5dd8afddf264a71a 100644 (file)
@@ -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
index 943a64e9ac6bdb2eb721f1427d6089ccd425c5fb..4688dc938b3254e9d3a54aaeaf76985e5e0c3fca 100644 (file)
@@ -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
index c34d0eedaab3fb8c7476b72239529667fa8270e4..d18ffcd3a4166988ad50cb29b5ad512a4356b164 100644 (file)
@@ -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
index 7f8d94fe86e3f14a0539d8fa975c3d87bba6f9ea..ca3047277e7b789ef4bc13e523576601448a961f 100644 (file)
@@ -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:
 #...
index ca14b3734bd3e17ba2dfbd942660c7e1408c5d85..75ba971eb4bbde408b505110c5ae817b9486134a 100644 (file)
@@ -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 ?  */
       }
index d7618d77c58b984a7a6b1badab78e763472ce8d7..41824f4d23dea8cea399be3567be67e7c0b56b18 100644 (file)
@@ -1,3 +1,89 @@
+2021-01-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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.
+
 2021-01-07  Alan Modra  <amodra@gmail.com>
 
        * testsuite/ld-scripts/fill.d: Skip sh-*-pe rather than xfail.
index bd5c5491d938d8b96480730a0c4499eb47e9d024..e71248268cb219a9966ab9c06b6f8a0f85455e2a 100644 (file)
@@ -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
 #...
index ac4b5178d8b4bb740e32a56d5882bc1d4894f15e..aa5e9515248e47b3b68c85e2de0ef0ef33dccc7c 100644 (file)
@@ -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
 #...
index a1856b5bca653748c9df531eb06f86166134d943..d148c26d8fead8bab23f13b8289770152a5271e8 100644 (file)
@@ -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
index a7eaa1f77d962f4ec71759ddea77144bc5588b15..b0648ae9e034b1932906cefc748442ef3eb9671f 100644 (file)
@@ -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:
index 9c8f5996a72166ca06ebc54a0ec734ffacc6850a..42aa2ce74103ea54fcc776fd6dbb4019055a5619 100644 (file)
@@ -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:
index a9c8642ced2dc8f3ded03c7a22380f7cbc05bcbe..445e08fa8b3574c98a4ce38fd66b175167b03f24 100644 (file)
@@ -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:
index b4366c9315036cf52d0ac0684d2a6cc43e7f252e..b357a74a33b1cb00dc8c221d97c1fa0e0590ec5c 100644 (file)
@@ -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:
index b4366c9315036cf52d0ac0684d2a6cc43e7f252e..b357a74a33b1cb00dc8c221d97c1fa0e0590ec5c 100644 (file)
@@ -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:
index 5c047d4debd2953833c646a8c26d1a67856deb60..fe0f3efb1bea45c8b80b23be4e2612101e32263a 100644 (file)
@@ -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>
index 8162234aab4fe3d10beb0d9c858e5fec5e53f594..c9af97203ab61dbaf4c721ab67995ece4108a650 100644 (file)
@@ -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:
 
index efcd8a1b1d778054d5f014b6361267c565f8075a..9c395c3b8d37ae9528634c03405eb8437feb19a1 100644 (file)
@@ -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>
index c9d673f65a7e08779473cb8153094e1e99d56cb9..5623fe9685b29b6178f53ee284741043ef387a51 100644 (file)
@@ -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:
 
index b7e6aba92c9e4edbb9f682c271b07d9b343db45f..f294c9c707aff47462433290a204e30173493fa6 100644 (file)
@@ -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>
index 8f2a8e5127f0fed3a8fd2813eb93d59e3e430992..a7568aa74a98c998c8b3e1e2138cef4a8f6509f3 100644 (file)
@@ -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>
index 4b49c8175552604c20307538eb380d5ffb65c31d..92b241073cbb030854452cd55782c8286bf39cfb 100644 (file)
@@ -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>
index 20e4c5ed3618c29edd4641801f99f53ace6362e0..39afcd0b5b7dfe85bd46dfb02dfe8e6f6f79c0b8 100644 (file)
@@ -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
index 5177f4d30dde94380b7f936325e2a77b4ff3eeba..fcbecc319666d3c986a9c28104441cb6c35b59e0 100644 (file)
@@ -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
index 1c9c4f2cb2a83eaf666ac961cf8da46d85f73453..b831f89133c1b3eb2ca3c93fd4ab1f92c85ceab4 100644 (file)
@@ -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
index a5b4fb83c0e5943cc935517e27a13321864e5d09..ec418d1a1fc9b49303f870f36cbac92dfbffe4b6 100644 (file)
@@ -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
index ef131ef8576a1bcf7b76fd82b64ca49df957ca72..0744aeb78b0351067f02a6904c0f04429b25068c 100644 (file)
@@ -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
index 661f1c46c6bdb7a11281c197bf105485fae98985..229ce23a9af214515e44c7d9fa766b1dc69462b0 100644 (file)
@@ -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
index 3425c951bd011252f932016173e3218d1349d6b8..135d74907d102e7ad4c49fa8c1ad4cc985d1d0a5 100644 (file)
@@ -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
index 274445db8423cdc9c3be7e751f39353abbfc550c..ce85a55be458f964a92decaf136dd101da2c316f 100644 (file)
@@ -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
index 2c917fa29363b9a3826570472d6b3daed3e5ca55..0d3f7b80d06f30945e4f2feba309b06e813d0996 100644 (file)
@@ -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:
 
index 01f6a781467522e3859ba70e56a9e20f7cc959f0..48d2084d38feac323c44dca5ec9e76e25436afca 100644 (file)
@@ -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:
 
index 375cecd6f250327f770dbabddda607d58fd48f42..14866a8f6cc041b6680b1147e8a5c05db78a4b80 100644 (file)
@@ -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:
 
index 9cd35181b8120c45f5556e1b09b53480fa28be3c..1cd60941ac0a1f94f9a156e633e07d4d1cfe7469 100644 (file)
@@ -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:
 
index de12e9f54331d13a494131c6db08f7916d24db35..69a4ade87f41f2cda1ed38db18b2a48109927a4d 100644 (file)
@@ -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>:
index de12e9f54331d13a494131c6db08f7916d24db35..69a4ade87f41f2cda1ed38db18b2a48109927a4d 100644 (file)
@@ -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>:
index 082d067422700fcb844010af300387dc2eba886d..6747b3408dd5f2812e8713e26b6b47ddf8508605 100644 (file)
@@ -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:
 
index 68123bf0ca7b550a11a921cecf7f017f56ebaa70..0b9817d43728f90c52d1f7412c1b14cb237711ad 100644 (file)
 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:
 
index 928a6a78d7501ecd2acba181e6a40977ad81d02f..4cc1dc206d5d6ddfe7b5db2ed8eacbb08cb79327 100644 (file)
@@ -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:
 
index 8a6861dcde383fa5f77209985145dedcfda725ba..9fb23d410e31b4b1c234524a06fda5403cf11083 100644 (file)
 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:
 
index 9640beac2d1b39605394c6886fb3a71b8ee72935..b7bc4e526cc810767ad01cd00d3fd827cc938c62 100644 (file)
@@ -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:
 
index 25af7f81d45890c912288c73b85044352e3ef350..15ecfe1cc50a39ea207519fb3ab381af023751c7 100644 (file)
@@ -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:
index 634940d5b1ef9760aa9f1d8000f9f5cf30bfe916..211d72d233546ec03732cb5c573a80ad54e6ceb2 100644 (file)
@@ -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:
index 7a0356cc69530ac635d3455ae0b2492417c6fa1c..f80ba15aa35c40be57d45d4cb9488a8059d80bf5 100644 (file)
@@ -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:
index be5392c45f9199223405983afd98949131dab5bc..24e28210a0a23c467217aeea188c238f85a874e8 100644 (file)
@@ -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:
index cca370527a6c4c0215eda070904de6194c78ac39..ab3ab45faaf5b37c9be01e398376adf2ec3d659d 100644 (file)
@@ -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:
index 2018b1193629d5d36b27aad456b71632b650c9b0..b011e3f158a6f259ce38e84d1b103189401e387e 100644 (file)
@@ -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:
index d556ec13f65d3596730e1864b7fd05b7cc4a9f58..15563b432d1753a80be174f852950beb08ad2228 100644 (file)
@@ -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:
index 5168a31c743ff9296fba6235992dfb900e07067a..a19cece98e8e0ca92a3522a4945e1cc58c68202c 100644 (file)
@@ -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:
index 01401ba1417dc4ae050952ab589fd35e87e9e30c..92785929092e39a5c5022c3a6714258b6271f693 100644 (file)
@@ -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:
index 9f9663cca32244e95b85abee81886626bd0e981e..b00ab920c0ed28b8b472a93dd34b6ce4d38bf0ef 100644 (file)
@@ -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:
index aa81fb9ddb8d34cb91c0052f6008170d6d9509c1..b7969d8c57484e01f0118f01b8b4d5470571d5e1 100644 (file)
@@ -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:
index bf185d548fb9bbbf33a16f196b6c08cabc9afd3c..d6f8bb3afbeac6eb90e1e328ece41fce6135ecb9 100644 (file)
@@ -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:
index 27dd93c8e52af2009d439f191d70edb8844ee915..9c15ed4f9285ea4d68d743eba6ca255cd4651320 100644 (file)
@@ -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:
index 66f47051244cd4f30afb608a8cf262bf4b37558d..f09b1a666ad07b3862ce96e9e93f4a857dad2b6e 100644 (file)
@@ -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:
index 5c918b8b4d5d7c79625f785664d22d627aaa097f..5c19e3dc96d9e181fecafe317efa9746f976fa2c 100644 (file)
@@ -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:
index 96e56fc5e08ba5643fc5960ae29de278eaa9ed29..729b1cf4e97b7e6a7af1cb8270420a3d061d8e77 100644 (file)
@@ -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:
index f4609d5ed6e053b67a3f7bcdcd902e4d61995b11..a1eba8e975ba705a2fde1d4f0f093e3c7de53060 100644 (file)
@@ -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:
index 35f6869bad4544bf9809cc06bdda38fd44f7b482..50a0fbca502ea7f9c75f134aec72a30c35108075 100644 (file)
@@ -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:
index 55856107675fefd9efdfad39fb2c0750aad56491..92177bb1216314bbe76312fc454971c7c62a4145 100644 (file)
@@ -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:
index 1ff644ee9c8805305cdf79d1f10a8a902da806b8..4966d55fb5a36b0e09b6bf0eef622326d54834bf 100644 (file)
@@ -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
index 1ff644ee9c8805305cdf79d1f10a8a902da806b8..4966d55fb5a36b0e09b6bf0eef622326d54834bf 100644 (file)
@@ -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
index 1ff644ee9c8805305cdf79d1f10a8a902da806b8..4966d55fb5a36b0e09b6bf0eef622326d54834bf 100644 (file)
@@ -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
index 302a345b2e210bc0390664c5e6d8f12d18a7abb1..e0bde11d84e58ebd9e0d148f0cc45a206b2808d6 100644 (file)
@@ -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
index 54a00dffc4decddd592b34d6dd72d722f5cfc0d1..6b4024c5c932aa7daaaf07648a6e76b2ad379177 100644 (file)
@@ -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>
index 663ec98192bd62a82afc313e5cec9e89e1586d4f..454bc060dd4766ec297d3370dae05148631acc96 100644 (file)
@@ -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:
 
index f2634947d629455f622fecc15b0668238074a9df..48adc947e75555e3491f26d7eaf08e7620833575 100644 (file)
@@ -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>
index b340287f48b179a0d83a3e76c881aea8888fefb6..265825d4c6c15b1496465cbe81a2fe77b2e529f1 100644 (file)
@@ -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
index 810023b2b9611c75a8ba73bcb42beeebfdabc433..1f769eff4d3cd31140d480bb511b280235ede3d7 100644 (file)
@@ -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
index 20b42e838dbffa630b585009747e638605ee520b..d85e5e9425d84aa82badc9a7e4f32f8ec1ba562c 100644 (file)
@@ -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
index 034a57b1e0016e065a22bccefbc72631524b28f0..6eb511080dd1593c3df03024e7da847aae36d1e6 100644 (file)
@@ -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
index c9b256dd44908a4e28d96c56d6abd752f5dd0c75..1b894b3e97c4d8a449d6d6346bb11a10dbd6160d 100644 (file)
@@ -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
index 28fbc998eaa5dae1f5bee4006e702beb84c6a283..f9f03ba8403405a8158c9c368c41cfd214fbb2bd 100644 (file)
@@ -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
index 132fa03afc3fa65f95d9a07e3aadbd7f1d3a6cf3..7d9b1475d5c0f05d1eaeda285be5e225848ad17c 100644 (file)
@@ -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
index 62e80dc06b47eebbd26cfc189683a65824e8c9d7..c042b6cf702a135495bb7e3d9f32e519e121eec1 100644 (file)
@@ -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:
index 126c1d2efeebfac3f0b148682caf1240416b71fc..144ed44cccf7143f2dd026c23b7fb1564d13be8e 100644 (file)
@@ -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:
index 19a4ea8fcb79966581dddfe4b53921f2bf097230..2058512b74e4f2fcfcd94d58b3f5d4924af38230 100644 (file)
@@ -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:
index 35e7d83c4e00293ebcd6867f65de454acf12558e..a62d43a7bc086e9b4d72a1700e6c20dbdc4d76ab 100644 (file)
@@ -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:
index 95770d3cefd5436f1218a616cbad8e00f01410b7..5113a2c44a3dda4dbab0158dcd55b5662ed65e78 100644 (file)
@@ -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
index 9c1da13484710bf1afaab518050816fa923eba78..26927d99562c2126779673a2f94972d8ffd75925 100644 (file)
@@ -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
index 8d91fbc0a6604e68da4232ab6de6ac9c50093553..d98121f1f312ca6a0b8bab3429a938bc55957c7f 100644 (file)
@@ -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
index c535732b7595155e828a904d18ba6a92ff58e32d..54fe876ecc2a53d7ea0129f989c5b811e7ade7ba 100644 (file)
@@ -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
index b1205fe49a76749de7ebe87b2dfa3e31bbc6914f..495115eb708411b53c4efbc96dd46c4f2dbd2b2f 100644 (file)
@@ -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
index 9e46ca1d0fc700bc6644bd5e029ef7d41fa4aef0..682c4a066a2bec86998ac05a7317ca60fbea15f9 100644 (file)
@@ -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
index a15c6e0f22aa30785c2f6da3a4b3ba14446c18c9..58feb20e55acd59349a40086f66bccbc6fe42852 100644 (file)
@@ -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
index 77e8ae3d81978814a5563d6f84bedf5ad8a76e5b..ca8f19bf3f7341b59f1cf018279f020168640b93 100644 (file)
@@ -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
index 024e124e51538553adfe119cbfc93ba6e20e80d2..2e44dc6ac6b31e847ace569ace5a04bee6e0196a 100644 (file)
@@ -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
index a39a8fe0d0d8ee42e397fe1b23fc02b25f572e6f..60decd2787be65bc6be3e7e53a52415229a7fc73 100644 (file)
@@ -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