From aaa773d79bbef5310f8fbb9ead003dd4b874eabc Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 26 Dec 2020 10:02:14 -0800 Subject: [PATCH] ELF: Don't generate unused section symbols For ELF targets, section symbols are required only for relocations. With -ffunction-sections -fdata-sections, there can be many unused section symbols. Sizes of libstdc++.a on Linux/x86-64 in GCC 11 are With unused section symbols : 39411698 bytes Without unused section symbols: 39227002 bytes The unused section symbols in libstdc++.a occupy more than 180 KB. Add BSF_SECTION_SYM_USED to indicate if a section symbol should be included in the symbol table. The BSF_SECTION_SYM_USED should be set if the section symbol is used for relocation or the section symbol is always included in the symbol table. Tested on Linux/x86. Other ELF backends need: 1. Mark used section symbols in assembler backend. 2. Remove unused section symbols from expected assembler and linker outputs. bfd/ChangeLog: PR 27109 * 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 * syms.c (BSF_SECTION_SYM_USED): New. * bfd-in2.h: Regenerated. binutils/ChangeLog: PR 27109 * objcopy.c (copy_object): Handle section symbols for non-relocatable inputs. * testsuite/binutils-all/readelf.s-64: Updated. * testsuite/binutils-all/readelf.ss: Likewise. * testsuite/binutils-all/readelf.ss-64: Likewise. * testsuite/binutils-all/readelf.ss-mips: Likewise. * testsuite/binutils-all/readelf.ss-tmips: Likewise. 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/section2.s: Add a local symbol. * testsuite/gas/elf/section2.e: Updated. * testsuite/gas/elf/section2.l: Likewise. * 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/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/ChangeLog: PR 27109 * testsuite/ld-elf/export-class.sd: Adjust the expected output. * testsuite/ld-elf/loadaddr3b.d: Likewise. * testsuite/ld-elf/sec64k.exp: 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. --- bfd/bfd-in2.h | 3 + bfd/elf.c | 15 ++++- bfd/elfcode.h | 8 ++- bfd/elflink.c | 61 +++++++++---------- bfd/syms.c | 3 + binutils/objcopy.c | 11 ++++ binutils/testsuite/binutils-all/readelf.s-64 | 2 +- binutils/testsuite/binutils-all/readelf.ss | 5 +- binutils/testsuite/binutils-all/readelf.ss-64 | 5 +- .../testsuite/binutils-all/readelf.ss-mips | 25 +++----- .../testsuite/binutils-all/readelf.ss-tmips | 25 +++----- gas/config/obj-elf.c | 3 + gas/read.c | 3 + gas/testsuite/gas/cfi/cfi-label.d | 4 +- gas/testsuite/gas/elf/section2.e | 7 +-- gas/testsuite/gas/elf/section2.l | 3 +- gas/testsuite/gas/elf/section2.s | 1 + gas/testsuite/gas/elf/symver.d | 4 -- gas/testsuite/gas/i386/ilp32/elf/symver.d | 4 -- gas/testsuite/gas/i386/ilp32/x86-64-size-1.d | 24 ++++---- gas/testsuite/gas/i386/ilp32/x86-64-size-3.d | 16 ++--- gas/testsuite/gas/i386/ilp32/x86-64-size-5.d | 12 ++-- gas/testsuite/gas/i386/ilp32/x86-64-unwind.d | 6 +- gas/testsuite/gas/i386/size-1.d | 24 ++++---- gas/testsuite/gas/i386/size-3.d | 16 ++--- gas/testsuite/gas/i386/x86-64-size-1.d | 24 ++++---- gas/testsuite/gas/i386/x86-64-size-3.d | 16 ++--- gas/testsuite/gas/i386/x86-64-size-5.d | 12 ++-- gas/testsuite/gas/i386/x86-64-unwind.d | 10 +-- gas/write.c | 39 ++++++++---- ld/testsuite/ld-elf/export-class.sd | 2 - ld/testsuite/ld-elf/loadaddr3b.d | 3 - ld/testsuite/ld-elf/sec64k.exp | 6 +- ld/testsuite/ld-i386/ibt-plt-1.d | 4 +- ld/testsuite/ld-i386/ibt-plt-2a.d | 4 +- ld/testsuite/ld-i386/ibt-plt-2c.d | 4 +- ld/testsuite/ld-i386/ibt-plt-3a.d | 4 +- ld/testsuite/ld-i386/ibt-plt-3c.d | 4 +- ld/testsuite/ld-i386/plt-pic.pd | 6 +- ld/testsuite/ld-i386/plt-pic2.dd | 6 +- ld/testsuite/ld-i386/plt.pd | 6 +- ld/testsuite/ld-i386/plt2.dd | 6 +- ld/testsuite/ld-i386/pr19636-1d.d | 2 +- ld/testsuite/ld-i386/pr19636-1l.d | 2 +- ld/testsuite/ld-i386/pr19636-2c.d | 2 +- ld/testsuite/ld-i386/tlsbin.rd | 13 ---- ld/testsuite/ld-i386/tlsbin2.rd | 11 ---- ld/testsuite/ld-i386/tlsbindesc.rd | 11 ---- ld/testsuite/ld-i386/tlsdesc.rd | 11 ---- ld/testsuite/ld-i386/tlsgdesc.rd | 10 --- ld/testsuite/ld-i386/tlsnopic.rd | 9 --- ld/testsuite/ld-i386/tlspic.rd | 12 ---- ld/testsuite/ld-i386/tlspic2.rd | 10 --- ld/testsuite/ld-ifunc/ifunc-2-i386-now.d | 4 +- .../ld-ifunc/ifunc-2-local-i386-now.d | 4 +- .../ld-ifunc/ifunc-2-local-x86-64-now.d | 4 +- ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d | 4 +- ld/testsuite/ld-ifunc/ifunc-21-x86-64.d | 10 +-- ld/testsuite/ld-ifunc/ifunc-22-x86-64.d | 10 +-- ld/testsuite/ld-ifunc/pr17154-i386-now.d | 10 +-- ld/testsuite/ld-ifunc/pr17154-i386.d | 8 +-- ld/testsuite/ld-ifunc/pr17154-x86-64-now.d | 10 +-- ld/testsuite/ld-ifunc/pr17154-x86-64.d | 8 +-- ld/testsuite/ld-x86-64/bnd-branch-1-now.d | 10 +-- ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d | 2 +- ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d | 8 +-- ld/testsuite/ld-x86-64/bnd-ifunc-2.d | 8 +-- ld/testsuite/ld-x86-64/bnd-plt-1-now.d | 8 +-- ld/testsuite/ld-x86-64/bnd-plt-1.d | 8 +-- ld/testsuite/ld-x86-64/ibt-plt-1-x32.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-1.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-2a.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-2c.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-3a.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d | 4 +- ld/testsuite/ld-x86-64/ibt-plt-3c.d | 4 +- ld/testsuite/ld-x86-64/mpx3.dd | 2 +- ld/testsuite/ld-x86-64/mpx3n.dd | 2 +- ld/testsuite/ld-x86-64/mpx4.dd | 2 +- ld/testsuite/ld-x86-64/mpx4n.dd | 2 +- ld/testsuite/ld-x86-64/pe-x86-64-1.od | 5 -- ld/testsuite/ld-x86-64/pe-x86-64-2.od | 5 -- ld/testsuite/ld-x86-64/pe-x86-64-3.od | 5 -- ld/testsuite/ld-x86-64/pe-x86-64-4.od | 6 -- ld/testsuite/ld-x86-64/plt.pd | 6 +- ld/testsuite/ld-x86-64/plt2.dd | 6 +- ld/testsuite/ld-x86-64/pr19609-4e.d | 4 +- ld/testsuite/ld-x86-64/pr19609-6a.d | 2 +- ld/testsuite/ld-x86-64/pr19609-6b.d | 2 +- ld/testsuite/ld-x86-64/pr19609-7b.d | 2 +- ld/testsuite/ld-x86-64/pr19609-7d.d | 2 +- ld/testsuite/ld-x86-64/pr19636-2l.d | 6 +- ld/testsuite/ld-x86-64/pr20253-1d.d | 12 ++-- ld/testsuite/ld-x86-64/pr20253-1h.d | 12 ++-- ld/testsuite/ld-x86-64/pr21038b-now.d | 2 +- ld/testsuite/ld-x86-64/pr21038b.d | 2 +- ld/testsuite/ld-x86-64/pr21038c-now.d | 2 +- ld/testsuite/ld-x86-64/pr21038c.d | 2 +- ld/testsuite/ld-x86-64/pr23854.d | 36 +++++------ ld/testsuite/ld-x86-64/pr25416-3.d | 4 +- ld/testsuite/ld-x86-64/pr25416-4.d | 4 +- ld/testsuite/ld-x86-64/tlsbin.rd | 13 ---- ld/testsuite/ld-x86-64/tlsbin2.rd | 11 ---- ld/testsuite/ld-x86-64/tlsbindesc.rd | 11 ---- ld/testsuite/ld-x86-64/tlsdesc.rd | 12 ---- ld/testsuite/ld-x86-64/tlsgdesc.rd | 10 --- ld/testsuite/ld-x86-64/tlspic.rd | 12 ---- ld/testsuite/ld-x86-64/tlspic2.rd | 12 ---- 111 files changed, 364 insertions(+), 547 deletions(-) diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 5196bb6940d..ed82a847bab 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -6413,6 +6413,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 diff --git a/bfd/elf.c b/bfd/elf.c index 3f4ccd20559..ab19bdb4530 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -4061,6 +4061,10 @@ ignore_section_sym (bfd *abfd, asymbol *sym) if ((sym->flags & BSF_SECTION_SYM) == 0) return FALSE; + /* Ignore the section symbol if it isn't used. */ + if ((sym->flags & BSF_SECTION_SYM_USED) == 0) + return TRUE; + if (sym->section == NULL) return TRUE; @@ -4148,7 +4152,10 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals) at least in that case. */ for (asect = abfd->sections; asect; asect = asect->next) { - if (sect_syms[asect->index] == NULL) + asymbol *sym = asect->symbol; + /* Don't include ignored section symbols. */ + if (!ignore_section_sym (abfd, sym) + && sect_syms[asect->index] == NULL) { if (!sym_is_global (abfd, asect->symbol)) num_locals++; @@ -4170,6 +4177,7 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals) if (sym_is_global (abfd, sym)) i = num_locals + num_globals2++; + /* Don't include ignored section symbols. */ else if (!ignore_section_sym (abfd, sym)) i = num_locals2++; else @@ -4179,9 +4187,10 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals) } for (asect = abfd->sections; asect; asect = asect->next) { - if (sect_syms[asect->index] == NULL) + asymbol *sym = asect->symbol; + if (!ignore_section_sym (abfd, sym) + && sect_syms[asect->index] == NULL) { - asymbol *sym = asect->symbol; unsigned int i; sect_syms[asect->index] = sym; diff --git a/bfd/elfcode.h b/bfd/elfcode.h index b40fb4a1f5d..4e99fcc6b9b 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -1347,7 +1347,13 @@ elf_slurp_symbol_table (bfd *abfd, asymbol **symptrs, bfd_boolean dynamic) switch (ELF_ST_TYPE (isym->st_info)) { case STT_SECTION: - sym->symbol.flags |= BSF_SECTION_SYM | BSF_DEBUGGING; + /* Mark the input section symbol as used since it may be + used for relocation and section group. + NB: BSF_SECTION_SYM_USED is ignored by linker and may + be cleared by objcopy for non-relocatable inputs. */ + sym->symbol.flags |= (BSF_SECTION_SYM + | BSF_DEBUGGING + | BSF_SECTION_SYM_USED); break; case STT_FILE: sym->symbol.flags |= BSF_FILE | BSF_DEBUGGING; diff --git a/bfd/elflink.c b/bfd/elflink.c index 448989a2827..fbde9f9a9f2 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -12477,9 +12477,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); @@ -12500,36 +12497,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 (emit_relocs) + { + bfd_boolean name_local_sections + = (bed->elf_backend_name_local_section_symbols + && bed->elf_backend_name_local_section_symbols (abfd)); + const char *name = NULL; - name = NULL; - elfsym.st_size = 0; - elfsym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION); - elfsym.st_other = 0; - elfsym.st_value = 0; - elfsym.st_target_internal = 0; - for (i = 1; i < elf_numsections (abfd); i++) - { - o = bfd_section_from_elf_index (abfd, i); - if (o != NULL) - { - o->target_index = bfd_get_symcount (abfd); - elfsym.st_shndx = i; - if (!bfd_link_relocatable (info)) - elfsym.st_value = o->vma; - if (name_local_sections) - name = o->name; - if (elf_link_output_symstrtab (&flinfo, name, &elfsym, o, - NULL) != 1) - goto error_return; + elfsym.st_size = 0; + elfsym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION); + elfsym.st_other = 0; + elfsym.st_value = 0; + elfsym.st_target_internal = 0; + for (i = 1; i < elf_numsections (abfd); i++) + { + o = bfd_section_from_elf_index (abfd, i); + if (o != NULL) + { + o->target_index = bfd_get_symcount (abfd); + elfsym.st_shndx = i; + if (!bfd_link_relocatable (info)) + elfsym.st_value = o->vma; + if (name_local_sections) + name = o->name; + if (elf_link_output_symstrtab (&flinfo, name, &elfsym, o, + NULL) != 1) + goto error_return; + } } } } diff --git a/bfd/syms.c b/bfd/syms.c index 9559ab45805..10ea8bd7b89 100644 --- a/bfd/syms.c +++ b/bfd/syms.c @@ -307,6 +307,9 @@ CODE_FRAGMENT . with this name and type in use. BSF_OBJECT must also be set. *} .#define BSF_GNU_UNIQUE (1 << 23) . +. {* This section symbol should be included in the symbol table. *} +.#define BSF_SECTION_SYM_USED (1 << 24) +. . flagword flags; . . {* A pointer to the section to which this symbol is diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 560e7c648d1..161ac2c3b55 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -3204,6 +3204,17 @@ 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) + { + /* Non-relocatable inputs may have the unused section symbols. + Mark all section symbols as unused to excluded them. */ + long s; + for (s = 0; s < symcount; s++) + if ((isympp[s]->flags & BSF_SECTION_SYM_USED)) + isympp[s]->flags &= ~BSF_SECTION_SYM_USED; + } + if (strip_symbols == STRIP_DEBUG || strip_symbols == STRIP_ALL || strip_symbols == STRIP_UNNEEDED diff --git a/binutils/testsuite/binutils-all/readelf.s-64 b/binutils/testsuite/binutils-all/readelf.s-64 index a1e6cd1bbd8..5582d77c372 100644 --- a/binutils/testsuite/binutils-all/readelf.s-64 +++ b/binutils/testsuite/binutils-all/readelf.s-64 @@ -18,7 +18,7 @@ Section Headers: +\[ .\] .symtab +SYMTAB +0000000000000000 +0+.* # aarch64-elf targets have one more data symbol. # x86 targets may have .note.gnu.property. - +0+.* +0000000000000018 +(6|7) +(6|7) +8 + +0+.* +0000000000000018 +(6|7) +(3|4) +8 +\[ .\] .strtab +STRTAB +0000000000000000 +0+.* +0+.* +0000000000000000 .* +0 +0 +1 +\[ .\] .shstrtab +STRTAB +0000000000000000 +[0-9a-f]+ diff --git a/binutils/testsuite/binutils-all/readelf.ss b/binutils/testsuite/binutils-all/readelf.ss index acc6d9390c5..5fbb5d002e3 100644 --- a/binutils/testsuite/binutils-all/readelf.ss +++ b/binutils/testsuite/binutils-all/readelf.ss @@ -2,10 +2,7 @@ Symbol table '.symtab' contains .* entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +0: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +UND - +1: 00000000 +0 +SECTION +LOCAL +DEFAULT +1 - +2: 00000000 +0 +SECTION +LOCAL +DEFAULT +[34] - +3: 00000000 +0 +SECTION +LOCAL +DEFAULT +[45] - +4: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol + +1: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol # ARM targets add the $d mapping symbol here... # NDS32 targets add the $d2 mapping symbol here... #... diff --git a/binutils/testsuite/binutils-all/readelf.ss-64 b/binutils/testsuite/binutils-all/readelf.ss-64 index bd10cabef35..99a732f71f5 100644 --- a/binutils/testsuite/binutils-all/readelf.ss-64 +++ b/binutils/testsuite/binutils-all/readelf.ss-64 @@ -2,10 +2,7 @@ Symbol table '.symtab' contains .* entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +0: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +UND - +1: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +1 - +2: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +3 - +3: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +4 - +4: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol + +1: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol # aarch64-elf targets add the $d mapping symbol here... #... +.: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +3 static_data_symbol diff --git a/binutils/testsuite/binutils-all/readelf.ss-mips b/binutils/testsuite/binutils-all/readelf.ss-mips index c49416bab40..ee4fa41b7fb 100644 --- a/binutils/testsuite/binutils-all/readelf.ss-mips +++ b/binutils/testsuite/binutils-all/readelf.ss-mips @@ -1,19 +1,12 @@ -Symbol table '.symtab' contains 16 entries: +Symbol table '.symtab' contains 9 entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +0: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +UND - +1: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.text) - +2: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.data) - +3: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.bss) - +4: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.reginfo) - +5: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.MIPS\.abiflags) - +6: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.pdr) - +7: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.gnu\.attributes) - +8: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol - +9: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +. static_text_symbol - +10: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol - +11: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +. data_symbol - +12: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +. static_data_symbol - +13: 00000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +(PRC|COM) common_symbol - +14: 00000008 +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol2 - +15: 0000000c +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol3 + +1: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol + +2: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +. static_text_symbol + +3: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol + +4: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +. data_symbol + +5: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +. static_data_symbol + +6: 00000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +(PRC|COM) common_symbol + +7: 00000008 +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol2 + +8: 0000000c +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol3 diff --git a/binutils/testsuite/binutils-all/readelf.ss-tmips b/binutils/testsuite/binutils-all/readelf.ss-tmips index 4fd7fe02786..4e8ed3c399c 100644 --- a/binutils/testsuite/binutils-all/readelf.ss-tmips +++ b/binutils/testsuite/binutils-all/readelf.ss-tmips @@ -1,19 +1,12 @@ -Symbol table '.symtab' contains 16 entries: +Symbol table '.symtab' contains 9 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 +3 - +3: 00000000 +0 +SECTION +LOCAL +DEFAULT +4 - +4: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol - +5: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +3 static_data_symbol - +6: 00000000 +0 +SECTION +LOCAL +DEFAULT +5 - +7: 00000000 +0 +SECTION +LOCAL +DEFAULT +6 - +8: 00000000 +0 +SECTION +LOCAL +DEFAULT +7 - +9: 00000000 +0 +SECTION +LOCAL +DEFAULT +8 - +10: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +1 text_symbol - +11: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol - +12: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +3 data_symbol - +13: 00000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +(PRC|COM) common_symbol - +14: 00000008 +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol2 - +15: 0000000c +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol3 + +1: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol + +2: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +3 static_data_symbol + +3: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +1 text_symbol + +4: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol + +5: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +3 data_symbol + +6: 00000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +(PRC|COM) common_symbol + +7: 00000008 +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol2 + +8: 0000000c +0 +NOTYPE +GLOBAL +DEFAULT +. text_symbol3 diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index bf79b05743d..bb050ec7425 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -2839,6 +2839,9 @@ elf_adjust_symtab (void) symbol_table_insert (sy); } elf_group_id (s) = symbol_get_bfdsym (sy); + /* Mark the group signature symbol as used so that it will be + included in the symbol table. */ + symbol_mark_used_in_reloc (sy); } } diff --git a/gas/read.c b/gas/read.c index 9d0ba27ea8c..be6e3e03d45 100644 --- a/gas/read.c +++ b/gas/read.c @@ -4207,6 +4207,9 @@ s_reloc (int ignore ATTRIBUTE_UNUSED) goto err_out; case O_constant: exp.X_add_symbol = section_symbol (now_seg); + /* Mark the section symbol used in relocation so that it will be + included in the symbol table. */ + symbol_mark_used_in_reloc (exp.X_add_symbol); exp.X_op = O_symbol; /* Fallthru */ case O_symbol: diff --git a/gas/testsuite/gas/cfi/cfi-label.d b/gas/testsuite/gas/cfi/cfi-label.d index 0350b57f134..c6507138b43 100644 --- a/gas/testsuite/gas/cfi/cfi-label.d +++ b/gas/testsuite/gas/cfi/cfi-label.d @@ -6,11 +6,9 @@ SYMBOL TABLE: 0*00 l d \.text 0*00 \.text -0*00 l d \.data 0*00 \.data -0*00 l d \.bss 0*00 \.bss +#... 0*00 l F \.text 0*04 cfilabel 0*2f l \.eh_frame 0*00 cfi2 -0*00 l d \.eh_frame 0*00 \.eh_frame 0*2b g \.eh_frame 0*00 cfi1 diff --git a/gas/testsuite/gas/elf/section2.e b/gas/testsuite/gas/elf/section2.e index 9b50798bcfa..b2f6e3eabb8 100644 --- a/gas/testsuite/gas/elf/section2.e +++ b/gas/testsuite/gas/elf/section2.e @@ -1,8 +1,5 @@ -Symbol table '.symtab' contains 5 entries: +Symbol table '.symtab' contains 2 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 + +1: 0+0 +0 +NOTYPE +LOCAL +DEFAULT +[0-9]+ foo diff --git a/gas/testsuite/gas/elf/section2.l b/gas/testsuite/gas/elf/section2.l index c311ff94947..1ae50358dfc 100644 --- a/gas/testsuite/gas/elf/section2.l +++ b/gas/testsuite/gas/elf/section2.l @@ -5,4 +5,5 @@ [ ]+1[ ]+.section AAA [ ]+2[ ]+.global AAA -[ ]+3 0000 31[ ]+.byte 49 +[ ]+3[ ]+foo: +[ ]+4 0000 31[ ]+.byte 49 diff --git a/gas/testsuite/gas/elf/section2.s b/gas/testsuite/gas/elf/section2.s index 2c181e53991..1616f870db3 100644 --- a/gas/testsuite/gas/elf/section2.s +++ b/gas/testsuite/gas/elf/section2.s @@ -1,3 +1,4 @@ .section AAA .global AAA +foo: .byte 49 diff --git a/gas/testsuite/gas/elf/symver.d b/gas/testsuite/gas/elf/symver.d index 7fcc62a5caa..2292e3267d9 100644 --- a/gas/testsuite/gas/elf/symver.d +++ b/gas/testsuite/gas/elf/symver.d @@ -8,10 +8,6 @@ .*: file format .* SYMBOL TABLE: - -0+000 l.*d.*\.text.*0+000.* -0+000 l.*d.*\.data.*0+000.* -0+000 l.*d.*\.bss.*0+000.* #... 0+000 l.*O.*\.data.*0+004 x #... diff --git a/gas/testsuite/gas/i386/ilp32/elf/symver.d b/gas/testsuite/gas/i386/ilp32/elf/symver.d index 7f69d660b37..3acf1487b38 100644 --- a/gas/testsuite/gas/i386/ilp32/elf/symver.d +++ b/gas/testsuite/gas/i386/ilp32/elf/symver.d @@ -9,10 +9,6 @@ .*: file format .* SYMBOL TABLE: - -0+000 l.*d.*\.text.*0+000.* -0+000 l.*d.*\.data.*0+000.* -0+000 l.*d.*\.bss.*0+000.* #... 0+000 l.*O.*\.data.*0+004 x #... diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-size-1.d b/gas/testsuite/gas/i386/ilp32/x86-64-size-1.d index e5b74fa5c98..64b052dc935 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-size-1.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-size-1.d @@ -6,19 +6,19 @@ Relocation section '.rela.text' at offset .* contains 9 entries: Offset Info Type Sym.Value Sym. Name \+ Addend -0+1 00000420 R_X86_64_SIZE32 00000000 xxx \+ 0 -0+6 00000420 R_X86_64_SIZE32 00000000 xxx - 8 -0+b 00000420 R_X86_64_SIZE32 00000000 xxx \+ 8 -0+10 00000520 R_X86_64_SIZE32 00000000 yyy \+ 0 -0+15 00000520 R_X86_64_SIZE32 00000000 yyy - 10 -0+1a 00000520 R_X86_64_SIZE32 00000000 yyy \+ 10 -0+1f 00000620 R_X86_64_SIZE32 00000020 zzz \+ 0 -0+24 00000620 R_X86_64_SIZE32 00000020 zzz - 20 -0+29 00000620 R_X86_64_SIZE32 00000020 zzz \+ 20 +0+1 00000120 R_X86_64_SIZE32 00000000 xxx \+ 0 +0+6 00000120 R_X86_64_SIZE32 00000000 xxx - 8 +0+b 00000120 R_X86_64_SIZE32 00000000 xxx \+ 8 +0+10 00000220 R_X86_64_SIZE32 00000000 yyy \+ 0 +0+15 00000220 R_X86_64_SIZE32 00000000 yyy - 10 +0+1a 00000220 R_X86_64_SIZE32 00000000 yyy \+ 10 +0+1f 00000320 R_X86_64_SIZE32 00000020 zzz \+ 0 +0+24 00000320 R_X86_64_SIZE32 00000020 zzz - 20 +0+29 00000320 R_X86_64_SIZE32 00000020 zzz \+ 20 Relocation section '.rela.data' at offset .* contains 3 entries: Offset Info Type Sym.Value Sym. Name \+ Addend -0+50 00000420 R_X86_64_SIZE32 00000000 xxx - 1 -0+54 00000520 R_X86_64_SIZE32 00000000 yyy \+ 2 -0+58 00000620 R_X86_64_SIZE32 00000020 zzz \+ 0 +0+50 00000120 R_X86_64_SIZE32 00000000 xxx - 1 +0+54 00000220 R_X86_64_SIZE32 00000000 yyy \+ 2 +0+58 00000320 R_X86_64_SIZE32 00000020 zzz \+ 0 #pass diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-size-3.d b/gas/testsuite/gas/i386/ilp32/x86-64-size-3.d index 6f96134f136..65f6890dae7 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-size-3.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-size-3.d @@ -6,15 +6,15 @@ Relocation section '.rela.text' at offset .* contains 6 entries: Offset Info Type Sym.Value Sym. Name \+ Addend -0+1 00000620 R_X86_64_SIZE32 00000000 xxx \+ 0 -0+6 00000620 R_X86_64_SIZE32 00000000 xxx - 8 -0+b 00000620 R_X86_64_SIZE32 00000000 xxx \+ 8 -0+10 00000720 R_X86_64_SIZE32 00000000 yyy \+ 0 -0+15 00000720 R_X86_64_SIZE32 00000000 yyy - 10 -0+1a 00000720 R_X86_64_SIZE32 00000000 yyy \+ 10 +0+1 00000120 R_X86_64_SIZE32 00000000 xxx \+ 0 +0+6 00000120 R_X86_64_SIZE32 00000000 xxx - 8 +0+b 00000120 R_X86_64_SIZE32 00000000 xxx \+ 8 +0+10 00000220 R_X86_64_SIZE32 00000000 yyy \+ 0 +0+15 00000220 R_X86_64_SIZE32 00000000 yyy - 10 +0+1a 00000220 R_X86_64_SIZE32 00000000 yyy \+ 10 Relocation section '.rela.tdata' at offset .* contains 2 entries: Offset Info Type Sym.Value Sym. Name \+ Addend -0+50 00000620 R_X86_64_SIZE32 00000000 xxx - 1 -0+54 00000720 R_X86_64_SIZE32 00000000 yyy \+ 2 +0+50 00000120 R_X86_64_SIZE32 00000000 xxx - 1 +0+54 00000220 R_X86_64_SIZE32 00000000 yyy \+ 2 #pass diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-size-5.d b/gas/testsuite/gas/i386/ilp32/x86-64-size-5.d index 8ce06b0f848..4571a484ea9 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-size-5.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-size-5.d @@ -6,13 +6,13 @@ Relocation section '.rela.text' at offset .* contains 3 entries: Offset Info Type Sym.Value Sym. Name \+ Addend -0+2 00000421 R_X86_64_SIZE64 00000000 xxx \+ 0 -0+c 00000421 R_X86_64_SIZE64 00000000 xxx - 8 -0+16 00000421 R_X86_64_SIZE64 00000000 xxx \+ 8 +0+2 00000121 R_X86_64_SIZE64 00000000 xxx \+ 0 +0+c 00000121 R_X86_64_SIZE64 00000000 xxx - 8 +0+16 00000121 R_X86_64_SIZE64 00000000 xxx \+ 8 Relocation section '.rela.data' at offset .* contains 3 entries: Offset Info Type Sym.Value Sym. Name \+ Addend -0+50 00000421 R_X86_64_SIZE64 00000000 xxx - 1 -0+58 00000621 R_X86_64_SIZE64 00000000 yyy \+ c8 -0+60 00000521 R_X86_64_SIZE64 00000020 zzz \+ 0 +0+50 00000121 R_X86_64_SIZE64 00000000 xxx - 1 +0+58 00000321 R_X86_64_SIZE64 00000000 yyy \+ c8 +0+60 00000221 R_X86_64_SIZE64 00000020 zzz \+ 0 #pass diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d index bd532b73e88..274ddb06274 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-unwind.d @@ -3,7 +3,7 @@ #readelf: -S #name: x86-64 (ILP32) unwind -There are 8 section headers, starting at offset 0x[0-9a-f]+: +There are 6 section headers, starting at offset 0x[0-9a-f]+: Section Headers: \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al @@ -12,8 +12,6 @@ Section Headers: \[ 2\] .data PROGBITS 00000000 000034 000000 00 WA 0 0 1 \[ 3\] .bss NOBITS 00000000 000034 000000 00 WA 0 0 1 \[ 4\] .eh_frame X86_64_UNWIND 00000000 000034 000008 00 A 0 0 1 - \[ 5\] .symtab SYMTAB 00000000 [0-9a-f]+ 000050 10 6 5 4 - \[ 6\] .strtab STRTAB 00000000 [0-9a-f]+ 000001 00 . 0 0 1 - \[ 7\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000036 00 . 0 0 1 + \[ 5\] .shstrtab STRTAB 00000000 [0-9a-f]+ 000026 00 . 0 0 1 Key to Flags: #pass diff --git a/gas/testsuite/gas/i386/size-1.d b/gas/testsuite/gas/i386/size-1.d index d582bbecc94..b187e5d4a3f 100644 --- a/gas/testsuite/gas/i386/size-1.d +++ b/gas/testsuite/gas/i386/size-1.d @@ -5,19 +5,19 @@ Relocation section '.rel.text' at offset .* contains 9 entries: Offset Info Type Sym.Value Sym. Name -0+1 00000426 R_386_SIZE32 00000000 xxx -0+6 00000426 R_386_SIZE32 00000000 xxx -0+b 00000426 R_386_SIZE32 00000000 xxx -0+10 00000526 R_386_SIZE32 00000000 yyy -0+15 00000526 R_386_SIZE32 00000000 yyy -0+1a 00000526 R_386_SIZE32 00000000 yyy -0+1f 00000626 R_386_SIZE32 00000020 zzz -0+24 00000626 R_386_SIZE32 00000020 zzz -0+29 00000626 R_386_SIZE32 00000020 zzz +0+1 00000126 R_386_SIZE32 00000000 xxx +0+6 00000126 R_386_SIZE32 00000000 xxx +0+b 00000126 R_386_SIZE32 00000000 xxx +0+10 00000226 R_386_SIZE32 00000000 yyy +0+15 00000226 R_386_SIZE32 00000000 yyy +0+1a 00000226 R_386_SIZE32 00000000 yyy +0+1f 00000326 R_386_SIZE32 00000020 zzz +0+24 00000326 R_386_SIZE32 00000020 zzz +0+29 00000326 R_386_SIZE32 00000020 zzz Relocation section '.rel.data' at offset .* contains 3 entries: Offset Info Type Sym.Value Sym. Name -0+50 00000426 R_386_SIZE32 00000000 xxx -0+54 00000526 R_386_SIZE32 00000000 yyy -0+58 00000626 R_386_SIZE32 00000020 zzz +0+50 00000126 R_386_SIZE32 00000000 xxx +0+54 00000226 R_386_SIZE32 00000000 yyy +0+58 00000326 R_386_SIZE32 00000020 zzz #pass diff --git a/gas/testsuite/gas/i386/size-3.d b/gas/testsuite/gas/i386/size-3.d index 2b08707f432..b45811c5d8e 100644 --- a/gas/testsuite/gas/i386/size-3.d +++ b/gas/testsuite/gas/i386/size-3.d @@ -5,15 +5,15 @@ Relocation section '.rel.text' at offset .* contains 6 entries: Offset Info Type Sym.Value Sym. Name -0+1 00000626 R_386_SIZE32 00000000 xxx -0+6 00000626 R_386_SIZE32 00000000 xxx -0+b 00000626 R_386_SIZE32 00000000 xxx -0+10 00000726 R_386_SIZE32 00000000 yyy -0+15 00000726 R_386_SIZE32 00000000 yyy -0+1a 00000726 R_386_SIZE32 00000000 yyy +0+1 00000126 R_386_SIZE32 00000000 xxx +0+6 00000126 R_386_SIZE32 00000000 xxx +0+b 00000126 R_386_SIZE32 00000000 xxx +0+10 00000226 R_386_SIZE32 00000000 yyy +0+15 00000226 R_386_SIZE32 00000000 yyy +0+1a 00000226 R_386_SIZE32 00000000 yyy Relocation section '.rel.tdata' at offset .* contains 2 entries: Offset Info Type Sym.Value Sym. Name -0+50 00000626 R_386_SIZE32 00000000 xxx -0+54 00000726 R_386_SIZE32 00000000 yyy +0+50 00000126 R_386_SIZE32 00000000 xxx +0+54 00000226 R_386_SIZE32 00000000 yyy #pass diff --git a/gas/testsuite/gas/i386/x86-64-size-1.d b/gas/testsuite/gas/i386/x86-64-size-1.d index 657408cf733..57db8994372 100644 --- a/gas/testsuite/gas/i386/x86-64-size-1.d +++ b/gas/testsuite/gas/i386/x86-64-size-1.d @@ -6,19 +6,19 @@ Relocation section '.rela.text' at offset .* contains 9 entries: Offset Info Type Sym. Value Sym. Name \+ Addend -0+1 000400000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 0 -0+6 000400000020 R_X86_64_SIZE32 0000000000000000 xxx - 8 -0+b 000400000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 8 -0+10 000500000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 0 -0+15 000500000020 R_X86_64_SIZE32 0000000000000000 yyy - 10 -0+1a 000500000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 10 -0+1f 000600000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 0 -0+24 000600000020 R_X86_64_SIZE32 0000000000000020 zzz - 20 -0+29 000600000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 20 +0+1 000100000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 0 +0+6 000100000020 R_X86_64_SIZE32 0000000000000000 xxx - 8 +0+b 000100000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 8 +0+10 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 0 +0+15 000200000020 R_X86_64_SIZE32 0000000000000000 yyy - 10 +0+1a 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 10 +0+1f 000300000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 0 +0+24 000300000020 R_X86_64_SIZE32 0000000000000020 zzz - 20 +0+29 000300000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 20 Relocation section '.rela.data' at offset .* contains 3 entries: Offset Info Type Sym. Value Sym. Name \+ Addend -0+50 000400000020 R_X86_64_SIZE32 0000000000000000 xxx - 1 -0+54 000500000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 2 -0+58 000600000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 0 +0+50 000100000020 R_X86_64_SIZE32 0000000000000000 xxx - 1 +0+54 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 2 +0+58 000300000020 R_X86_64_SIZE32 0000000000000020 zzz \+ 0 #pass diff --git a/gas/testsuite/gas/i386/x86-64-size-3.d b/gas/testsuite/gas/i386/x86-64-size-3.d index 943a64e9ac6..4688dc938b3 100644 --- a/gas/testsuite/gas/i386/x86-64-size-3.d +++ b/gas/testsuite/gas/i386/x86-64-size-3.d @@ -6,15 +6,15 @@ Relocation section '.rela.text' at offset .* contains 6 entries: Offset Info Type Sym. Value Sym. Name \+ Addend -0+1 000600000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 0 -0+6 000600000020 R_X86_64_SIZE32 0000000000000000 xxx - 8 -0+b 000600000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 8 -0+10 000700000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 0 -0+15 000700000020 R_X86_64_SIZE32 0000000000000000 yyy - 10 -0+1a 000700000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 10 +0+1 000100000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 0 +0+6 000100000020 R_X86_64_SIZE32 0000000000000000 xxx - 8 +0+b 000100000020 R_X86_64_SIZE32 0000000000000000 xxx \+ 8 +0+10 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 0 +0+15 000200000020 R_X86_64_SIZE32 0000000000000000 yyy - 10 +0+1a 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 10 Relocation section '.rela.tdata' at offset .* contains 2 entries: Offset Info Type Sym. Value Sym. Name \+ Addend -0+50 000600000020 R_X86_64_SIZE32 0000000000000000 xxx - 1 -0+54 000700000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 2 +0+50 000100000020 R_X86_64_SIZE32 0000000000000000 xxx - 1 +0+54 000200000020 R_X86_64_SIZE32 0000000000000000 yyy \+ 2 #pass diff --git a/gas/testsuite/gas/i386/x86-64-size-5.d b/gas/testsuite/gas/i386/x86-64-size-5.d index c34d0eedaab..d18ffcd3a41 100644 --- a/gas/testsuite/gas/i386/x86-64-size-5.d +++ b/gas/testsuite/gas/i386/x86-64-size-5.d @@ -5,13 +5,13 @@ Relocation section '.rela.text' at offset .* contains 3 entries: Offset Info Type Sym. Value Sym. Name \+ Addend -0+2 000400000021 R_X86_64_SIZE64 0000000000000000 xxx \+ 0 -0+c 000400000021 R_X86_64_SIZE64 0000000000000000 xxx - 8 -0+16 000400000021 R_X86_64_SIZE64 0000000000000000 xxx \+ 8 +0+2 000100000021 R_X86_64_SIZE64 0000000000000000 xxx \+ 0 +0+c 000100000021 R_X86_64_SIZE64 0000000000000000 xxx - 8 +0+16 000100000021 R_X86_64_SIZE64 0000000000000000 xxx \+ 8 Relocation section '.rela.data' at offset .* contains 3 entries: Offset Info Type Sym. Value Sym. Name \+ Addend -0+50 000400000021 R_X86_64_SIZE64 0000000000000000 xxx - 1 -0+58 000600000021 R_X86_64_SIZE64 0000000000000000 yyy \+ c8 -0+60 000500000021 R_X86_64_SIZE64 0000000000000020 zzz \+ 0 +0+50 000100000021 R_X86_64_SIZE64 0000000000000000 xxx - 1 +0+58 000300000021 R_X86_64_SIZE64 0000000000000000 yyy \+ c8 +0+60 000200000021 R_X86_64_SIZE64 0000000000000020 zzz \+ 0 #pass diff --git a/gas/testsuite/gas/i386/x86-64-unwind.d b/gas/testsuite/gas/i386/x86-64-unwind.d index 7f8d94fe86e..ca3047277e7 100644 --- a/gas/testsuite/gas/i386/x86-64-unwind.d +++ b/gas/testsuite/gas/i386/x86-64-unwind.d @@ -2,7 +2,7 @@ #readelf: -S #name: x86-64 unwind -There are 8 section headers, starting at offset 0x[0-9a-f]+: +There are 6 section headers, starting at offset 0x[0-9a-f]+: Section Headers: \[Nr\] Name Type Address Offset @@ -17,11 +17,7 @@ Section Headers: 0000000000000000 0000000000000000 WA 0 0 1 \[ 4\] \.eh_frame X86_64_UNWIND 0000000000000000 00000040 0000000000000008 0000000000000000 A 0 0 1 - \[ 5\] \.symtab SYMTAB 0000000000000000 [0-9a-f]+ - 0000000000000078 0000000000000018 6 5 8 - \[ 6\] \.strtab STRTAB 0000000000000000 [0-9a-f]+ - 0000000000000001 0000000000000000 . 0 0 1 - \[ 7\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ - 0000000000000036 0000000000000000 . 0 0 1 + \[ 5\] \.shstrtab STRTAB 0000000000000000 [0-9a-f]+ + 0000000000000026 0000000000000000 . 0 0 1 Key to Flags: #... diff --git a/gas/write.c b/gas/write.c index ca14b3734bd..87eee205d1a 100644 --- a/gas/write.c +++ b/gas/write.c @@ -848,7 +848,12 @@ adjust_reloc_syms (bfd *abfd ATTRIBUTE_UNUSED, /* Since we're reducing to section symbols, don't attempt to reduce anything that's already using one. */ if (symbol_section_p (sym)) - continue; + { + /* Mark the section symbol used in relocation so that it will + be included in the symbol table. */ + symbol_mark_used_in_reloc (sym); + continue; + } symsec = S_GET_SEGMENT (sym); if (symsec == NULL) @@ -1747,10 +1752,11 @@ 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. Don't generate unused section symbols. */ nsyms = 0; for (symp = symbol_rootP; symp; symp = symbol_next (symp)) - nsyms++; + if (!symbol_section_p (symp) || symbol_used_in_reloc_p (symp)) + nsyms++; if (nsyms) { @@ -1759,15 +1765,20 @@ 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 (!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 +2069,10 @@ maybe_generate_build_notes (void) bfd_section_size (bsym->section), note); + /* Mark the section symbol used in relocation so that it will be + included in the symbol table. */ + symbol_mark_used_in_reloc (sym); + total_size += note_size; /* FIXME: Maybe add a note recording the assembler command line and version ? */ } diff --git a/ld/testsuite/ld-elf/export-class.sd b/ld/testsuite/ld-elf/export-class.sd index bd5c5491d93..e71248268cb 100644 --- a/ld/testsuite/ld-elf/export-class.sd +++ b/ld/testsuite/ld-elf/export-class.sd @@ -9,8 +9,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: #... Symbol table '\.symtab' contains [0-9]+ entries: * Num: * Value * Size * Type * Bind * Vis * Ndx * Name -#... - * [0-9a-f]+: * 0*12340000 * 0 * SECTION * LOCAL * DEFAULT * [0-9]+ * #... * [0-9a-f]+: * 0*123400a0 * 0 * NOTYPE * LOCAL * DEFAULT * [0-9]+ * hidden_foo #... diff --git a/ld/testsuite/ld-elf/loadaddr3b.d b/ld/testsuite/ld-elf/loadaddr3b.d index ac4b5178d8b..aa5e9515248 100644 --- a/ld/testsuite/ld-elf/loadaddr3b.d +++ b/ld/testsuite/ld-elf/loadaddr3b.d @@ -3,9 +3,6 @@ #objdump: -t #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi -#... -0+0000100 l d .text 0+0000000 .text -0+0000200 l d .data 0+0000000 .data #... 0+0000110 g \*ABS\* 0+0000000 data_load #... diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp index 70c467af2a8..584359a44b4 100644 --- a/ld/testsuite/ld-elf/sec64k.exp +++ b/ld/testsuite/ld-elf/sec64k.exp @@ -196,11 +196,7 @@ 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$" + puts $ofd " 66...: \[0-9a-f\]+\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+660.. bar_66000$" puts $ofd "#..." # Global symbols are not in "alphanumeric" order, so we just check # that the first and the last are present in any order (assuming no diff --git a/ld/testsuite/ld-i386/ibt-plt-1.d b/ld/testsuite/ld-i386/ibt-plt-1.d index a7eaa1f77d9..b0648ae9e03 100644 --- a/ld/testsuite/ld-i386/ibt-plt-1.d +++ b/ld/testsuite/ld-i386/ibt-plt-1.d @@ -13,11 +13,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) +[a-f0-9]+: f3 0f 1e fb endbr32 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ +[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]+ +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-i386/ibt-plt-2a.d b/ld/testsuite/ld-i386/ibt-plt-2a.d index 9c8f5996a72..42aa2ce7410 100644 --- a/ld/testsuite/ld-i386/ibt-plt-2a.d +++ b/ld/testsuite/ld-i386/ibt-plt-2a.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) +[a-f0-9]+: f3 0f 1e fb endbr32 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp 140 +[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 +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-i386/ibt-plt-2c.d b/ld/testsuite/ld-i386/ibt-plt-2c.d index a9c8642ced2..445e08fa8b3 100644 --- a/ld/testsuite/ld-i386/ibt-plt-2c.d +++ b/ld/testsuite/ld-i386/ibt-plt-2c.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) +[a-f0-9]+: f3 0f 1e fb endbr32 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ +[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]+ +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-i386/ibt-plt-3a.d b/ld/testsuite/ld-i386/ibt-plt-3a.d index b4366c93150..b357a74a33b 100644 --- a/ld/testsuite/ld-i386/ibt-plt-3a.d +++ b/ld/testsuite/ld-i386/ibt-plt-3a.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) +[a-f0-9]+: f3 0f 1e fb endbr32 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp 140 +[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 +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-i386/ibt-plt-3c.d b/ld/testsuite/ld-i386/ibt-plt-3c.d index b4366c93150..b357a74a33b 100644 --- a/ld/testsuite/ld-i386/ibt-plt-3c.d +++ b/ld/testsuite/ld-i386/ibt-plt-3c.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\) +[a-f0-9]+: f3 0f 1e fb endbr32 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp 140 +[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 +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-i386/plt-pic.pd b/ld/testsuite/ld-i386/plt-pic.pd index 5c047d4debd..fe0f3efb1be 100644 --- a/ld/testsuite/ld-i386/plt-pic.pd +++ b/ld/testsuite/ld-i386/plt-pic.pd @@ -8,7 +8,7 @@ Disassembly of section .plt: -[0-9a-f]+ <.plt>: +[0-9a-f]+ : +[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]+ : +[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]+ [0-9a-f]+ : +[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]+ diff --git a/ld/testsuite/ld-i386/plt-pic2.dd b/ld/testsuite/ld-i386/plt-pic2.dd index 8162234aab4..c9af97203ab 100644 --- a/ld/testsuite/ld-i386/plt-pic2.dd +++ b/ld/testsuite/ld-i386/plt-pic2.dd @@ -9,7 +9,7 @@ Disassembly of section .plt: -.* <.plt>: +.* : +[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: .* : +[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 .* .* : +[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 .* Disassembly of section .text: diff --git a/ld/testsuite/ld-i386/plt.pd b/ld/testsuite/ld-i386/plt.pd index efcd8a1b1d7..9c395c3b8d3 100644 --- a/ld/testsuite/ld-i386/plt.pd +++ b/ld/testsuite/ld-i386/plt.pd @@ -8,7 +8,7 @@ Disassembly of section .plt: -[0-9a-f]+ <.plt>: +[0-9a-f]+ : +[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]+ : +[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]+ [0-9a-f]+ : +[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]+ diff --git a/ld/testsuite/ld-i386/plt2.dd b/ld/testsuite/ld-i386/plt2.dd index c9d673f65a7..5623fe9685b 100644 --- a/ld/testsuite/ld-i386/plt2.dd +++ b/ld/testsuite/ld-i386/plt2.dd @@ -9,7 +9,7 @@ Disassembly of section .plt: -0+8048160 <.plt>: +0+8048160 : +[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 : +[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 0+8048180 : +[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 Disassembly of section .text: diff --git a/ld/testsuite/ld-i386/pr19636-1d.d b/ld/testsuite/ld-i386/pr19636-1d.d index b7e6aba92c9..f294c9c707a 100644 --- a/ld/testsuite/ld-i386/pr19636-1d.d +++ b/ld/testsuite/ld-i386/pr19636-1d.d @@ -22,4 +22,4 @@ Disassembly of section .text: .* <_start>: [ ]*[a-f0-9]+: 3b 80 f8 ff ff ff cmp -0x8\(%eax\),%eax [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) -[ ]*[a-f0-9]+: e8 df ff ff ff call .* <\.plt\+0x10> +[ ]*[a-f0-9]+: e8 df ff ff ff call .* <_start-0x10> diff --git a/ld/testsuite/ld-i386/pr19636-1l.d b/ld/testsuite/ld-i386/pr19636-1l.d index 8f2a8e5127f..a7568aa74a9 100644 --- a/ld/testsuite/ld-i386/pr19636-1l.d +++ b/ld/testsuite/ld-i386/pr19636-1l.d @@ -23,4 +23,4 @@ Disassembly of section .text: .* <_start>: [ ]*[a-f0-9]+: 3b 80 f8 ff ff ff cmp -0x8\(%eax\),%eax [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) -[ ]*[a-f0-9]+: e8 df ff ff ff call .* <\.plt\+0x10> +[ ]*[a-f0-9]+: e8 df ff ff ff call .* <_start-0x10> diff --git a/ld/testsuite/ld-i386/pr19636-2c.d b/ld/testsuite/ld-i386/pr19636-2c.d index 4b49c817555..92b241073cb 100644 --- a/ld/testsuite/ld-i386/pr19636-2c.d +++ b/ld/testsuite/ld-i386/pr19636-2c.d @@ -22,6 +22,6 @@ Disassembly of section .text: .* <_start>: [ ]*[a-f0-9]+: 3b 80 fc ff ff ff cmp -0x4\(%eax\),%eax [ ]*[a-f0-9]+: ff a0 fc ff ff ff jmp \*-0x4\(%eax\) -[ ]*[a-f0-9]+: e8 df ff ff ff call .* <\.plt\+0x10> +[ ]*[a-f0-9]+: e8 df ff ff ff call .* <_start-0x10> [ ]*[a-f0-9]+: 3d 00 00 00 00 cmp \$0x0,%eax [ ]*[a-f0-9]+: e8 fc ff ff ff call .* <_start\+0x17> diff --git a/ld/testsuite/ld-i386/tlsbin.rd b/ld/testsuite/ld-i386/tlsbin.rd index 20e4c5ed361..39afcd0b5b7 100644 --- a/ld/testsuite/ld-i386/tlsbin.rd +++ b/ld/testsuite/ld-i386/tlsbin.rd @@ -84,19 +84,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +13 * .* FILE +LOCAL +DEFAULT +ABS .*tlsbinpic.o +[0-9]+: 00000020 +0 +TLS +LOCAL +DEFAULT +9 sl1 +[0-9]+: 00000024 +0 +TLS +LOCAL +DEFAULT +9 sl2 diff --git a/ld/testsuite/ld-i386/tlsbin2.rd b/ld/testsuite/ld-i386/tlsbin2.rd index 5177f4d30dd..fcbecc31966 100644 --- a/ld/testsuite/ld-i386/tlsbin2.rd +++ b/ld/testsuite/ld-i386/tlsbin2.rd @@ -79,17 +79,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * .* FILE +LOCAL +DEFAULT +ABS .*tlsbinpic2.o +[0-9]+: 00000020 +0 +TLS +LOCAL +DEFAULT +7 sl1 +[0-9]+: 00000024 +0 +TLS +LOCAL +DEFAULT +7 sl2 diff --git a/ld/testsuite/ld-i386/tlsbindesc.rd b/ld/testsuite/ld-i386/tlsbindesc.rd index 1c9c4f2cb2a..b831f89133c 100644 --- a/ld/testsuite/ld-i386/tlsbindesc.rd +++ b/ld/testsuite/ld-i386/tlsbindesc.rd @@ -77,17 +77,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * .* FILE +LOCAL +DEFAULT +ABS .*tlsbindesc.o +[0-9]+: 00000020 +0 +TLS +LOCAL +DEFAULT +7 sl1 +[0-9]+: 00000024 +0 +TLS +LOCAL +DEFAULT +7 sl2 diff --git a/ld/testsuite/ld-i386/tlsdesc.rd b/ld/testsuite/ld-i386/tlsdesc.rd index a5b4fb83c0e..ec418d1a1fc 100644 --- a/ld/testsuite/ld-i386/tlsdesc.rd +++ b/ld/testsuite/ld-i386/tlsdesc.rd @@ -92,17 +92,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * .* FILE +LOCAL +DEFAULT +ABS .*tlsdesc.o +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +7 sl1 +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +7 sl2 diff --git a/ld/testsuite/ld-i386/tlsgdesc.rd b/ld/testsuite/ld-i386/tlsgdesc.rd index ef131ef8576..0744aeb78b0 100644 --- a/ld/testsuite/ld-i386/tlsgdesc.rd +++ b/ld/testsuite/ld-i386/tlsgdesc.rd @@ -73,16 +73,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +8 _DYNAMIC +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _GLOBAL_OFFSET_TABLE_ +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 diff --git a/ld/testsuite/ld-i386/tlsnopic.rd b/ld/testsuite/ld-i386/tlsnopic.rd index 661f1c46c6b..229ce23a9af 100644 --- a/ld/testsuite/ld-i386/tlsnopic.rd +++ b/ld/testsuite/ld-i386/tlsnopic.rd @@ -80,15 +80,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * .* FILE +LOCAL +DEFAULT +ABS .*tlsnopic1.o +[0-9]+: 0+00 +0 +TLS +LOCAL +DEFAULT +6 bl1 +[0-9]+: 0+04 +0 +TLS +LOCAL +DEFAULT +6 bl2 diff --git a/ld/testsuite/ld-i386/tlspic.rd b/ld/testsuite/ld-i386/tlspic.rd index 3425c951bd0..135d74907d1 100644 --- a/ld/testsuite/ld-i386/tlspic.rd +++ b/ld/testsuite/ld-i386/tlspic.rd @@ -96,18 +96,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12 * .* FILE +LOCAL +DEFAULT +ABS .*tlspic1.o +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +8 sl1 +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +8 sl2 diff --git a/ld/testsuite/ld-i386/tlspic2.rd b/ld/testsuite/ld-i386/tlspic2.rd index 274445db842..ce85a55be45 100644 --- a/ld/testsuite/ld-i386/tlspic2.rd +++ b/ld/testsuite/ld-i386/tlspic2.rd @@ -91,16 +91,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * .* FILE +LOCAL +DEFAULT +ABS .*tlspic3.o +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +6 sl1 +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +6 sl2 diff --git a/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d index 2c917fa2936..0d3f7b80d06 100644 --- a/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d +++ b/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d @@ -10,7 +10,7 @@ Disassembly of section .plt: -0+f0 <.plt>: +0+f0 <\*ABS\*@plt-0x10>: +[a-f0-9]+: ff b3 04 00 00 00 push 0x4\(%ebx\) +[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) +[a-f0-9]+: 00 00 add %al,\(%eax\) @@ -19,7 +19,7 @@ Disassembly of section .plt: 0+100 <\*ABS\*@plt>: +[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e0 ff ff ff jmp f0 <.plt> + +[a-f0-9]+: e9 e0 ff ff ff jmp f0 <\*ABS\*@plt-0x10> Disassembly of section .text: diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d index 01f6a781467..48d2084d38f 100644 --- a/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d +++ b/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d @@ -10,7 +10,7 @@ Disassembly of section .plt: -0+e0 <.plt>: +0+e0 <\*ABS\*@plt-0x10>: +[a-f0-9]+: ff b3 04 00 00 00 push 0x4\(%ebx\) +[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) +[a-f0-9]+: 00 00 add %al,\(%eax\) @@ -19,7 +19,7 @@ Disassembly of section .plt: 0+f0 <\*ABS\*@plt>: +[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e0 ff ff ff jmp e0 <.plt> + +[a-f0-9]+: e9 e0 ff ff ff jmp e0 <\*ABS\*@plt-0x10> Disassembly of section .text: diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d b/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d index 375cecd6f25..14866a8f6cc 100644 --- a/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d +++ b/ld/testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d @@ -9,7 +9,7 @@ Disassembly of section .plt: -0+170 <.plt>: +0+170 <\*ABS\*\+0x190@plt-0x10>: +[a-f0-9]+: ff 35 42 01 20 00 push 0x200142\(%rip\) # 2002b8 <_GLOBAL_OFFSET_TABLE_\+0x8> +[a-f0-9]+: ff 25 44 01 20 00 jmp \*0x200144\(%rip\) # 2002c0 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) @@ -17,7 +17,7 @@ Disassembly of section .plt: 0+180 <\*ABS\*\+0x190@plt>: +[a-f0-9]+: ff 25 42 01 20 00 jmp \*0x200142\(%rip\) # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x18> +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e0 ff ff ff jmp 170 <.plt> + +[a-f0-9]+: e9 e0 ff ff ff jmp 170 <\*ABS\*\+0x190@plt-0x10> Disassembly of section .text: diff --git a/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d b/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d index 9cd35181b81..1cd60941ac0 100644 --- a/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d +++ b/ld/testsuite/ld-ifunc/ifunc-2-x86-64-now.d @@ -9,7 +9,7 @@ Disassembly of section .plt: -0+170 <.plt>: +0+170 <\*ABS\*\+0x190@plt-0x10>: +[a-f0-9]+: ff 35 42 01 20 00 push 0x200142\(%rip\) # 2002b8 <_GLOBAL_OFFSET_TABLE_\+0x8> +[a-f0-9]+: ff 25 44 01 20 00 jmp \*0x200144\(%rip\) # 2002c0 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) @@ -17,7 +17,7 @@ Disassembly of section .plt: 0+180 <\*ABS\*\+0x190@plt>: +[a-f0-9]+: ff 25 42 01 20 00 jmp \*0x200142\(%rip\) # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x18> +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e0 ff ff ff jmp 170 <.plt> + +[a-f0-9]+: e9 e0 ff ff ff jmp 170 <\*ABS\*\+0x190@plt-0x10> Disassembly of section .text: diff --git a/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d index de12e9f5433..69a4ade87f4 100644 --- a/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d +++ b/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d @@ -9,11 +9,11 @@ Disassembly of section .text: 0+4000c8 <__start>: - +[a-f0-9]+: ff 15 2a 00 20 00 call \*0x20002a\(%rip\) # 6000f8 <.got> - +[a-f0-9]+: ff 25 24 00 20 00 jmp \*0x200024\(%rip\) # 6000f8 <.got> - +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 <.got> - +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 <.got> - +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 <.got> + +[a-f0-9]+: ff 15 2a 00 20 00 call \*0x20002a\(%rip\) # 6000f8 + +[a-f0-9]+: ff 25 24 00 20 00 jmp \*0x200024\(%rip\) # 6000f8 + +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 + +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 + +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 +[a-f0-9]+: 48 c7 c0 f1 00 40 00 mov \$0x4000f1,%rax 0+4000f0 : diff --git a/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d index de12e9f5433..69a4ade87f4 100644 --- a/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d +++ b/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d @@ -9,11 +9,11 @@ Disassembly of section .text: 0+4000c8 <__start>: - +[a-f0-9]+: ff 15 2a 00 20 00 call \*0x20002a\(%rip\) # 6000f8 <.got> - +[a-f0-9]+: ff 25 24 00 20 00 jmp \*0x200024\(%rip\) # 6000f8 <.got> - +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 <.got> - +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 <.got> - +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 <.got> + +[a-f0-9]+: ff 15 2a 00 20 00 call \*0x20002a\(%rip\) # 6000f8 + +[a-f0-9]+: ff 25 24 00 20 00 jmp \*0x200024\(%rip\) # 6000f8 + +[a-f0-9]+: 48 03 05 1d 00 20 00 add 0x20001d\(%rip\),%rax # 6000f8 + +[a-f0-9]+: 48 8b 05 16 00 20 00 mov 0x200016\(%rip\),%rax # 6000f8 + +[a-f0-9]+: 48 85 05 0f 00 20 00 test %rax,0x20000f\(%rip\) # 6000f8 +[a-f0-9]+: 48 c7 c0 f1 00 40 00 mov \$0x4000f1,%rax 0+4000f0 : diff --git a/ld/testsuite/ld-ifunc/pr17154-i386-now.d b/ld/testsuite/ld-ifunc/pr17154-i386-now.d index 082d0674227..6747b3408dd 100644 --- a/ld/testsuite/ld-ifunc/pr17154-i386-now.d +++ b/ld/testsuite/ld-ifunc/pr17154-i386-now.d @@ -10,7 +10,7 @@ Disassembly of section .plt: -0+180 <.plt>: +0+180 <\*ABS\*@plt-0x10>: +[a-f0-9]+: ff b3 04 00 00 00 push 0x4\(%ebx\) +[a-f0-9]+: ff a3 08 00 00 00 jmp \*0x8\(%ebx\) +[a-f0-9]+: 00 00 add %al,\(%eax\) @@ -19,22 +19,22 @@ Disassembly of section .plt: 0+190 <\*ABS\*@plt>: +[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) +[a-f0-9]+: 68 18 00 00 00 push \$0x18 - +[a-f0-9]+: e9 e0 ff ff ff jmp 180 <.plt> + +[a-f0-9]+: e9 e0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> 0+1a0 : +[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 : +[a-f0-9]+: ff a3 14 00 00 00 jmp \*0x14\(%ebx\) +[a-f0-9]+: 68 08 00 00 00 push \$0x8 - +[a-f0-9]+: e9 c0 ff ff ff jmp 180 <.plt> + +[a-f0-9]+: e9 c0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> 0+1c0 <\*ABS\*@plt>: +[a-f0-9]+: ff a3 18 00 00 00 jmp \*0x18\(%ebx\) +[a-f0-9]+: 68 10 00 00 00 push \$0x10 - +[a-f0-9]+: e9 b0 ff ff ff jmp 180 <.plt> + +[a-f0-9]+: e9 b0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> Disassembly of section .text: diff --git a/ld/testsuite/ld-ifunc/pr17154-i386.d b/ld/testsuite/ld-ifunc/pr17154-i386.d index 68123bf0ca7..0b9817d4372 100644 --- a/ld/testsuite/ld-ifunc/pr17154-i386.d +++ b/ld/testsuite/ld-ifunc/pr17154-i386.d @@ -15,22 +15,22 @@ 0+190 <\*ABS\*@plt>: [ ]*[a-f0-9]+: ff a3 0c 00 00 00 jmp \*0xc\(%ebx\) [ ]*[a-f0-9]+: 68 18 00 00 00 push \$0x18 -[ ]*[a-f0-9]+: e9 e0 ff ff ff jmp 180 <.plt> +[ ]*[a-f0-9]+: e9 e0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> 0+1a0 : [ ]*[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 : [ ]*[a-f0-9]+: ff a3 14 00 00 00 jmp \*0x14\(%ebx\) [ ]*[a-f0-9]+: 68 08 00 00 00 push \$0x8 -[ ]*[a-f0-9]+: e9 c0 ff ff ff jmp 180 <.plt> +[ ]*[a-f0-9]+: e9 c0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> 0+1c0 <\*ABS\*@plt>: [ ]*[a-f0-9]+: ff a3 18 00 00 00 jmp \*0x18\(%ebx\) [ ]*[a-f0-9]+: 68 10 00 00 00 push \$0x10 -[ ]*[a-f0-9]+: e9 b0 ff ff ff jmp 180 <.plt> +[ ]*[a-f0-9]+: e9 b0 ff ff ff jmp 180 <\*ABS\*@plt-0x10> Disassembly of section .text: diff --git a/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d b/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d index 928a6a78d75..4cc1dc206d5 100644 --- a/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d +++ b/ld/testsuite/ld-ifunc/pr17154-x86-64-now.d @@ -9,7 +9,7 @@ Disassembly of section .plt: -0+240 <.plt>: +0+240 <\*ABS\*\+0x29a@plt-0x10>: +[a-f0-9]+: ff 35 7a 01 20 00 push 0x20017a\(%rip\) # 2003c0 <_GLOBAL_OFFSET_TABLE_\+0x8> +[a-f0-9]+: ff 25 7c 01 20 00 jmp \*0x20017c\(%rip\) # 2003c8 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) @@ -17,22 +17,22 @@ Disassembly of section .plt: 0+250 <\*ABS\*\+0x29a@plt>: +[a-f0-9]+: ff 25 7a 01 20 00 jmp \*0x20017a\(%rip\) # 2003d0 <_GLOBAL_OFFSET_TABLE_\+0x18> +[a-f0-9]+: 68 03 00 00 00 push \$0x3 - +[a-f0-9]+: e9 e0 ff ff ff jmp 240 <.plt> + +[a-f0-9]+: e9 e0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> 0+260 : +[a-f0-9]+: ff 25 72 01 20 00 jmp \*0x200172\(%rip\) # 2003d8 +[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 : +[a-f0-9]+: ff 25 6a 01 20 00 jmp \*0x20016a\(%rip\) # 2003e0 +[a-f0-9]+: 68 01 00 00 00 push \$0x1 - +[a-f0-9]+: e9 c0 ff ff ff jmp 240 <.plt> + +[a-f0-9]+: e9 c0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> 0+280 <\*ABS\*\+0x290@plt>: +[a-f0-9]+: ff 25 62 01 20 00 jmp \*0x200162\(%rip\) # 2003e8 <_GLOBAL_OFFSET_TABLE_\+0x30> +[a-f0-9]+: 68 02 00 00 00 push \$0x2 - +[a-f0-9]+: e9 b0 ff ff ff jmp 240 <.plt> + +[a-f0-9]+: e9 b0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> Disassembly of section .text: diff --git a/ld/testsuite/ld-ifunc/pr17154-x86-64.d b/ld/testsuite/ld-ifunc/pr17154-x86-64.d index 8a6861dcde3..9fb23d410e3 100644 --- a/ld/testsuite/ld-ifunc/pr17154-x86-64.d +++ b/ld/testsuite/ld-ifunc/pr17154-x86-64.d @@ -13,22 +13,22 @@ 0+250 <\*ABS\*\+0x29a@plt>: +[a-f0-9]+: ff 25 5a 01 20 00 jmp \*0x20015a\(%rip\) # 2003b0 <_GLOBAL_OFFSET_TABLE_\+0x18> +[a-f0-9]+: 68 03 00 00 00 push \$0x3 - +[a-f0-9]+: e9 e0 ff ff ff jmp 240 <.plt> + +[a-f0-9]+: e9 e0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> 0+260 : +[a-f0-9]+: ff 25 52 01 20 00 jmp \*0x200152\(%rip\) # 2003b8 +[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 : +[a-f0-9]+: ff 25 4a 01 20 00 jmp \*0x20014a\(%rip\) # 2003c0 +[a-f0-9]+: 68 01 00 00 00 push \$0x1 - +[a-f0-9]+: e9 c0 ff ff ff jmp 240 <.plt> + +[a-f0-9]+: e9 c0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> 0+280 <\*ABS\*\+0x290@plt>: +[a-f0-9]+: ff 25 42 01 20 00 jmp \*0x200142\(%rip\) # 2003c8 <_GLOBAL_OFFSET_TABLE_\+0x30> +[a-f0-9]+: 68 02 00 00 00 push \$0x2 - +[a-f0-9]+: e9 b0 ff ff ff jmp 240 <.plt> + +[a-f0-9]+: e9 b0 ff ff ff jmp 240 <\*ABS\*\+0x29a@plt-0x10> Disassembly of section .text: diff --git a/ld/testsuite/ld-x86-64/bnd-branch-1-now.d b/ld/testsuite/ld-x86-64/bnd-branch-1-now.d index 9640beac2d1..b7bc4e526cc 100644 --- a/ld/testsuite/ld-x86-64/bnd-branch-1-now.d +++ b/ld/testsuite/ld-x86-64/bnd-branch-1-now.d @@ -8,7 +8,7 @@ Disassembly of section .plt: -0+230 <.plt>: +0+230 : +[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 : +[a-f0-9]+: ff 25 82 01 20 00 jmp \*0x200182\(%rip\) # 2003c8 +[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 0+250 : +[a-f0-9]+: ff 25 7a 01 20 00 jmp \*0x20017a\(%rip\) # 2003d0 +[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 0+260 : +[a-f0-9]+: ff 25 72 01 20 00 jmp \*0x200172\(%rip\) # 2003d8 +[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 0+270 : +[a-f0-9]+: ff 25 6a 01 20 00 jmp \*0x20016a\(%rip\) # 2003e0 +[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 Disassembly of section .text: diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d b/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d index 25af7f81d45..15ecfe1cc50 100644 --- a/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d +++ b/ld/testsuite/ld-x86-64/bnd-ifunc-1-now.d @@ -13,7 +13,7 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 4b 01 20 00 bnd jmp \*0x20014b\(%rip\) # 2002c8 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 170 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 170 <\*ABS\*\+0x198@plt-0x20> +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d b/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d index 634940d5b1e..211d72d2335 100644 --- a/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d +++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2-now.d @@ -13,16 +13,16 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 9b 01 20 00 bnd jmp \*0x20019b\(%rip\) # 2003e8 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 03 00 00 00 push \$0x3 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 240 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 240 <.plt> + +[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) +[a-f0-9]+: 68 01 00 00 00 push \$0x1 - +[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 240 <.plt> + +[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) +[a-f0-9]+: 68 02 00 00 00 push \$0x2 - +[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 240 <.plt> + +[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d index 7a0356cc695..f80ba15aa35 100644 --- a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d +++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d @@ -8,16 +8,16 @@ [ ]*[a-f0-9]+: f2 ff 25 7b 01 20 00 bnd jmp \*0x20017b\(%rip\)[ ]*(#.*)? [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) [ ]*[a-f0-9]+: 68 03 00 00 00 push \$0x3 -[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 240 <.plt> +[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) [ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0 -[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 240 <.plt> +[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) [ ]*[a-f0-9]+: 68 01 00 00 00 push \$0x1 -[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 240 <.plt> +[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) [ ]*[a-f0-9]+: 68 02 00 00 00 push \$0x2 -[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 240 <.plt> +[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmp 240 <\*ABS\*\+0x2bc@plt-0x50> [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/bnd-plt-1-now.d b/ld/testsuite/ld-x86-64/bnd-plt-1-now.d index be5392c45f9..24e28210a0a 100644 --- a/ld/testsuite/ld-x86-64/bnd-plt-1-now.d +++ b/ld/testsuite/ld-x86-64/bnd-plt-1-now.d @@ -13,16 +13,16 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 a3 01 20 00 bnd jmp \*0x2001a3\(%rip\) # 2003e0 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 230 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 230 +[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 +[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 +[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 +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/bnd-plt-1.d b/ld/testsuite/ld-x86-64/bnd-plt-1.d index cca370527a6..ab3ab45faaf 100644 --- a/ld/testsuite/ld-x86-64/bnd-plt-1.d +++ b/ld/testsuite/ld-x86-64/bnd-plt-1.d @@ -13,16 +13,16 @@ Disassembly of section .plt: [ ]*[a-f0-9]+: f2 ff 25 83 01 20 00 bnd jmp \*0x200183\(%rip\)[ ]*(#.*)? [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) [ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0 -[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 230 <.plt> +[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 230 [ ]*[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 [ ]*[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 [ ]*[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 [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d index 2018b119362..b011e3f158a 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-1-x32.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ +[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]+ +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-1.d b/ld/testsuite/ld-x86-64/ibt-plt-1.d index d556ec13f65..15563b432d1 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-1.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-1.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.*> +[a-f0-9]+: 90 nop +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 01 00 00 00 push \$0x1 - +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.*> +[a-f0-9]+: 90 nop Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d index 5168a31c743..a19cece98e8 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-2a-x32.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp 140 +[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 +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2a.d b/ld/testsuite/ld-x86-64/ibt-plt-2a.d index 01401ba1417..92785929092 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-2a.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-2a.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp 1f0 <.plt> + +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp 1f0 <.*> +[a-f0-9]+: 90 nop +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 01 00 00 00 push \$0x1 - +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp 1f0 <.plt> + +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp 1f0 <.*> +[a-f0-9]+: 90 nop Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d index 9f9663cca32..b00ab920c0e 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-2c-x32.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ +[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]+ +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-2c.d b/ld/testsuite/ld-x86-64/ibt-plt-2c.d index aa81fb9ddb8..b7969d8c574 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-2c.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-2c.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.*> +[a-f0-9]+: 90 nop +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 01 00 00 00 push \$0x1 - +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.*> +[a-f0-9]+: 90 nop Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d index bf185d548fb..d6f8bb3afbe 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-3a-x32.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp 140 <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp 140 +[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 +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3a.d b/ld/testsuite/ld-x86-64/ibt-plt-3a.d index 27dd93c8e52..9c15ed4f928 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-3a.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-3a.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp 1f0 <.plt> + +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp 1f0 <.*> +[a-f0-9]+: 90 nop +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 01 00 00 00 push \$0x1 - +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp 1f0 <.plt> + +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp 1f0 <.*> +[a-f0-9]+: 90 nop Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d b/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d index 66f47051244..f09b1a666ad 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-3c-x32.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: e9 e2 ff ff ff jmp [a-f0-9]+ +[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]+ +[a-f0-9]+: 66 90 xchg %ax,%ax Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/ibt-plt-3c.d b/ld/testsuite/ld-x86-64/ibt-plt-3c.d index 5c918b8b4d5..5c19e3dc96d 100644 --- a/ld/testsuite/ld-x86-64/ibt-plt-3c.d +++ b/ld/testsuite/ld-x86-64/ibt-plt-3c.d @@ -14,11 +14,11 @@ Disassembly of section .plt: +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: f2 e9 e1 ff ff ff bnd jmp [a-f0-9]+ <.*> +[a-f0-9]+: 90 nop +[a-f0-9]+: f3 0f 1e fa endbr64 +[a-f0-9]+: 68 01 00 00 00 push \$0x1 - +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.plt> + +[a-f0-9]+: f2 e9 d1 ff ff ff bnd jmp [a-f0-9]+ <.*> +[a-f0-9]+: 90 nop Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/mpx3.dd b/ld/testsuite/ld-x86-64/mpx3.dd index 96e56fc5e08..729b1cf4e97 100644 --- a/ld/testsuite/ld-x86-64/mpx3.dd +++ b/ld/testsuite/ld-x86-64/mpx3.dd @@ -8,7 +8,7 @@ Disassembly of section .plt: [ ]*[a-f0-9]+: f2 ff ([0-9a-f]{2} ){5} bnd jmp \*0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_GLOBAL_OFFSET_TABLE_\+0x10> [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) [ ]*[a-f0-9]+: 68 00 00 00 00 push \$0x0 -[ ]*[a-f0-9]+: f2 e9 ([0-9a-f]{2} ){4} bnd jmp [a-f0-9]+ <.plt> +[ ]*[a-f0-9]+: f2 e9 ([0-9a-f]{2} ){4} bnd jmp [a-f0-9]+ [ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/mpx3n.dd b/ld/testsuite/ld-x86-64/mpx3n.dd index f4609d5ed6e..a1eba8e975b 100644 --- a/ld/testsuite/ld-x86-64/mpx3n.dd +++ b/ld/testsuite/ld-x86-64/mpx3n.dd @@ -8,7 +8,7 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 a3 01 20 00 bnd jmp \*0x2001a3\(%rip\) # 6003d0 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 400220 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 400220 +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/mpx4.dd b/ld/testsuite/ld-x86-64/mpx4.dd index 35f6869bad4..50a0fbca502 100644 --- a/ld/testsuite/ld-x86-64/mpx4.dd +++ b/ld/testsuite/ld-x86-64/mpx4.dd @@ -8,7 +8,7 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 43 01 20 00 bnd jmp \*0x200143\(%rip\) # 600340 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 4001f0 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 4001f0 +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/mpx4n.dd b/ld/testsuite/ld-x86-64/mpx4n.dd index 55856107675..92177bb1216 100644 --- a/ld/testsuite/ld-x86-64/mpx4n.dd +++ b/ld/testsuite/ld-x86-64/mpx4n.dd @@ -8,7 +8,7 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 63 01 20 00 bnd jmp \*0x200163\(%rip\) # 600360 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 4001f0 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 4001f0 +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-1.od b/ld/testsuite/ld-x86-64/pe-x86-64-1.od index 1ff644ee9c8..4966d55fb5a 100644 --- a/ld/testsuite/ld-x86-64/pe-x86-64-1.od +++ b/ld/testsuite/ld-x86-64/pe-x86-64-1.od @@ -2,11 +2,6 @@ .*: +file format .* SYMBOL TABLE: -0+401000 l d .text\$mn 0000000000000000 .text\$mn -0+402000 l d .xdata 0000000000000000 .xdata -0+402008 l d .pdata 0000000000000000 .pdata -0+403014 l d .bss 0000000000000000 .bss -0+ l d .debug\$S 0000000000000000 .debug\$S 0+401000 g .text\$mn 0000000000000000 getaddr1 0+401020 g .text\$mn 0000000000000000 begin 0+403014 g .bss 0000000000000000 __bss_start diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-2.od b/ld/testsuite/ld-x86-64/pe-x86-64-2.od index 1ff644ee9c8..4966d55fb5a 100644 --- a/ld/testsuite/ld-x86-64/pe-x86-64-2.od +++ b/ld/testsuite/ld-x86-64/pe-x86-64-2.od @@ -2,11 +2,6 @@ .*: +file format .* SYMBOL TABLE: -0+401000 l d .text\$mn 0000000000000000 .text\$mn -0+402000 l d .xdata 0000000000000000 .xdata -0+402008 l d .pdata 0000000000000000 .pdata -0+403014 l d .bss 0000000000000000 .bss -0+ l d .debug\$S 0000000000000000 .debug\$S 0+401000 g .text\$mn 0000000000000000 getaddr1 0+401020 g .text\$mn 0000000000000000 begin 0+403014 g .bss 0000000000000000 __bss_start diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-3.od b/ld/testsuite/ld-x86-64/pe-x86-64-3.od index 1ff644ee9c8..4966d55fb5a 100644 --- a/ld/testsuite/ld-x86-64/pe-x86-64-3.od +++ b/ld/testsuite/ld-x86-64/pe-x86-64-3.od @@ -2,11 +2,6 @@ .*: +file format .* SYMBOL TABLE: -0+401000 l d .text\$mn 0000000000000000 .text\$mn -0+402000 l d .xdata 0000000000000000 .xdata -0+402008 l d .pdata 0000000000000000 .pdata -0+403014 l d .bss 0000000000000000 .bss -0+ l d .debug\$S 0000000000000000 .debug\$S 0+401000 g .text\$mn 0000000000000000 getaddr1 0+401020 g .text\$mn 0000000000000000 begin 0+403014 g .bss 0000000000000000 __bss_start diff --git a/ld/testsuite/ld-x86-64/pe-x86-64-4.od b/ld/testsuite/ld-x86-64/pe-x86-64-4.od index 302a345b2e2..e0bde11d84e 100644 --- a/ld/testsuite/ld-x86-64/pe-x86-64-4.od +++ b/ld/testsuite/ld-x86-64/pe-x86-64-4.od @@ -2,12 +2,6 @@ .*: +file format .* SYMBOL TABLE: -0+401000 l d .text\$mn 0000000000000000 .text\$mn -0+402000 l d .xdata 0000000000000000 .xdata -0+402008 l d .pdata 0000000000000000 .pdata -0+403018 l d .data 0000000000000000 .data -0+403038 l d .bss 0000000000000000 .bss -0+ l d .debug\$S 0000000000000000 .debug\$S 0+403038 g .bss 0000000000000000 c 0+401000 g .text\$mn 0000000000000000 begin 0+403038 g .bss 0000000000000000 __bss_start diff --git a/ld/testsuite/ld-x86-64/plt.pd b/ld/testsuite/ld-x86-64/plt.pd index 54a00dffc4d..6b4024c5c93 100644 --- a/ld/testsuite/ld-x86-64/plt.pd +++ b/ld/testsuite/ld-x86-64/plt.pd @@ -8,7 +8,7 @@ Disassembly of section .plt: -[0-9a-f]+ <.plt>: +[0-9a-f]+ : +[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]+ : +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%rip\) +# [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]+ [0-9a-f]+ : +[0-9a-f]+: ff 25 ([0-9a-f]{2} ){4} * jmp \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ +[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]+ diff --git a/ld/testsuite/ld-x86-64/plt2.dd b/ld/testsuite/ld-x86-64/plt2.dd index 663ec98192b..454bc060dd4 100644 --- a/ld/testsuite/ld-x86-64/plt2.dd +++ b/ld/testsuite/ld-x86-64/plt2.dd @@ -9,7 +9,7 @@ Disassembly of section .plt: -0+400220 <.plt>: +0+400220 : +[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 : +[a-f0-9]+: ff 25 7a 01 20 00 jmp \*0x20017a\(%rip\) # 6003b0 +[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 0+400240 : +[a-f0-9]+: ff 25 72 01 20 00 jmp \*0x200172\(%rip\) # 6003b8 +[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 Disassembly of section .text: diff --git a/ld/testsuite/ld-x86-64/pr19609-4e.d b/ld/testsuite/ld-x86-64/pr19609-4e.d index f2634947d62..48adc947e75 100644 --- a/ld/testsuite/ld-x86-64/pr19609-4e.d +++ b/ld/testsuite/ld-x86-64/pr19609-4e.d @@ -9,5 +9,5 @@ Disassembly of section .text: 0+70000000 <_start>: -[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.got> -[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <.got> +[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x1000> +[ ]*[a-f0-9]+: 4c 8b 1d ([0-9a-f]{2} ){4} * mov [-]?0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <_start\+0x1000> diff --git a/ld/testsuite/ld-x86-64/pr19609-6a.d b/ld/testsuite/ld-x86-64/pr19609-6a.d index b340287f48b..265825d4c6c 100644 --- a/ld/testsuite/ld-x86-64/pr19609-6a.d +++ b/ld/testsuite/ld-x86-64/pr19609-6a.d @@ -9,5 +9,5 @@ Disassembly of section .text: [a-f0-9]+ <_start>: -[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.got> +[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x1000> #pass diff --git a/ld/testsuite/ld-x86-64/pr19609-6b.d b/ld/testsuite/ld-x86-64/pr19609-6b.d index 810023b2b96..1f769eff4d3 100644 --- a/ld/testsuite/ld-x86-64/pr19609-6b.d +++ b/ld/testsuite/ld-x86-64/pr19609-6b.d @@ -9,5 +9,5 @@ Disassembly of section .text: [a-f0-9]+ <_start>: -[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.got> +[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <_start\+0x1000> #pass diff --git a/ld/testsuite/ld-x86-64/pr19609-7b.d b/ld/testsuite/ld-x86-64/pr19609-7b.d index 20b42e838db..d85e5e9425d 100644 --- a/ld/testsuite/ld-x86-64/pr19609-7b.d +++ b/ld/testsuite/ld-x86-64/pr19609-7b.d @@ -9,5 +9,5 @@ Disassembly of section .text: [a-f0-9]+ <_start>: -[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * call \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> +[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * call \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x1000> #pass diff --git a/ld/testsuite/ld-x86-64/pr19609-7d.d b/ld/testsuite/ld-x86-64/pr19609-7d.d index 034a57b1e00..6eb511080dd 100644 --- a/ld/testsuite/ld-x86-64/pr19609-7d.d +++ b/ld/testsuite/ld-x86-64/pr19609-7d.d @@ -9,5 +9,5 @@ Disassembly of section .text: [a-f0-9]+ <_start>: -[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * call \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> +[ ]*[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4} * call \*-?0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x1000> #pass diff --git a/ld/testsuite/ld-x86-64/pr19636-2l.d b/ld/testsuite/ld-x86-64/pr19636-2l.d index c9b256dd449..1b894b3e97c 100644 --- a/ld/testsuite/ld-x86-64/pr19636-2l.d +++ b/ld/testsuite/ld-x86-64/pr19636-2l.d @@ -20,7 +20,7 @@ Disassembly of section .plt: Disassembly of section .text: 0+140 <_start>: - +[a-f0-9]+: 48 3b 05 f1 00 20 00 cmp 0x2000f1\(%rip\),%rax # 200238 <.got> - +[a-f0-9]+: ff 25 f3 00 20 00 jmp \*0x2000f3\(%rip\) # 200240 <.got\+0x8> - +[a-f0-9]+: e8 de ff ff ff call 130 <.plt\+0x10> + +[a-f0-9]+: 48 3b 05 f1 00 20 00 cmp 0x2000f1\(%rip\),%rax # 200238 <_DYNAMIC\+0xe0> + +[a-f0-9]+: ff 25 f3 00 20 00 jmp \*0x2000f3\(%rip\) # 200240 <_DYNAMIC\+0xe8> + +[a-f0-9]+: e8 de ff ff ff call 130 <_start-0x10> #pass diff --git a/ld/testsuite/ld-x86-64/pr20253-1d.d b/ld/testsuite/ld-x86-64/pr20253-1d.d index 28fbc998eaa..f9f03ba8403 100644 --- a/ld/testsuite/ld-x86-64/pr20253-1d.d +++ b/ld/testsuite/ld-x86-64/pr20253-1d.d @@ -15,10 +15,10 @@ Disassembly of section .text: +[a-f0-9]+: c3 ret * 0+1ca <_start>: - +[a-f0-9]+: ff 15 28 01 20 00 call \*0x200128\(%rip\) # 2002f8 <.got> - +[a-f0-9]+: ff 25 2a 01 20 00 jmp \*0x20012a\(%rip\) # 200300 <.got\+0x8> - +[a-f0-9]+: 48 c7 05 1f 01 20 00 00 00 00 00 movq \$0x0,0x20011f\(%rip\) # 200300 <.got\+0x8> - +[a-f0-9]+: 48 83 3d 0f 01 20 00 00 cmpq \$0x0,0x20010f\(%rip\) # 2002f8 <.got> - +[a-f0-9]+: 48 3b 0d 08 01 20 00 cmp 0x200108\(%rip\),%rcx # 2002f8 <.got> - +[a-f0-9]+: 48 3b 0d 09 01 20 00 cmp 0x200109\(%rip\),%rcx # 200300 <.got\+0x8> + +[a-f0-9]+: ff 15 28 01 20 00 call \*0x200128\(%rip\) # 2002f8 <_DYNAMIC\+0x100> + +[a-f0-9]+: ff 25 2a 01 20 00 jmp \*0x20012a\(%rip\) # 200300 <_DYNAMIC\+0x108> + +[a-f0-9]+: 48 c7 05 1f 01 20 00 00 00 00 00 movq \$0x0,0x20011f\(%rip\) # 200300 <_DYNAMIC\+0x108> + +[a-f0-9]+: 48 83 3d 0f 01 20 00 00 cmpq \$0x0,0x20010f\(%rip\) # 2002f8 <_DYNAMIC\+0x100> + +[a-f0-9]+: 48 3b 0d 08 01 20 00 cmp 0x200108\(%rip\),%rcx # 2002f8 <_DYNAMIC\+0x100> + +[a-f0-9]+: 48 3b 0d 09 01 20 00 cmp 0x200109\(%rip\),%rcx # 200300 <_DYNAMIC\+0x108> #pass diff --git a/ld/testsuite/ld-x86-64/pr20253-1h.d b/ld/testsuite/ld-x86-64/pr20253-1h.d index 132fa03afc3..7d9b1475d5c 100644 --- a/ld/testsuite/ld-x86-64/pr20253-1h.d +++ b/ld/testsuite/ld-x86-64/pr20253-1h.d @@ -15,10 +15,10 @@ Disassembly of section .text: +[a-f0-9]+: c3 ret * 0+40008e <_start>: - +[a-f0-9]+: ff 15 2c 00 20 00 call \*0x20002c\(%rip\) # 6000c0 <.got> - +[a-f0-9]+: ff 25 2e 00 20 00 jmp \*0x20002e\(%rip\) # 6000c8 <.got\+0x8> - +[a-f0-9]+: 48 c7 05 23 00 20 00 00 00 00 00 movq \$0x0,0x200023\(%rip\) # 6000c8 <.got\+0x8> - +[a-f0-9]+: 48 83 3d 13 00 20 00 00 cmpq \$0x0,0x200013\(%rip\) # 6000c0 <.got> - +[a-f0-9]+: 48 3b 0d 0c 00 20 00 cmp 0x20000c\(%rip\),%rcx # 6000c0 <.got> - +[a-f0-9]+: 48 3b 0d 0d 00 20 00 cmp 0x20000d\(%rip\),%rcx # 6000c8 <.got\+0x8> + +[a-f0-9]+: ff 15 2c 00 20 00 call \*0x20002c\(%rip\) # 6000c0 <_start\+0x200032> + +[a-f0-9]+: ff 25 2e 00 20 00 jmp \*0x20002e\(%rip\) # 6000c8 <_start\+0x20003a> + +[a-f0-9]+: 48 c7 05 23 00 20 00 00 00 00 00 movq \$0x0,0x200023\(%rip\) # 6000c8 <_start\+0x20003a> + +[a-f0-9]+: 48 83 3d 13 00 20 00 00 cmpq \$0x0,0x200013\(%rip\) # 6000c0 <_start\+0x200032> + +[a-f0-9]+: 48 3b 0d 0c 00 20 00 cmp 0x20000c\(%rip\),%rcx # 6000c0 <_start\+0x200032> + +[a-f0-9]+: 48 3b 0d 0d 00 20 00 cmp 0x20000d\(%rip\),%rcx # 6000c8 <_start\+0x20003a> #pass diff --git a/ld/testsuite/ld-x86-64/pr21038b-now.d b/ld/testsuite/ld-x86-64/pr21038b-now.d index 62e80dc06b4..c042b6cf702 100644 --- a/ld/testsuite/ld-x86-64/pr21038b-now.d +++ b/ld/testsuite/ld-x86-64/pr21038b-now.d @@ -54,7 +54,7 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 33 0e 20 00 bnd jmp \*0x200e33\(%rip\) # 200ff0 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1b0 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1b0 +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/pr21038b.d b/ld/testsuite/ld-x86-64/pr21038b.d index 126c1d2efee..144ed44cccf 100644 --- a/ld/testsuite/ld-x86-64/pr21038b.d +++ b/ld/testsuite/ld-x86-64/pr21038b.d @@ -53,7 +53,7 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 53 0e 20 00 bnd jmp \*0x200e53\(%rip\) # 201010 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1b0 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1b0 +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.sec: diff --git a/ld/testsuite/ld-x86-64/pr21038c-now.d b/ld/testsuite/ld-x86-64/pr21038c-now.d index 19a4ea8fcb7..2058512b74e 100644 --- a/ld/testsuite/ld-x86-64/pr21038c-now.d +++ b/ld/testsuite/ld-x86-64/pr21038c-now.d @@ -63,7 +63,7 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 eb 0d 20 00 bnd jmp \*0x200deb\(%rip\) # 200fe8 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1f0 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1f0 +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.got: diff --git a/ld/testsuite/ld-x86-64/pr21038c.d b/ld/testsuite/ld-x86-64/pr21038c.d index 35e7d83c4e0..a62d43a7bc0 100644 --- a/ld/testsuite/ld-x86-64/pr21038c.d +++ b/ld/testsuite/ld-x86-64/pr21038c.d @@ -62,7 +62,7 @@ Disassembly of section .plt: +[a-f0-9]+: f2 ff 25 13 0e 20 00 bnd jmp \*0x200e13\(%rip\) # 201010 <_GLOBAL_OFFSET_TABLE_\+0x10> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 68 00 00 00 00 push \$0x0 - +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1f0 <.plt> + +[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmp 1f0 +[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) Disassembly of section .plt.got: diff --git a/ld/testsuite/ld-x86-64/pr23854.d b/ld/testsuite/ld-x86-64/pr23854.d index 95770d3cefd..5113a2c44a3 100644 --- a/ld/testsuite/ld-x86-64/pr23854.d +++ b/ld/testsuite/ld-x86-64/pr23854.d @@ -7,22 +7,22 @@ Disassembly of section .text: [a-f0-9]+ <_start>: - +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got> - +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <.got\+0x8> - +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <.got\+0x8> - +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <.got\+0x8> - +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <.got\+0x8> - +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <.got\+0x8> - +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <.got\+0x8> - +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <.got\+0x8> - +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <.got\+0x8> - +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got\+0x8> + +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <_start\+0x[a-f0-9]+> + +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <_start\+0x[a-f0-9]+> #pass diff --git a/ld/testsuite/ld-x86-64/pr25416-3.d b/ld/testsuite/ld-x86-64/pr25416-3.d index 9c1da134847..26927d99562 100644 --- a/ld/testsuite/ld-x86-64/pr25416-3.d +++ b/ld/testsuite/ld-x86-64/pr25416-3.d @@ -9,8 +9,8 @@ Disassembly of section .text: [a-f0-9]+ <_start>: - +[a-f0-9]+: 40 8b 05 ([0-9a-f]{2} ){4}[ \t]+rex mov 0x[a-f0-9]+\(%rip\),%eax[ \t]+# [a-f0-9]+ <.got> + +[a-f0-9]+: 40 8b 05 ([0-9a-f]{2} ){4}[ \t]+rex mov 0x[a-f0-9]+\(%rip\),%eax[ \t]+# [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> +[a-f0-9]+: 0f 1f 00 nopl \(%rax\) +[a-f0-9]+: 64 8b 0c 25 00 00 00 00 mov %fs:0x0,%ecx - +[a-f0-9]+: 40 03 0d ([0-9a-f]{2} ){4}[ \t]+rex add 0x[a-f0-9]+\(%rip\),%ecx[ \t]+# [a-f0-9]+ <.got> + +[a-f0-9]+: 40 03 0d ([0-9a-f]{2} ){4}[ \t]+rex add 0x[a-f0-9]+\(%rip\),%ecx[ \t]+# [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> #pass diff --git a/ld/testsuite/ld-x86-64/pr25416-4.d b/ld/testsuite/ld-x86-64/pr25416-4.d index 8d91fbc0a66..d98121f1f31 100644 --- a/ld/testsuite/ld-x86-64/pr25416-4.d +++ b/ld/testsuite/ld-x86-64/pr25416-4.d @@ -9,8 +9,8 @@ Disassembly of section .text: [a-f0-9]+ <_start>: - +[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4}[ \t]+mov 0x[a-f0-9]+\(%rip\),%rax[ \t]+# [a-f0-9]+ <.got> + +[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4}[ \t]+mov 0x[a-f0-9]+\(%rip\),%rax[ \t]+# [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> +[a-f0-9]+: 66 90 xchg %ax,%ax +[a-f0-9]+: 64 8b 0c 25 00 00 00 00 mov %fs:0x0,%ecx - +[a-f0-9]+: 40 03 0d ([0-9a-f]{2} ){4}[ \t]+rex add 0x[a-f0-9]+\(%rip\),%ecx[ \t]+# [a-f0-9]+ <.got> + +[a-f0-9]+: 40 03 0d ([0-9a-f]{2} ){4}[ \t]+rex add 0x[a-f0-9]+\(%rip\),%ecx[ \t]+# [a-f0-9]+ <_DYNAMIC\+0x[a-f0-9]+> #pass diff --git a/ld/testsuite/ld-x86-64/tlsbin.rd b/ld/testsuite/ld-x86-64/tlsbin.rd index c535732b759..54fe876ecc2 100644 --- a/ld/testsuite/ld-x86-64/tlsbin.rd +++ b/ld/testsuite/ld-x86-64/tlsbin.rd @@ -75,19 +75,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND * -.* SECTION +LOCAL +DEFAULT +1 * -.* SECTION +LOCAL +DEFAULT +2 * -.* SECTION +LOCAL +DEFAULT +3 * -.* SECTION +LOCAL +DEFAULT +4 * -.* SECTION +LOCAL +DEFAULT +5 * -.* SECTION +LOCAL +DEFAULT +6 * -.* SECTION +LOCAL +DEFAULT +7 * -.* SECTION +LOCAL +DEFAULT +8 * -.* SECTION +LOCAL +DEFAULT +9 * -.* SECTION +LOCAL +DEFAULT +10 * -.* SECTION +LOCAL +DEFAULT +11 * -.* SECTION +LOCAL +DEFAULT +12 * -.* SECTION +LOCAL +DEFAULT +13 * .* FILE +LOCAL +DEFAULT +ABS .*tlsbinpic.o .* TLS +LOCAL +DEFAULT +9 sl1 .* TLS +LOCAL +DEFAULT +9 sl2 diff --git a/ld/testsuite/ld-x86-64/tlsbin2.rd b/ld/testsuite/ld-x86-64/tlsbin2.rd index b1205fe49a7..495115eb708 100644 --- a/ld/testsuite/ld-x86-64/tlsbin2.rd +++ b/ld/testsuite/ld-x86-64/tlsbin2.rd @@ -70,17 +70,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND * -.* SECTION +LOCAL +DEFAULT +1 * -.* SECTION +LOCAL +DEFAULT +2 * -.* SECTION +LOCAL +DEFAULT +3 * -.* SECTION +LOCAL +DEFAULT +4 * -.* SECTION +LOCAL +DEFAULT +5 * -.* SECTION +LOCAL +DEFAULT +6 * -.* SECTION +LOCAL +DEFAULT +7 * -.* SECTION +LOCAL +DEFAULT +8 * -.* SECTION +LOCAL +DEFAULT +9 * -.* SECTION +LOCAL +DEFAULT +10 * -.* SECTION +LOCAL +DEFAULT +11 * .* FILE +LOCAL +DEFAULT +ABS .*tlsbinpic2.o .* TLS +LOCAL +DEFAULT +7 sl1 .* TLS +LOCAL +DEFAULT +7 sl2 diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.rd b/ld/testsuite/ld-x86-64/tlsbindesc.rd index 9e46ca1d0fc..682c4a066a2 100644 --- a/ld/testsuite/ld-x86-64/tlsbindesc.rd +++ b/ld/testsuite/ld-x86-64/tlsbindesc.rd @@ -68,17 +68,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * .* FILE +LOCAL +DEFAULT +ABS .*tlsbindesc.o +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +7 sl1 +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +7 sl2 diff --git a/ld/testsuite/ld-x86-64/tlsdesc.rd b/ld/testsuite/ld-x86-64/tlsdesc.rd index a15c6e0f22a..58feb20e55a 100644 --- a/ld/testsuite/ld-x86-64/tlsdesc.rd +++ b/ld/testsuite/ld-x86-64/tlsdesc.rd @@ -100,18 +100,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +11 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +12 * .* FILE +LOCAL +DEFAULT +ABS .*tlsdesc.o +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +8 sl1 +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +8 sl2 diff --git a/ld/testsuite/ld-x86-64/tlsgdesc.rd b/ld/testsuite/ld-x86-64/tlsgdesc.rd index 77e8ae3d819..ca8f19bf3f7 100644 --- a/ld/testsuite/ld-x86-64/tlsgdesc.rd +++ b/ld/testsuite/ld-x86-64/tlsgdesc.rd @@ -73,16 +73,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name +[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +1 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +2 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +3 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +4 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +5 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +6 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +7 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +8 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +9 * - +[0-9]+: [0-9a-f]+ +0 +SECTION +LOCAL +DEFAULT +10 * +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +8 _DYNAMIC +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _GLOBAL_OFFSET_TABLE_ +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +UND sG3 diff --git a/ld/testsuite/ld-x86-64/tlspic.rd b/ld/testsuite/ld-x86-64/tlspic.rd index 024e124e515..2e44dc6ac6b 100644 --- a/ld/testsuite/ld-x86-64/tlspic.rd +++ b/ld/testsuite/ld-x86-64/tlspic.rd @@ -84,18 +84,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND * -.* SECTION +LOCAL +DEFAULT +1 * -.* SECTION +LOCAL +DEFAULT +2 * -.* SECTION +LOCAL +DEFAULT +3 * -.* SECTION +LOCAL +DEFAULT +4 * -.* SECTION +LOCAL +DEFAULT +5 * -.* SECTION +LOCAL +DEFAULT +6 * -.* SECTION +LOCAL +DEFAULT +7 * -.* SECTION +LOCAL +DEFAULT +8 * -.* SECTION +LOCAL +DEFAULT +9 * -.* SECTION +LOCAL +DEFAULT +10 * -.* SECTION +LOCAL +DEFAULT +11 * -.* SECTION +LOCAL +DEFAULT +12 * .* FILE +LOCAL +DEFAULT +ABS .*tlspic1.o .* TLS +LOCAL +DEFAULT +8 sl1 .* TLS +LOCAL +DEFAULT +8 sl2 diff --git a/ld/testsuite/ld-x86-64/tlspic2.rd b/ld/testsuite/ld-x86-64/tlspic2.rd index a39a8fe0d0d..60decd2787b 100644 --- a/ld/testsuite/ld-x86-64/tlspic2.rd +++ b/ld/testsuite/ld-x86-64/tlspic2.rd @@ -81,18 +81,6 @@ Symbol table '\.dynsym' contains [0-9]+ entries: Symbol table '\.symtab' contains [0-9]+ entries: +Num: +Value +Size +Type +Bind +Vis +Ndx +Name .* NOTYPE +LOCAL +DEFAULT +UND * -.* SECTION +LOCAL +DEFAULT +1 * -.* SECTION +LOCAL +DEFAULT +2 * -.* SECTION +LOCAL +DEFAULT +3 * -.* SECTION +LOCAL +DEFAULT +4 * -.* SECTION +LOCAL +DEFAULT +5 * -.* SECTION +LOCAL +DEFAULT +6 * -.* SECTION +LOCAL +DEFAULT +7 * -.* SECTION +LOCAL +DEFAULT +8 * -.* SECTION +LOCAL +DEFAULT +9 * -.* SECTION +LOCAL +DEFAULT +10 * -.* SECTION +LOCAL +DEFAULT +11 * -.* SECTION +LOCAL +DEFAULT +12 * .* FILE +LOCAL +DEFAULT +ABS .*tlspic3.o .* TLS +LOCAL +DEFAULT +8 sl1 .* TLS +LOCAL +DEFAULT +8 sl2 -- 2.29.2