aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog30
-rw-r--r--bfd/elf-bfd.h3
-rw-r--r--bfd/elf.c56
-rw-r--r--bfd/elf32-i386.c42
-rw-r--r--bfd/elf64-x86-64.c15
-rw-r--r--bfd/elflink.c41
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/readelf.c1
-rw-r--r--include/ChangeLog7
-rw-r--r--include/bfdlink.h6
-rw-r--r--include/elf/common.h5
-rw-r--r--ld/ChangeLog29
-rw-r--r--ld/emulparams/elf32ppc.sh2
-rw-r--r--ld/emulparams/elf64_s390.sh1
-rw-r--r--ld/emulparams/elf_i386.sh1
-rw-r--r--ld/emulparams/elf_s390.sh1
-rw-r--r--ld/emulparams/elf_x86_64.sh1
-rw-r--r--ld/emultempl/elf32.em26
-rwxr-xr-xld/genscripts.sh31
-rw-r--r--ld/ldexp.c39
-rw-r--r--ld/ldexp.h4
-rw-r--r--ld/ldgram.y4
-rw-r--r--ld/ldlang.c14
-rw-r--r--ld/ldlex.l1
-rw-r--r--ld/ldmain.c1
-rw-r--r--ld/scripttempl/elf.sc63
-rw-r--r--ld/testsuite/ChangeLog64
-rw-r--r--ld/testsuite/ld-elfvsb/elfvsb.exp1
-rw-r--r--ld/testsuite/ld-i386/combreloc.d2
-rw-r--r--ld/testsuite/ld-i386/tlsbin.dd116
-rw-r--r--ld/testsuite/ld-i386/tlsbin.rd226
-rw-r--r--ld/testsuite/ld-i386/tlsbin.sd3
-rw-r--r--ld/testsuite/ld-i386/tlsbinpic.s3
-rw-r--r--ld/testsuite/ld-i386/tlsnopic.dd12
-rw-r--r--ld/testsuite/ld-i386/tlsnopic.rd147
-rw-r--r--ld/testsuite/ld-i386/tlsnopic.sd5
-rw-r--r--ld/testsuite/ld-i386/tlsnopic1.s2
-rw-r--r--ld/testsuite/ld-i386/tlspic.dd96
-rw-r--r--ld/testsuite/ld-i386/tlspic.rd206
-rw-r--r--ld/testsuite/ld-i386/tlspic.sd1
-rw-r--r--ld/testsuite/ld-ia64/tlsbin.rd110
-rw-r--r--ld/testsuite/ld-ia64/tlsbin.sd10
-rw-r--r--ld/testsuite/ld-ia64/tlsbin.td12
-rw-r--r--ld/testsuite/ld-ia64/tlspic.dd8
-rw-r--r--ld/testsuite/ld-ia64/tlspic.rd209
-rw-r--r--ld/testsuite/ld-ia64/tlspic.sd10
-rw-r--r--ld/testsuite/ld-ia64/tlspic.td12
-rw-r--r--ld/testsuite/ld-powerpc/tlsexe.r98
-rw-r--r--ld/testsuite/ld-powerpc/tlsexe32.r104
-rw-r--r--ld/testsuite/ld-powerpc/tlsexetoc.r94
-rw-r--r--ld/testsuite/ld-powerpc/tlsso.g12
-rw-r--r--ld/testsuite/ld-powerpc/tlsso.r219
-rw-r--r--ld/testsuite/ld-powerpc/tlsso32.d64
-rw-r--r--ld/testsuite/ld-powerpc/tlsso32.g8
-rw-r--r--ld/testsuite/ld-powerpc/tlsso32.r248
-rw-r--r--ld/testsuite/ld-powerpc/tlsso32.t4
-rw-r--r--ld/testsuite/ld-powerpc/tlstocso.g12
-rw-r--r--ld/testsuite/ld-powerpc/tlstocso.r211
-rw-r--r--ld/testsuite/ld-s390/tlsbin.dd232
-rw-r--r--ld/testsuite/ld-s390/tlsbin.rd198
-rw-r--r--ld/testsuite/ld-s390/tlsbin.sd6
-rw-r--r--ld/testsuite/ld-s390/tlsbin.td12
-rw-r--r--ld/testsuite/ld-s390/tlsbin_64.dd288
-rw-r--r--ld/testsuite/ld-s390/tlsbin_64.rd210
-rw-r--r--ld/testsuite/ld-s390/tlsbin_64.sd16
-rw-r--r--ld/testsuite/ld-s390/tlsbin_64.td12
-rw-r--r--ld/testsuite/ld-s390/tlsbinpic.s2
-rw-r--r--ld/testsuite/ld-s390/tlsbinpic_64.s2
-rw-r--r--ld/testsuite/ld-s390/tlspic.dd228
-rw-r--r--ld/testsuite/ld-s390/tlspic.rd211
-rw-r--r--ld/testsuite/ld-s390/tlspic.sd12
-rw-r--r--ld/testsuite/ld-s390/tlspic.td12
-rw-r--r--ld/testsuite/ld-s390/tlspic1.s2
-rw-r--r--ld/testsuite/ld-s390/tlspic1_64.s2
-rw-r--r--ld/testsuite/ld-s390/tlspic_64.dd270
-rw-r--r--ld/testsuite/ld-s390/tlspic_64.rd231
-rw-r--r--ld/testsuite/ld-s390/tlspic_64.sd22
-rw-r--r--ld/testsuite/ld-s390/tlspic_64.td12
-rw-r--r--ld/testsuite/ld-shared/shared.exp1
-rw-r--r--ld/testsuite/ld-x86-64/tlsbin.dd10
-rw-r--r--ld/testsuite/ld-x86-64/tlsbin.rd204
-rw-r--r--ld/testsuite/ld-x86-64/tlsbin.sd6
-rw-r--r--ld/testsuite/ld-x86-64/tlsbin.td12
-rw-r--r--ld/testsuite/ld-x86-64/tlspic.dd52
-rw-r--r--ld/testsuite/ld-x86-64/tlspic.rd230
-rw-r--r--ld/testsuite/ld-x86-64/tlspic.sd20
-rw-r--r--ld/testsuite/ld-x86-64/tlspic.td12
87 files changed, 2840 insertions, 2444 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a9088e5..fc12cb4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,33 @@
+2004-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * elflink.c (elf_bfd_final_link): Don't output STT_SECTION symbol
+ into .dynsym if elf_section_data (sec)->dynindx <= 0.
+ Adjust counting of last_local.
+ (_bfd_elf_link_renumber_dynsyms): Don't assign dynindx to sections
+ other than SHT_PROGBITS/SHT_NOBITS and neither for .got/.got.plt/.plt
+ created by the linker nor !SHF_ALLOC.
+
+ * elf32-i386.c (elf_i386_finish_dynamic_sections): Point
+ DT_PLTGOT to the start of the .got.plt section instead of the
+ .got output section. Set sh_entsize for .got section in addition
+ to .got.plt.
+ (elf_i386_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
+ is at sgot->output_section->vma.
+ * elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Point
+ DT_PLTGOT to the start of the .got.plt section instead of the
+ .got output section.
+ (elf64_x86_64_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
+ is at sgot->output_section->vma. Set sh_entsize for .got section
+ in addition to .got.plt.
+ * elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_RELRO.
+ (bfd_section_from_phdr): Likewise.
+ (map_sections_to_segments): Likewise.
+ (assign_file_positions_for_segments): Likewise.
+ (get_program_header_size): Likewise.
+ * elflink.c (bfd_elf_size_dynamic_sections): Set
+ elf_tdata (output_bfd)->relro from info->relro.
+ * elf-bfd.h (struct elf_obj_tdata): Add relro field.
+
2004-05-08 Alexandre Oliva <aoliva@redhat.com>
* elf32-frv.c (_frvfdpic_add_dyn_reloc): Don't warn when we get
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 9d0ec36..750cc1c 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -1211,6 +1211,9 @@ struct elf_obj_tdata
/* Segment flags for the PT_GNU_STACK segment. */
unsigned int stack_flags;
+ /* Should the PT_GNU_RELRO segment be emitted? */
+ bfd_boolean relro;
+
/* Symbol version definitions in external objects. */
Elf_Internal_Verdef *verdef;
diff --git a/bfd/elf.c b/bfd/elf.c
index 00443c2..8e208c2 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -974,6 +974,7 @@ _bfd_elf_print_private_bfd_data (bfd *abfd, void *farg)
case PT_TLS: pt = "TLS"; break;
case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break;
case PT_GNU_STACK: pt = "STACK"; break;
+ case PT_GNU_RELRO: pt = "RELRO"; break;
default: sprintf (buf, "0x%lx", p->p_type); pt = buf; break;
}
fprintf (f, "%8s off 0x", pt);
@@ -2300,6 +2301,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int index)
case PT_GNU_STACK:
return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "stack");
+ case PT_GNU_RELRO:
+ return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "relro");
+
default:
/* Check for any processor-specific program segment types.
If no handler for them, default to making "segment" sections. */
@@ -3547,6 +3551,21 @@ map_sections_to_segments (bfd *abfd)
pm = &m->next;
}
+ if (elf_tdata (abfd)->relro)
+ {
+ amt = sizeof (struct elf_segment_map);
+ m = bfd_zalloc (abfd, amt);
+ if (m == NULL)
+ goto error_return;
+ m->next = NULL;
+ m->p_type = PT_GNU_RELRO;
+ m->p_flags = PF_R;
+ m->p_flags_valid = 1;
+
+ *pm = m;
+ pm = &m->next;
+ }
+
free (sections);
sections = NULL;
@@ -4081,6 +4100,37 @@ Error: First section in segment (%s) starts at 0x%x whereas the segment starts a
if (! m->p_paddr_valid)
p->p_paddr = phdrs_paddr;
}
+ else if (p->p_type == PT_GNU_RELRO)
+ {
+ Elf_Internal_Phdr *lp;
+
+ for (lp = phdrs; lp < phdrs + count; ++lp)
+ {
+ if (lp->p_type == PT_LOAD
+ && lp->p_vaddr <= link_info->relro_end
+ && lp->p_vaddr >= link_info->relro_start
+ && lp->p_vaddr + lp->p_filesz
+ >= link_info->relro_end)
+ break;
+ }
+
+ if (lp < phdrs + count
+ && link_info->relro_end > lp->p_vaddr)
+ {
+ p->p_vaddr = lp->p_vaddr;
+ p->p_paddr = lp->p_paddr;
+ p->p_offset = lp->p_offset;
+ p->p_filesz = link_info->relro_end - lp->p_vaddr;
+ p->p_memsz = p->p_filesz;
+ p->p_align = 1;
+ p->p_flags = (lp->p_flags & ~PF_W);
+ }
+ else
+ {
+ memset (p, 0, sizeof *p);
+ p->p_type = PT_NULL;
+ }
+ }
}
}
@@ -4168,6 +4218,12 @@ get_program_header_size (bfd *abfd)
++segs;
}
+ if (elf_tdata (abfd)->relro)
+ {
+ /* We need a PT_GNU_RELRO segment. */
+ ++segs;
+ }
+
for (s = abfd->sections; s != NULL; s = s->next)
{
if ((s->flags & SEC_LOAD) != 0
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index a53d93e..dee26a0 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -2261,24 +2261,29 @@ elf_i386_relocate_section (bfd *output_bfd,
if (off >= (bfd_vma) -2)
abort ();
- relocation = htab->sgot->output_offset + off;
+ relocation = htab->sgot->output_section->vma
+ + htab->sgot->output_offset + off
+ - htab->sgotplt->output_section->vma
+ - htab->sgotplt->output_offset;
break;
case R_386_GOTOFF:
/* Relocation is relative to the start of the global offset
table. */
- /* Note that sgot->output_offset is not involved in this
- calculation. We always want the start of .got. If we
- defined _GLOBAL_OFFSET_TABLE in a different way, as is
+ /* Note that sgot is not involved in this
+ calculation. We always want the start of .got.plt. If we
+ defined _GLOBAL_OFFSET_TABLE_ in a different way, as is
permitted by the ABI, we might have to change this
calculation. */
- relocation -= htab->sgot->output_section->vma;
+ relocation -= htab->sgotplt->output_section->vma
+ + htab->sgotplt->output_offset;
break;
case R_386_GOTPC:
/* Use global offset table as symbol value. */
- relocation = htab->sgot->output_section->vma;
+ relocation = htab->sgotplt->output_section->vma
+ + htab->sgotplt->output_offset;
unresolved_reloc = FALSE;
break;
@@ -2699,12 +2704,15 @@ elf_i386_relocate_section (bfd *output_bfd,
abort ();
if (r_type == ELF32_R_TYPE (rel->r_info))
{
- relocation = htab->sgot->output_offset + off;
+ bfd_vma g_o_t = htab->sgotplt->output_section->vma
+ + htab->sgotplt->output_offset;
+ relocation = htab->sgot->output_section->vma
+ + htab->sgot->output_offset + off - g_o_t;
if ((r_type == R_386_TLS_IE || r_type == R_386_TLS_GOTIE)
&& tls_type == GOT_TLS_IE_BOTH)
relocation += 4;
if (r_type == R_386_TLS_IE)
- relocation += htab->sgot->output_section->vma;
+ relocation += g_o_t;
unresolved_reloc = FALSE;
}
else
@@ -2761,7 +2769,11 @@ elf_i386_relocate_section (bfd *output_bfd,
if (tls_type == GOT_TLS_IE_BOTH)
off += 4;
}
- bfd_put_32 (output_bfd, htab->sgot->output_offset + off,
+ bfd_put_32 (output_bfd,
+ htab->sgot->output_section->vma
+ + htab->sgot->output_offset + off
+ - htab->sgotplt->output_section->vma
+ - htab->sgotplt->output_offset,
contents + roff + 8);
/* Skip R_386_PLT32. */
rel++;
@@ -2823,7 +2835,10 @@ elf_i386_relocate_section (bfd *output_bfd,
bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
htab->tls_ldm_got.offset |= 1;
}
- relocation = htab->sgot->output_offset + off;
+ relocation = htab->sgot->output_section->vma
+ + htab->sgot->output_offset + off
+ - htab->sgotplt->output_section->vma
+ - htab->sgotplt->output_offset;
unresolved_reloc = FALSE;
break;
@@ -3159,7 +3174,8 @@ elf_i386_finish_dynamic_sections (bfd *output_bfd,
continue;
case DT_PLTGOT:
- dyn.d_un.d_ptr = htab->sgot->output_section->vma;
+ s = htab->sgotplt;
+ dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
break;
case DT_JMPREL:
@@ -3245,6 +3261,10 @@ elf_i386_finish_dynamic_sections (bfd *output_bfd,
elf_section_data (htab->sgotplt->output_section)->this_hdr.sh_entsize = 4;
}
+
+ if (htab->sgot && htab->sgot->_raw_size > 0)
+ elf_section_data (htab->sgot->output_section)->this_hdr.sh_entsize = 4;
+
return TRUE;
}
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index ee1b14e..f9eb7db 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -1911,9 +1911,11 @@ elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
if (off >= (bfd_vma) -2)
abort ();
- relocation = htab->sgot->output_offset + off;
- if (r_type == R_X86_64_GOTPCREL)
- relocation += htab->sgot->output_section->vma;
+ relocation = htab->sgot->output_section->vma
+ + htab->sgot->output_offset + off;
+ if (r_type != R_X86_64_GOTPCREL)
+ relocation -= htab->sgotplt->output_section->vma
+ - htab->sgotplt->output_offset;
break;
@@ -2664,7 +2666,8 @@ elf64_x86_64_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *inf
continue;
case DT_PLTGOT:
- dyn.d_un.d_ptr = htab->sgot->output_section->vma;
+ s = htab->sgotplt;
+ dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
break;
case DT_JMPREL:
@@ -2755,6 +2758,10 @@ elf64_x86_64_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *inf
GOT_ENTRY_SIZE;
}
+ if (htab->sgot && htab->sgot->_raw_size > 0)
+ elf_section_data (htab->sgot->output_section)->this_hdr.sh_entsize
+ = GOT_ENTRY_SIZE;
+
return TRUE;
}
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 32f4264..cee5909 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -622,8 +622,36 @@ _bfd_elf_link_renumber_dynsyms (bfd *output_bfd, struct bfd_link_info *info)
{
asection *p;
for (p = output_bfd->sections; p ; p = p->next)
- if ((p->flags & SEC_EXCLUDE) == 0)
- elf_section_data (p)->dynindx = ++dynsymcount;
+ if ((p->flags & SEC_EXCLUDE) == 0
+ && (p->flags & SEC_ALLOC) != 0)
+ switch (elf_section_data (p)->this_hdr.sh_type)
+ {
+ case SHT_PROGBITS:
+ case SHT_NOBITS:
+ /* If sh_type is yet undecided, assume it could be
+ SHT_PROGBITS/SHT_NOBITS. */
+ case SHT_NULL:
+ if (strcmp (p->name, ".got") == 0
+ || strcmp (p->name, ".got.plt") == 0
+ || strcmp (p->name, ".plt") == 0)
+ {
+ asection *ip;
+ bfd *dynobj = elf_hash_table (info)->dynobj;
+
+ if (dynobj != NULL
+ && (ip = bfd_get_section_by_name (dynobj, p->name))
+ != NULL
+ && (ip->flags & SEC_LINKER_CREATED)
+ && ip->output_section == p)
+ continue;
+ }
+ elf_section_data (p)->dynindx = ++dynsymcount;
+ break;
+ /* There shouldn't be section relative relocations
+ against any other section. */
+ default:
+ break;
+ }
}
if (elf_hash_table (info)->dynlocal)
@@ -4621,6 +4649,7 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
if (!is_elf_hash_table (info->hash))
return TRUE;
+ elf_tdata (output_bfd)->relro = info->relro;
if (info->execstack)
elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
else if (info->noexecstack)
@@ -7654,16 +7683,18 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
bfd_byte *dest;
long dynindx;
- indx = elf_section_data (s)->this_idx;
dynindx = elf_section_data (s)->dynindx;
+ if (dynindx <= 0)
+ continue;
+ indx = elf_section_data (s)->this_idx;
BFD_ASSERT (indx > 0);
sym.st_shndx = indx;
sym.st_value = s->vma;
dest = dynsym + dynindx * bed->s->sizeof_sym;
+ if (last_local < dynindx)
+ last_local = dynindx;
bed->s->swap_symbol_out (abfd, &sym, dest, 0);
}
-
- last_local = bfd_count_sections (abfd);
}
/* Write out the local dynsyms. */
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 26298dc..a315869 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2004-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * readelf.c (get_segment_type): Handle PT_GNU_RELRO.
+
2004-05-07 H.J. Lu <hongjiu.lu@intel.com>
* readelf.c (section_groups): New.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 5a4ad45..1c4e57d 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -2189,6 +2189,7 @@ get_segment_type (unsigned long p_type)
case PT_GNU_EH_FRAME:
return "GNU_EH_FRAME";
case PT_GNU_STACK: return "STACK";
+ case PT_GNU_RELRO: return "GNU_RELRO";
default:
if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
diff --git a/include/ChangeLog b/include/ChangeLog
index 4e92371..804d97f 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,10 @@
+2004-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * bfdlink.h (struct bfd_link_info): Add relro, relro_start and
+ relro_end fields.
+ * elf/common.h (PT_GNU_EH_FRAME, PT_GNU_STACK): Add comments.
+ (PT_GNU_RELRO): Define.
+
2004-05-04 Andreas Jaeger <aj@suse.de>
* demangle.h: Do not use C++ reserved keyword typename as
diff --git a/include/bfdlink.h b/include/bfdlink.h
index cc2043e..881d7d4 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -302,6 +302,9 @@ struct bfd_link_info
flags. */
unsigned int noexecstack: 1;
+ /* TRUE if PT_GNU_RELRO segment should be created. */
+ unsigned int relro: 1;
+
/* What to do with unresolved symbols in an object file.
When producing executables the default is GENERATE_ERROR.
When producing shared libraries the default is IGNORE. The
@@ -391,6 +394,9 @@ struct bfd_link_info
/* May be used to set DT_FLAGS_1 for ELF. */
bfd_vma flags_1;
+
+ /* Start and end of RELRO region. */
+ bfd_vma relro_start, relro_end;
};
/* This structures holds a set of callback functions. These are
diff --git a/include/elf/common.h b/include/elf/common.h
index 8ebc2cf..dbcb5d2 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -288,8 +288,9 @@
#define PT_LOPROC 0x70000000 /* Processor-specific */
#define PT_HIPROC 0x7FFFFFFF /* Processor-specific */
-#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550)
-#define PT_GNU_STACK (PT_LOOS + 0x474e551)
+#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550) /* Frame unwind information */
+#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
+#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
/* Program segment permissions, in program header p_flags field. */
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 2487560..6ff73a4 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,32 @@
+2004-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * genscripts.sh: Generate -z combreloc -z now -z relro scripts
+ for binaries, -shared and -pie.
+ * emulparams/elf_i386.sh (SEPARATE_GOTPLT): Set.
+ * emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Set.
+ * emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS): Rename to...
+ (OTHER_RELRO_SECTIONS): ... this.
+ * ldlex.l (DATA_SEGMENT_RELRO_END): Add.
+ * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle
+ -z relro and -z norelro.
+ (gld${EMULATION_NAME}_list_options): Add it to usage.
+ (gld${EMULATION_NAME}_get_script): Return -z combreloc -z now
+ -z relro scripts when appropriate.
+ * scripttempl/elf.sc: Unset SEPARATE_GOTPLT if RELRO_NOW is set.
+ Create separate .got.plt section if SEPARATE_GOTPLT.
+ Move sections which are only written during relocation handling
+ to the beginning of RW segment. If NO_SMALL_DATA, move .got
+ before .data. Add DATA_SEGMENT_RELRO_END directive.
+ Include OTHER_RELRO_SECTIONS.
+ * ldgram.y (DATA_SEGMENT_RELRO_END): Add.
+ * ldexp.c (exp_print_token): Handle DATA_SEGMENT_RELRO_END.
+ (fold_unary): Likewise.
+ (fold_binary): Handle -z relro.
+ * ldexp.h (struct exp_data_seg): Add exp_dataseg_relro_seen and
+ exp_dataseg_relro_adjust phases. Add relro_end field.
+ * ldmain.c (main): Initialize link_info.relro to FALSE.
+ * ldlang.c (lang_size_sections): Handle -z relro.
+
2004-05-08 Marek Michalkiewicz <marekm@amelek.gda.pl>
* scripttempl/avr.sc: Do not set LMA for "eeprom" section.
diff --git a/ld/emulparams/elf32ppc.sh b/ld/emulparams/elf32ppc.sh
index d95cb78..3e5224f 100644
--- a/ld/emulparams/elf32ppc.sh
+++ b/ld/emulparams/elf32ppc.sh
@@ -15,7 +15,7 @@ MACHINE=
BSS_PLT=
EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);'
OTHER_BSS_END_SYMBOLS='__end = .;'
-OTHER_READWRITE_SECTIONS="
+OTHER_RELRO_SECTIONS="
.fixup ${RELOCATING-0} : { *(.fixup) }
.got1 ${RELOCATING-0} : { *(.got1) }
.got2 ${RELOCATING-0} : { *(.got2) }
diff --git a/ld/emulparams/elf64_s390.sh b/ld/emulparams/elf64_s390.sh
index 0c689a9..ea75d31 100644
--- a/ld/emulparams/elf64_s390.sh
+++ b/ld/emulparams/elf64_s390.sh
@@ -3,6 +3,7 @@ ELFSIZE=64
OUTPUT_FORMAT="elf64-s390"
TEXT_START_ADDR=0x80000000
MAXPAGESIZE=0x1000
+COMMONPAGESIZE=0x1000
NONPAGED_TEXT_START_ADDR=0x80000000
ARCH="s390:64-bit"
MACHINE=
diff --git a/ld/emulparams/elf_i386.sh b/ld/emulparams/elf_i386.sh
index 2382286..af7010b 100644
--- a/ld/emulparams/elf_i386.sh
+++ b/ld/emulparams/elf_i386.sh
@@ -11,3 +11,4 @@ TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
+SEPARATE_GOTPLT=12
diff --git a/ld/emulparams/elf_s390.sh b/ld/emulparams/elf_s390.sh
index e710673..8d057dc 100644
--- a/ld/emulparams/elf_s390.sh
+++ b/ld/emulparams/elf_s390.sh
@@ -2,6 +2,7 @@ SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-s390"
TEXT_START_ADDR=0x00400000
MAXPAGESIZE=0x1000
+COMMONPAGESIZE=0x1000
NONPAGED_TEXT_START_ADDR=0x00400000
ARCH="s390:31-bit"
MACHINE=
diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh
index 6d37058..172b4b1 100644
--- a/ld/emulparams/elf_x86_64.sh
+++ b/ld/emulparams/elf_x86_64.sh
@@ -12,6 +12,7 @@ TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
+SEPARATE_GOTPLT=24
if [ "x${host}" = "x${target}" ]; then
case " $EMULATION_LIBPATH " in
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index 1a838f3..8e1c319 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1458,6 +1458,10 @@ sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
fi
if test -n "$GENERATE_PIE_SCRIPT" ; then
if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
+echo ' ; else if (link_info.pie && link_info.combreloc' >> e${EMULATION_NAME}.c
+echo ' && link_info.relro' >> e${EMULATION_NAME}.c
+echo ' && (link_info.flags & DT_BIND_NOW)) return' >> e${EMULATION_NAME}.c
+sed $sc ldscripts/${EMULATION_NAME}.xdw >> e${EMULATION_NAME}.c
echo ' ; else if (link_info.pie && link_info.combreloc) return' >> e${EMULATION_NAME}.c
sed $sc ldscripts/${EMULATION_NAME}.xdc >> e${EMULATION_NAME}.c
fi
@@ -1466,6 +1470,10 @@ sed $sc ldscripts/${EMULATION_NAME}.xd >> e${EMULATION_NAME}.c
fi
if test -n "$GENERATE_SHLIB_SCRIPT" ; then
if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
+echo ' ; else if (link_info.shared && link_info.combreloc' >> e${EMULATION_NAME}.c
+echo ' && link_info.relro' >> e${EMULATION_NAME}.c
+echo ' && (link_info.flags & DT_BIND_NOW)) return' >> e${EMULATION_NAME}.c
+sed $sc ldscripts/${EMULATION_NAME}.xsw >> e${EMULATION_NAME}.c
echo ' ; else if (link_info.shared && link_info.combreloc) return' >> e${EMULATION_NAME}.c
sed $sc ldscripts/${EMULATION_NAME}.xsc >> e${EMULATION_NAME}.c
fi
@@ -1473,6 +1481,9 @@ echo ' ; else if (link_info.shared) return' >> e${EMULATION_NAME}.c
sed $sc ldscripts/${EMULATION_NAME}.xs >> e${EMULATION_NAME}.c
fi
if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
+echo ' ; else if (link_info.combreloc && link_info.relro' >> e${EMULATION_NAME}.c
+echo ' && (link_info.flags & DT_BIND_NOW)) return' >> e${EMULATION_NAME}.c
+sed $sc ldscripts/${EMULATION_NAME}.xw >> e${EMULATION_NAME}.c
echo ' ; else if (link_info.combreloc) return' >> e${EMULATION_NAME}.c
sed $sc ldscripts/${EMULATION_NAME}.xc >> e${EMULATION_NAME}.c
fi
@@ -1504,6 +1515,9 @@ fi
if test -n "$GENERATE_PIE_SCRIPT" ; then
if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
cat >>e${EMULATION_NAME}.c <<EOF
+ else if (link_info.pie && link_info.combreloc
+ && link_info.relro && (link_info.flags & DT_BIND_NOW))
+ return "ldscripts/${EMULATION_NAME}.xdw";
else if (link_info.pie && link_info.combreloc)
return "ldscripts/${EMULATION_NAME}.xdc";
EOF
@@ -1516,6 +1530,9 @@ fi
if test -n "$GENERATE_SHLIB_SCRIPT" ; then
if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
cat >>e${EMULATION_NAME}.c <<EOF
+ else if (link_info.shared && link_info.combreloc
+ && link_info.relro && (link_info.flags & DT_BIND_NOW))
+ return "ldscripts/${EMULATION_NAME}.xsw";
else if (link_info.shared && link_info.combreloc)
return "ldscripts/${EMULATION_NAME}.xsc";
EOF
@@ -1527,6 +1544,9 @@ EOF
fi
if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
cat >>e${EMULATION_NAME}.c <<EOF
+ else if (link_info.combreloc && link_info.relro
+ && (link_info.flags & DT_BIND_NOW))
+ return "ldscripts/${EMULATION_NAME}.xw";
else if (link_info.combreloc)
return "ldscripts/${EMULATION_NAME}.xc";
EOF
@@ -1666,6 +1686,10 @@ cat >>e${EMULATION_NAME}.c <<EOF
link_info.noexecstack = TRUE;
link_info.execstack = FALSE;
}
+ else if (strcmp (optarg, "relro") == 0)
+ link_info.relro = TRUE;
+ else if (strcmp (optarg, "norelro") == 0)
+ link_info.relro = FALSE;
/* What about the other Solaris -z options? FIXME. */
break;
EOF
@@ -1713,8 +1737,10 @@ cat >>e${EMULATION_NAME}.c <<EOF
fprintf (file, _(" -z nodlopen\t\tMark DSO not available to dlopen\n"));
fprintf (file, _(" -z nodump\t\tMark DSO not available to dldump\n"));
fprintf (file, _(" -z noexecstack\tMark executable as not requiring executable stack\n"));
+ fprintf (file, _(" -z norelro\t\tDon't create RELRO program header\n"));
fprintf (file, _(" -z now\t\tMark object non-lazy runtime binding\n"));
fprintf (file, _(" -z origin\t\tMark object requiring immediate \$ORIGIN processing\n\t\t\t at runtime\n"));
+ fprintf (file, _(" -z relro\t\tCreate RELRO program header\n"));
fprintf (file, _(" -z KEYWORD\t\tIgnored for Solaris compatibility\n"));
EOF
fi
diff --git a/ld/genscripts.sh b/ld/genscripts.sh
index 0168203..7f8db33 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -283,7 +283,16 @@ if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
. ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xc
rm -f ${COMBRELOC}
+ LD_FLAG=w
+ RELRO_NOW=" "
+ COMBRELOC=ldscripts/${EMULATION_NAME}.xw.tmp
+ ( echo "/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */"
+ . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
+ . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
+ ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xw
+ rm -f ${COMBRELOC}
COMBRELOC=
+ unset RELRO_NOW
fi
if test -n "$GENERATE_SHLIB_SCRIPT"; then
@@ -299,13 +308,22 @@ if test -n "$GENERATE_SHLIB_SCRIPT"; then
if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
LD_FLAG=cshared
DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
- COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp
+ COMBRELOC=ldscripts/${EMULATION_NAME}.xsc.tmp
( echo "/* Script for --shared -z combreloc: shared library, combine & sort relocs */"
. ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
. ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xsc
rm -f ${COMBRELOC}
+ LD_FLAG=wshared
+ RELRO_NOW=" "
+ COMBRELOC=ldscripts/${EMULATION_NAME}.xsw.tmp
+ ( echo "/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */"
+ . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
+ . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
+ ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xsw
+ rm -f ${COMBRELOC}
COMBRELOC=
+ unset RELRO_NOW
fi
unset CREATE_SHLIB
fi
@@ -323,13 +341,22 @@ if test -n "$GENERATE_PIE_SCRIPT"; then
if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
LD_FLAG=cpie
DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
- COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp
+ COMBRELOC=ldscripts/${EMULATION_NAME}.xdc.tmp
( echo "/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */"
. ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
. ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdc
rm -f ${COMBRELOC}
+ LD_FLAG=wpie
+ RELRO_NOW=" "
+ COMBRELOC=ldscripts/${EMULATION_NAME}.xdw.tmp
+ ( echo "/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */"
+ . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
+ . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
+ ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdw
+ rm -f ${COMBRELOC}
COMBRELOC=
+ unset RELRO_NOW
fi
unset CREATE_PIE
fi
diff --git a/ld/ldexp.c b/ld/ldexp.c
index 4d9a857..52e70a6 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -101,6 +101,7 @@ exp_print_token (token_code_type code, int infix_p)
{ MAX_K, "MAX_K" },
{ REL, "relocatable" },
{ DATA_SEGMENT_ALIGN, "DATA_SEGMENT_ALIGN" },
+ { DATA_SEGMENT_RELRO_END, "DATA_SEGMENT_RELRO_END" },
{ DATA_SEGMENT_END, "DATA_SEGMENT_END" }
};
unsigned int idx;
@@ -264,14 +265,36 @@ fold_unary (etree_type *tree,
result.valid_p = FALSE;
break;
+ case DATA_SEGMENT_RELRO_END:
+ if (allocation_done != lang_first_phase_enum
+ && (exp_data_seg.phase == exp_dataseg_align_seen
+ || exp_data_seg.phase == exp_dataseg_adjust
+ || exp_data_seg.phase == exp_dataseg_relro_adjust
+ || allocation_done != lang_allocating_phase_enum))
+ {
+ if (exp_data_seg.phase == exp_dataseg_align_seen
+ || exp_data_seg.phase == exp_dataseg_relro_adjust)
+ exp_data_seg.relro_end
+ = result.value + current_section->bfd_section->vma;
+ if (exp_data_seg.phase == exp_dataseg_align_seen)
+ exp_data_seg.phase = exp_dataseg_relro_seen;
+ result.value = dot - current_section->bfd_section->vma;
+ }
+ else
+ result.valid_p = FALSE;
+ break;
+
case DATA_SEGMENT_END:
if (allocation_done != lang_first_phase_enum
&& current_section == abs_output_section
&& (exp_data_seg.phase == exp_dataseg_align_seen
+ || exp_data_seg.phase == exp_dataseg_relro_seen
|| exp_data_seg.phase == exp_dataseg_adjust
+ || exp_data_seg.phase == exp_dataseg_relro_adjust
|| allocation_done != lang_allocating_phase_enum))
{
- if (exp_data_seg.phase == exp_dataseg_align_seen)
+ if (exp_data_seg.phase == exp_dataseg_align_seen
+ || exp_data_seg.phase == exp_dataseg_relro_seen)
{
exp_data_seg.phase = exp_dataseg_end_seen;
exp_data_seg.end = result.value;
@@ -392,12 +415,23 @@ fold_binary (etree_type *tree,
&& current_section == abs_output_section
&& (exp_data_seg.phase == exp_dataseg_none
|| exp_data_seg.phase == exp_dataseg_adjust
+ || exp_data_seg.phase == exp_dataseg_relro_adjust
|| allocation_done != lang_allocating_phase_enum))
{
bfd_vma maxpage = result.value;
result.value = align_n (dot, maxpage);
- if (exp_data_seg.phase != exp_dataseg_adjust)
+ if (exp_data_seg.phase == exp_dataseg_relro_adjust)
+ {
+ /* Attempt to align DATA_SEGMENT_RELRO_END at
+ a common page boundary. */
+ bfd_vma relro;
+
+ relro = exp_data_seg.relro_end - exp_data_seg.base;
+ result.value += -relro & (other.value - 1);
+ exp_data_seg.base = result.value;
+ }
+ else if (exp_data_seg.phase != exp_dataseg_adjust)
{
result.value += dot & (maxpage - 1);
if (allocation_done == lang_allocating_phase_enum)
@@ -405,6 +439,7 @@ fold_binary (etree_type *tree,
exp_data_seg.phase = exp_dataseg_align_seen;
exp_data_seg.base = result.value;
exp_data_seg.pagesize = other.value;
+ exp_data_seg.relro_end = 0;
}
}
else if (other.value < maxpage)
diff --git a/ld/ldexp.h b/ld/ldexp.h
index 99e7073..a90f1ef 100644
--- a/ld/ldexp.h
+++ b/ld/ldexp.h
@@ -95,10 +95,12 @@ extern struct exp_data_seg {
enum {
exp_dataseg_none,
exp_dataseg_align_seen,
+ exp_dataseg_relro_seen,
exp_dataseg_end_seen,
+ exp_dataseg_relro_adjust,
exp_dataseg_adjust
} phase;
- bfd_vma base, end, pagesize;
+ bfd_vma base, relro_end, end, pagesize;
} exp_data_seg;
typedef struct _fill_type fill_type;
diff --git a/ld/ldgram.y b/ld/ldgram.y
index 6c46c85..462bd42 100644
--- a/ld/ldgram.y
+++ b/ld/ldgram.y
@@ -128,7 +128,7 @@ static int error_index;
%token END
%left <token> '('
%token <token> ALIGN_K BLOCK BIND QUAD SQUAD LONG SHORT BYTE
-%token SECTIONS PHDRS SORT DATA_SEGMENT_ALIGN DATA_SEGMENT_END
+%token SECTIONS PHDRS SORT DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END DATA_SEGMENT_END
%token '{' '}'
%token SIZEOF_HEADERS OUTPUT_FORMAT FORCE_COMMON_ALLOCATION OUTPUT_ARCH
%token INHIBIT_COMMON_ALLOCATION
@@ -808,6 +808,8 @@ exp :
{ $$ = exp_binop(ALIGN_K,$3,$5); }
| DATA_SEGMENT_ALIGN '(' exp ',' exp ')'
{ $$ = exp_binop (DATA_SEGMENT_ALIGN, $3, $5); }
+ | DATA_SEGMENT_RELRO_END '(' exp ')'
+ { $$ = exp_unop(DATA_SEGMENT_RELRO_END, $3); }
| DATA_SEGMENT_END '(' exp ')'
{ $$ = exp_unop(DATA_SEGMENT_END, $3); }
| BLOCK '(' exp ')'
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 40feeb3..d0ceacf 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -3297,7 +3297,19 @@ lang_size_sections
exp_data_seg.phase = exp_dataseg_none;
result = lang_size_sections_1 (s, output_section_statement, prev, fill,
dot, relax, check_regions);
- if (exp_data_seg.phase == exp_dataseg_end_seen)
+ if (exp_data_seg.phase == exp_dataseg_end_seen
+ && link_info.relro && exp_data_seg.relro_end)
+ {
+ /* If DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END pair was seen, try
+ to put exp_data_seg.relro on a (common) page boundary. */
+
+ exp_data_seg.phase = exp_dataseg_relro_adjust;
+ result = lang_size_sections_1 (s, output_section_statement, prev, fill,
+ dot, relax, check_regions);
+ link_info.relro_start = exp_data_seg.base;
+ link_info.relro_end = exp_data_seg.relro_end;
+ }
+ else if (exp_data_seg.phase == exp_dataseg_end_seen)
{
/* If DATA_SEGMENT_ALIGN DATA_SEGMENT_END pair was seen, check whether
a page could be saved in the data segment. */
diff --git a/ld/ldlex.l b/ld/ldlex.l
index 0e810f5..9545531 100644
--- a/ld/ldlex.l
+++ b/ld/ldlex.l
@@ -249,6 +249,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
<BOTH,SCRIPT>"LENGTH" { RTOKEN(LENGTH);}
<EXPRESSION,BOTH,SCRIPT>"ALIGN" { RTOKEN(ALIGN_K);}
<EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_ALIGN" { RTOKEN(DATA_SEGMENT_ALIGN);}
+<EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_RELRO_END" { RTOKEN(DATA_SEGMENT_RELRO_END);}
<EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_END" { RTOKEN(DATA_SEGMENT_END);}
<EXPRESSION,BOTH,SCRIPT>"ADDR" { RTOKEN(ADDR);}
<EXPRESSION,BOTH,SCRIPT>"LOADADDR" { RTOKEN(LOADADDR);}
diff --git a/ld/ldmain.c b/ld/ldmain.c
index d0e0b12..eb036b0 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -303,6 +303,7 @@ main (int argc, char **argv)
link_info.new_dtags = FALSE;
link_info.combreloc = TRUE;
link_info.eh_frame_hdr = FALSE;
+ link_info.relro = FALSE;
link_info.strip_discarded = TRUE;
link_info.strip = strip_none;
link_info.discard = discard_sec_merge;
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index 63551a2..14728ee 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -10,6 +10,8 @@
# OTHER_TEXT_SECTIONS - these get put in .text when relocating
# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
# (e.g., .PARISC.global)
+# OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
+# (e.g. PPC32 .fixup, .got[12])
# OTHER_BSS_SECTIONS - other than .bss .sbss ...
# OTHER_SECTIONS - at the end
# EXECUTABLE_SYMBOLS - symbols that must be defined for an
@@ -37,6 +39,10 @@
# combination of .fini sections.
# STACK_ADDR - start of a .stack section.
# OTHER_END_SYMBOLS - symbols to place right at the end of the script.
+# SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
+# so that .got can be in the RELRO area. It should be set to
+# the number of bytes in the beginning of .got.plt which can be
+# in the RELRO area as well.
#
# When adding sections, do note that the names of some sections are used
# when specifying the start address of the next.
@@ -74,17 +80,33 @@ test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8"
test "$LD_FLAG" = "N" && DATA_ADDR=.
test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE=""
test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE=""
+test -n "$RELRO_NOW" && unset SEPARATE_GOTPLT
DATA_SEGMENT_ALIGN="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))"
+DATA_SEGMENT_RELRO_END=""
+DATA_SEGMENT_RELRO_GOTPLT_END=""
DATA_SEGMENT_END=""
if test -n "${COMMONPAGESIZE}"; then
DATA_SEGMENT_ALIGN="ALIGN (${SEGMENT_SIZE}) - ((${MAXPAGESIZE} - .) & (${MAXPAGESIZE} - 1)); . = DATA_SEGMENT_ALIGN (${MAXPAGESIZE}, ${COMMONPAGESIZE})"
DATA_SEGMENT_END=". = DATA_SEGMENT_END (.);"
+ if test -n "${SEPARATE_GOTPLT}"; then
+ DATA_SEGMENT_RELRO_GOTPLT_END=". = DATA_SEGMENT_RELRO_END (. + ${SEPARATE_GOTPLT});"
+ else
+ DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (.);"
+ fi
fi
INTERP=".interp ${RELOCATING-0} : { *(.interp) }"
PLT=".plt ${RELOCATING-0} : { *(.plt) }"
-test -z "$GOT" && GOT=".got ${RELOCATING-0} : { *(.got.plt) *(.got) }"
+if test -z "$GOT"; then
+ if test -z "$SEPARATE_GOTPLT"; then
+ GOT=".got ${RELOCATING-0} : { *(.got.plt) *(.got) }"
+ else
+ GOT=".got ${RELOCATING-0} : { *(.got) }"
+ GOTPLT=".got.plt ${RELOCATING-0} : { ${RELOCATING+${DATA_SEGMENT_RELRO_GOTPLT_END}} *(.got.plt) }"
+ fi
+fi
DYNAMIC=".dynamic ${RELOCATING-0} : { *(.dynamic) }"
RODATA=".rodata ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.* .gnu.linkonce.r.*}) }"
+DATARELRO=".data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }"
STACKNOTE="/DISCARD/ : { *(.note.GNU-stack) }"
if test -z "${NO_SMALL_DATA}"; then
SBSS=".sbss ${RELOCATING-0} :
@@ -115,7 +137,10 @@ if test -z "${NO_SMALL_DATA}"; then
.rela.sdata2 ${RELOCATING-0} : { *(.rela.sdata2${RELOCATING+ .rela.sdata2.* .rela.gnu.linkonce.s2.*}) }"
REL_SBSS2=".rel.sbss2 ${RELOCATING-0} : { *(.rel.sbss2${RELOCATING+ .rel.sbss2.* .rel.gnu.linkonce.sb2.*}) }
.rela.sbss2 ${RELOCATING-0} : { *(.rela.sbss2${RELOCATING+ .rela.sbss2.* .rela.gnu.linkonce.sb2.*}) }"
+else
+ NO_SMALL_DATA=" "
fi
+test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
CTOR=".ctors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+${CTOR_START}}
@@ -211,6 +236,8 @@ eval $COMBRELOCCAT <<EOF
.rel.rodata ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.* .rel.gnu.linkonce.r.*}) }
.rela.rodata ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.* .rela.gnu.linkonce.r.*}) }
${OTHER_READONLY_RELOC_SECTIONS}
+ .rel.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }
+ .rela.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }
.rel.data ${RELOCATING-0} : { *(.rel.data${RELOCATING+ .rel.data.* .rel.gnu.linkonce.d.*}) }
.rela.data ${RELOCATING-0} : { *(.rela.data${RELOCATING+ .rela.data.* .rela.gnu.linkonce.d.*}) }
.rel.tdata ${RELOCATING-0} : { *(.rel.tdata${RELOCATING+ .rel.tdata.* .rel.gnu.linkonce.td.*}) }
@@ -291,6 +318,14 @@ cat <<EOF
${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
${CREATE_PIE+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
+ /* Exception handling */
+ .eh_frame ${RELOCATING-0} : { KEEP (*(.eh_frame)) }
+ .gcc_except_table ${RELOCATING-0} : { *(.gcc_except_table) }
+
+ /* Thread Local Storage sections */
+ .tdata ${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
+ .tbss ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
+
/* Ensure the __preinit_array_start label is properly aligned. We
could instead move the label definition inside the section, but
the linker would then create the section even if it turns out to
@@ -308,6 +343,21 @@ cat <<EOF
.fini_array ${RELOCATING-0} : { *(.fini_array) }
${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_end = .);}}
+ ${RELOCATING+${CTOR}}
+ ${RELOCATING+${DTOR}}
+ .jcr ${RELOCATING-0} : { KEEP (*(.jcr)) }
+
+ ${RELOCATING+${DATARELRO}}
+ ${OTHER_RELRO_SECTIONS}
+ ${TEXT_DYNAMIC-${DYNAMIC}}
+ ${NO_SMALL_DATA+${RELRO_NOW+${GOT}}}
+ ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOT}}}}
+ ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOTPLT}}}}
+ ${RELOCATING+${DATA_SEGMENT_RELRO_END}}
+ ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}}}}
+
+ ${DATA_PLT+${PLT}}
+
.data ${RELOCATING-0} :
{
${RELOCATING+${DATA_START_SYMBOLS}}
@@ -316,19 +366,10 @@ cat <<EOF
${CONSTRUCTING+SORT(CONSTRUCTORS)}
}
.data1 ${RELOCATING-0} : { *(.data1) }
- .tdata ${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
- .tbss ${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
- .eh_frame ${RELOCATING-0} : { KEEP (*(.eh_frame)) }
- .gcc_except_table ${RELOCATING-0} : { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
${WRITABLE_RODATA+${RODATA}}
${OTHER_READWRITE_SECTIONS}
- ${TEXT_DYNAMIC-${DYNAMIC}}
- ${RELOCATING+${CTOR}}
- ${RELOCATING+${DTOR}}
- .jcr ${RELOCATING-0} : { KEEP (*(.jcr)) }
- ${DATA_PLT+${PLT}}
${RELOCATING+${OTHER_GOT_SYMBOLS}}
- ${GOT}
+ ${NO_SMALL_DATA-${GOT}}
${OTHER_GOT_SECTIONS}
${CREATE_SHLIB+${SDATA2}}
${CREATE_SHLIB+${SBSS2}}
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index acb5c95..3abac4c 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,67 @@
+2004-05-11 Jakub Jelinek <jakub@redhat.com>
+
+ * ld-i386/tlspic.rd: Adjust for section reordering changes
+ and removal of unneeded STT_SECTION symbols from .dynsym.
+ * ld-i386/tlspic.dd: Likewise.
+ * ld-i386/tlspic.sd: Likewise.
+ * ld-i386/tlsbin.rd: Likewise.
+ * ld-i386/tlsbinpic.s: Likewise.
+ * ld-i386/tlsbin.dd: Likewise.
+ * ld-i386/tlsbin.sd: Likewise.
+ * ld-i386/tlsnopic.rd: Likewise.
+ * ld-i386/tlsnopic1.s: Likewise.
+ * ld-i386/combreloc.d: Likewise.
+ * ld-i386/tlsnopic.dd: Likewise.
+ * ld-i386/tlsnopic.sd: Likewise.
+ * ld-x86-64/tlspic.rd: Likewise.
+ * ld-x86-64/tlspic.dd: Likewise.
+ * ld-x86-64/tlsbin.dd: Likewise.
+ * ld-x86-64/tlspic.sd: Likewise.
+ * ld-x86-64/tlsbin.sd: Likewise.
+ * ld-x86-64/tlspic.td: Likewise.
+ * ld-x86-64/tlsbin.td: Likewise.
+ * ld-x86-64/tlsbin.rd: Likewise.
+ * ld-s390/tlspic1.s: Likewise.
+ * ld-s390/tlsbinpic.s: Likewise.
+ * ld-s390/tlspic.rd: Likewise.
+ * ld-s390/tlsbin.rd: Likewise.
+ * ld-s390/tlspic.dd: Likewise.
+ * ld-s390/tlsbin.dd: Likewise.
+ * ld-s390/tlsbin.sd: Likewise.
+ * ld-s390/tlsbin.td: Likewise.
+ * ld-s390/tlspic.sd: Likewise.
+ * ld-s390/tlspic.td: Likewise.
+ * ld-s390/tlspic1_64.s: Likewise.
+ * ld-s390/tlsbinpic_64.s: Likewise.
+ * ld-s390/tlspic_64.rd: Likewise.
+ * ld-s390/tlsbin_64.rd: Likewise.
+ * ld-s390/tlspic_64.dd: Likewise.
+ * ld-s390/tlsbin_64.dd: Likewise.
+ * ld-s390/tlspic_64.sd: Likewise.
+ * ld-s390/tlspic_64.td: Likewise.
+ * ld-s390/tlsbin_64.td: Likewise.
+ * ld-s390/tlsbin_64.sd: Likewise.
+ * ld-powerpc/tlsexe32.r: Likewise.
+ * ld-powerpc/tlsso32.r: Likewise.
+ * ld-powerpc/tlsso32.d: Likewise.
+ * ld-powerpc/tlsso32.g: Likewise.
+ * ld-powerpc/tlsso32.t: Likewise.
+ * ld-powerpc/tlsexe.r: Likewise.
+ * ld-powerpc/tlsso.r: Likewise.
+ * ld-powerpc/tlsso.g: Likewise.
+ * ld-powerpc/tlsexetoc.r: Likewise.
+ * ld-powerpc/tlstocso.r: Likewise.
+ * ld-powerpc/tlstocso.g: Likewise.
+ * ld-ia64/tlspic.rd: Likewise.
+ * ld-ia64/tlspic.dd: Likewise.
+ * ld-ia64/tlspic.sd: Likewise.
+ * ld-ia64/tlspic.td: Likewise.
+ * ld-ia64/tlsbin.rd: Likewise.
+ * ld-ia64/tlsbin.sd: Likewise.
+ * ld-ia64/tlsbin.td: Likewise.
+ * ld-elfvsb/elfvsb.exp: XFAIL non-PIC load offset tests on s390x.
+ * ld-shared/shared.exp: Likewise.
+
2004-05-10 John Paul Wallington <jpw@gnu.org>
* ld-mmix/bspec2.d: Update sh_info to decimal.
diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp
index cd7c15f..b0adabe 100644
--- a/ld/testsuite/ld-elfvsb/elfvsb.exp
+++ b/ld/testsuite/ld-elfvsb/elfvsb.exp
@@ -292,6 +292,7 @@ proc visibility_run {visibility} {
|| [ string match $visibility "protected_weak" ]
|| [ string match $visibility "normal" ] } {
setup_xfail "powerpc-*-linux*"
+ setup_xfail "s390x-*-linux*"
if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } {
setup_xfail "sparc*-*-linux*"
}
diff --git a/ld/testsuite/ld-i386/combreloc.d b/ld/testsuite/ld-i386/combreloc.d
index 762f481..a6f482d 100644
--- a/ld/testsuite/ld-i386/combreloc.d
+++ b/ld/testsuite/ld-i386/combreloc.d
@@ -8,10 +8,10 @@
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
Offset Info Type Sym.Value Sym. Name
+[0-9a-f]+ [0-9a-f]+06 R_386_GLOB_DAT [0-9a-f]+ _start
[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start
[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start
[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start
-[0-9a-f]+ [0-9a-f]+06 R_386_GLOB_DAT [0-9a-f]+ _start
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym.Value Sym. Name
diff --git a/ld/testsuite/ld-i386/tlsbin.dd b/ld/testsuite/ld-i386/tlsbin.dd
index 3590122..08a1f31 100644
--- a/ld/testsuite/ld-i386/tlsbin.dd
+++ b/ld/testsuite/ld-i386/tlsbin.dd
@@ -25,14 +25,14 @@ Disassembly of section .text:
8049004: 50[ ]+push %eax
8049005: e8 00 00 00 00[ ]+call 804900a <fn2\+0xa>
804900a: 5b[ ]+pop %ebx
- 804900b: 81 c3 f6 10 00 00[ ]+add \$0x10f6,%ebx
+ 804900b: 81 c3 1a 11 00 00[ ]+add \$0x111a,%ebx
8049011: 90[ ]+nop *
8049012: 90[ ]+nop *
8049013: 90[ ]+nop *
8049014: 90[ ]+nop *
# GD -> IE because variable is not defined in executable
8049015: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- 804901b: 2b 83 2c 00 00 00[ ]+sub 0x2c\(%ebx\),%eax
+ 804901b: 2b 83 f8 ff ff ff[ ]+sub 0xfffffff8\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 sG1
8049021: 90[ ]+nop *
8049022: 90[ ]+nop *
@@ -41,7 +41,7 @@ Disassembly of section .text:
# GD -> IE because variable is not defined in executable where
# the variable is referenced through @gottpoff too
8049025: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- 804902b: 2b 83 1c 00 00 00[ ]+sub 0x1c\(%ebx\),%eax
+ 804902b: 2b 83 e8 ff ff ff[ ]+sub 0xffffffe8\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 sG2
8049031: 90[ ]+nop *
8049032: 90[ ]+nop *
@@ -50,7 +50,7 @@ Disassembly of section .text:
# GD -> IE because variable is not defined in executable where
# the variable is referenced through @gotntpoff too
8049035: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- 804903b: 2b 83 10 00 00 00[ ]+sub 0x10\(%ebx\),%eax
+ 804903b: 2b 83 dc ff ff ff[ ]+sub 0xffffffdc\(%ebx\),%eax
# ->R_386_TLS_TPOFF sG3
8049041: 90[ ]+nop *
8049042: 90[ ]+nop *
@@ -59,7 +59,7 @@ Disassembly of section .text:
# GD -> IE because variable is not defined in executable where
# the variable is referenced through @gottpoff and @gotntpoff too
8049045: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- 804904b: 2b 83 20 00 00 00[ ]+sub 0x20\(%ebx\),%eax
+ 804904b: 2b 83 ec ff ff ff[ ]+sub 0xffffffec\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 sG4
8049051: 90[ ]+nop *
8049052: 90[ ]+nop *
@@ -67,7 +67,7 @@ Disassembly of section .text:
8049054: 90[ ]+nop *
# GD -> LE with global variable defined in executable
8049055: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- 804905b: 81 e8 a0 00 00 00[ ]+sub \$0xa0,%eax
+ 804905b: 81 e8 00 10 00 00[ ]+sub \$0x1000,%eax
# sg1
8049061: 90[ ]+nop *
8049062: 90[ ]+nop *
@@ -75,7 +75,7 @@ Disassembly of section .text:
8049064: 90[ ]+nop *
# GD -> LE with local variable defined in executable
8049065: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- 804906b: 81 e8 80 00 00 00[ ]+sub \$0x80,%eax
+ 804906b: 81 e8 e0 0f 00 00[ ]+sub \$0xfe0,%eax
# sl1
8049071: 90[ ]+nop *
8049072: 90[ ]+nop *
@@ -83,7 +83,7 @@ Disassembly of section .text:
8049074: 90[ ]+nop *
# GD -> LE with hidden variable defined in executable
8049075: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- 804907b: 81 e8 60 00 00 00[ ]+sub \$0x60,%eax
+ 804907b: 81 e8 c0 0f 00 00[ ]+sub \$0xfc0,%eax
# sh1
8049081: 90[ ]+nop *
8049082: 90[ ]+nop *
@@ -95,11 +95,11 @@ Disassembly of section .text:
804908c: 8d 74 26 00[ ]+lea 0x0\(%esi\),%esi
8049090: 90[ ]+nop *
8049091: 90[ ]+nop *
- 8049092: 8d 90 80 ff ff ff[ ]+lea 0xffffff80\(%eax\),%edx
+ 8049092: 8d 90 20 f0 ff ff[ ]+lea 0xfffff020\(%eax\),%edx
# sl1
8049098: 90[ ]+nop *
8049099: 90[ ]+nop *
- 804909a: 8d 88 84 ff ff ff[ ]+lea 0xffffff84\(%eax\),%ecx
+ 804909a: 8d 88 24 f0 ff ff[ ]+lea 0xfffff024\(%eax\),%ecx
# sl2
80490a0: 90[ ]+nop *
80490a1: 90[ ]+nop *
@@ -111,21 +111,21 @@ Disassembly of section .text:
80490ab: 8d 74 26 00[ ]+lea 0x0\(%esi\),%esi
80490af: 90[ ]+nop *
80490b0: 90[ ]+nop *
- 80490b1: 8d 90 a0 ff ff ff[ ]+lea 0xffffffa0\(%eax\),%edx
+ 80490b1: 8d 90 40 f0 ff ff[ ]+lea 0xfffff040\(%eax\),%edx
# sh1
80490b7: 90[ ]+nop *
80490b8: 90[ ]+nop *
- 80490b9: 8d 88 a4 ff ff ff[ ]+lea 0xffffffa4\(%eax\),%ecx
+ 80490b9: 8d 88 44 f0 ff ff[ ]+lea 0xfffff044\(%eax\),%ecx
# sh2
80490bf: 90[ ]+nop *
80490c0: 90[ ]+nop *
80490c1: 90[ ]+nop *
80490c2: 90[ ]+nop *
# @gottpoff IE against global var
- 80490c3: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ 80490c3: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
80490ca: 90[ ]+nop *
80490cb: 90[ ]+nop *
- 80490cc: 2b 8b 1c 00 00 00[ ]+sub 0x1c\(%ebx\),%ecx
+ 80490cc: 2b 8b e8 ff ff ff[ ]+sub 0xffffffe8\(%ebx\),%ecx
# ->R_386_TLS_TPOFF32 sG2
80490d2: 90[ ]+nop *
80490d3: 90[ ]+nop *
@@ -135,17 +135,17 @@ Disassembly of section .text:
80490d6: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
80490dc: 90[ ]+nop *
80490dd: 90[ ]+nop *
- 80490de: 2b 83 20 00 00 00[ ]+sub 0x20\(%ebx\),%eax
+ 80490de: 2b 83 ec ff ff ff[ ]+sub 0xffffffec\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 sG4
80490e4: 90[ ]+nop *
80490e5: 90[ ]+nop *
80490e6: 90[ ]+nop *
80490e7: 90[ ]+nop *
# @gotntpoff IE against global var
- 80490e8: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ 80490e8: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
80490ef: 90[ ]+nop *
80490f0: 90[ ]+nop *
- 80490f1: 03 8b 10 00 00 00[ ]+add 0x10\(%ebx\),%ecx
+ 80490f1: 03 8b dc ff ff ff[ ]+add 0xffffffdc\(%ebx\),%ecx
# ->R_386_TLS_TPOFF sG3
80490f7: 90[ ]+nop *
80490f8: 90[ ]+nop *
@@ -155,37 +155,37 @@ Disassembly of section .text:
80490fb: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
8049101: 90[ ]+nop *
8049102: 90[ ]+nop *
- 8049103: 03 83 24 00 00 00[ ]+add 0x24\(%ebx\),%eax
+ 8049103: 03 83 f0 ff ff ff[ ]+add 0xfffffff0\(%ebx\),%eax
# ->R_386_TLS_TPOFF sG4
8049109: 90[ ]+nop *
804910a: 90[ ]+nop *
804910b: 90[ ]+nop *
804910c: 90[ ]+nop *
# @gottpoff IE -> LE against global var defined in exec
- 804910d: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ 804910d: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
8049114: 90[ ]+nop *
8049115: 90[ ]+nop *
- 8049116: 81 e9 a0 00 00 00[ ]+sub \$0xa0,%ecx
+ 8049116: 81 e9 00 10 00 00[ ]+sub \$0x1000,%ecx
# sg1
804911c: 90[ ]+nop *
804911d: 90[ ]+nop *
804911e: 90[ ]+nop *
804911f: 90[ ]+nop *
# @gotntpoff IE -> LE against local var
- 8049120: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ 8049120: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
8049127: 90[ ]+nop *
8049128: 90[ ]+nop *
- 8049129: 81 c0 80 ff ff ff[ ]+add \$0xffffff80,%eax
+ 8049129: 81 c0 20 f0 ff ff[ ]+add \$0xfffff020,%eax
# sl1
804912f: 90[ ]+nop *
8049130: 90[ ]+nop *
8049131: 90[ ]+nop *
8049132: 90[ ]+nop *
# @gottpoff IE -> LE against hidden var
- 8049133: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ 8049133: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
804913a: 90[ ]+nop *
804913b: 90[ ]+nop *
- 804913c: 81 e9 60 00 00 00[ ]+sub \$0x60,%ecx
+ 804913c: 81 e9 c0 0f 00 00[ ]+sub \$0xfc0,%ecx
# sh1
8049142: 90[ ]+nop *
8049143: 90[ ]+nop *
@@ -193,7 +193,7 @@ Disassembly of section .text:
8049145: 90[ ]+nop *
# Direct access through %gs
# @gotntpoff IE against global var
- 8049146: 8b 8b 14 00 00 00[ ]+mov 0x14\(%ebx\),%ecx
+ 8049146: 8b 8b e0 ff ff ff[ ]+mov 0xffffffe0\(%ebx\),%ecx
# ->R_386_TLS_TPOFF sG5
804914c: 90[ ]+nop *
804914d: 90[ ]+nop *
@@ -203,7 +203,7 @@ Disassembly of section .text:
8049153: 90[ ]+nop *
8049154: 90[ ]+nop *
# @gotntpoff IE->LE against local var
- 8049155: c7 c0 90 ff ff ff[ ]+mov \$0xffffff90,%eax
+ 8049155: c7 c0 30 f0 ff ff[ ]+mov \$0xfffff030,%eax
# sl5
804915b: 90[ ]+nop *
804915c: 90[ ]+nop *
@@ -213,7 +213,7 @@ Disassembly of section .text:
8049162: 90[ ]+nop *
8049163: 90[ ]+nop *
# @gotntpoff IE->LE against hidden var
- 8049164: c7 c2 b0 ff ff ff[ ]+mov \$0xffffffb0,%edx
+ 8049164: c7 c2 50 f0 ff ff[ ]+mov \$0xfffff050,%edx
# sh5
804916a: 90[ ]+nop *
804916b: 90[ ]+nop *
@@ -226,21 +226,21 @@ Disassembly of section .text:
8049176: c9[ ]+leave *
8049177: c3[ ]+ret *
-08049178 <_start>:
+0+8049178 <_start>:
8049178: 55[ ]+push %ebp
8049179: 89 e5[ ]+mov %esp,%ebp
804917b: e8 00 00 00 00[ ]+call 8049180 <_start\+0x8>
8049180: 59[ ]+pop %ecx
- 8049181: 81 c1 80 0f 00 00[ ]+add \$0xf80,%ecx
+ 8049181: 81 c1 a4 0f 00 00[ ]+add \$0xfa4,%ecx
8049187: 90[ ]+nop *
8049188: 90[ ]+nop *
8049189: 90[ ]+nop *
804918a: 90[ ]+nop *
# @gottpoff IE against global var
- 804918b: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx
+ 804918b: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx
8049192: 90[ ]+nop *
8049193: 90[ ]+nop *
- 8049194: 2b 91 28 00 00 00[ ]+sub 0x28\(%ecx\),%edx
+ 8049194: 2b 91 f4 ff ff ff[ ]+sub 0xfffffff4\(%ecx\),%edx
# ->R_386_TLS_TPOFF32 sG6
804919a: 90[ ]+nop *
804919b: 90[ ]+nop *
@@ -250,14 +250,14 @@ Disassembly of section .text:
804919e: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
80491a4: 90[ ]+nop *
80491a5: 90[ ]+nop *
- 80491a6: 03 05 18 a1 04 08[ ]+add 0x804a118,%eax
+ 80491a6: 03 05 08 a1 04 08[ ]+add 0x804a108,%eax
# ->R_386_TLS_TPOFF sG7
80491ac: 90[ ]+nop *
80491ad: 90[ ]+nop *
80491ae: 90[ ]+nop *
80491af: 90[ ]+nop *
# @indntpoff direct %gs access IE against global var
- 80491b0: 8b 15 30 a1 04 08[ ]+mov 0x804a130,%edx
+ 80491b0: 8b 15 20 a1 04 08[ ]+mov 0x804a120,%edx
# ->R_386_TLS_TPOFF sG8
80491b6: 90[ ]+nop *
80491b7: 90[ ]+nop *
@@ -267,10 +267,10 @@ Disassembly of section .text:
80491bd: 90[ ]+nop *
80491be: 90[ ]+nop *
# @gottpoff IE -> LE against global var defined in exec
- 80491bf: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx
+ 80491bf: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx
80491c6: 90[ ]+nop *
80491c7: 90[ ]+nop *
- 80491c8: 81 ea 2c 00 00 00[ ]+sub \$0x2c,%edx
+ 80491c8: 81 ea 8c 0f 00 00[ ]+sub \$0xf8c,%edx
# bg6
80491ce: 90[ ]+nop *
80491cf: 90[ ]+nop *
@@ -280,7 +280,7 @@ Disassembly of section .text:
80491d2: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
80491d8: 90[ ]+nop *
80491d9: 90[ ]+nop *
- 80491da: 81 c0 d8 ff ff ff[ ]+add \$0xffffffd8,%eax
+ 80491da: 81 c0 78 f0 ff ff[ ]+add \$0xfffff078,%eax
# bg7
80491e0: 90[ ]+nop *
80491e1: 90[ ]+nop *
@@ -288,7 +288,7 @@ Disassembly of section .text:
80491e3: 90[ ]+nop *
# @indntpoff direct %gs access IE -> LE against global var defined
# in exec
- 80491e4: c7 c2 dc ff ff ff[ ]+mov \$0xffffffdc,%edx
+ 80491e4: c7 c2 7c f0 ff ff[ ]+mov \$0xfffff07c,%edx
# bg8
80491ea: 90[ ]+nop *
80491eb: 90[ ]+nop *
@@ -298,10 +298,10 @@ Disassembly of section .text:
80491f1: 90[ ]+nop *
80491f2: 90[ ]+nop *
# @gottpoff IE -> LE against local var
- 80491f3: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx
+ 80491f3: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx
80491fa: 90[ ]+nop *
80491fb: 90[ ]+nop *
- 80491fc: 81 ea 0c 00 00 00[ ]+sub \$0xc,%edx
+ 80491fc: 81 ea 6c 0f 00 00[ ]+sub \$0xf6c,%edx
# bl6
8049202: 90[ ]+nop *
8049203: 90[ ]+nop *
@@ -311,14 +311,14 @@ Disassembly of section .text:
8049206: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
804920c: 90[ ]+nop *
804920d: 90[ ]+nop *
- 804920e: 81 c0 f8 ff ff ff[ ]+add \$0xfffffff8,%eax
+ 804920e: 81 c0 98 f0 ff ff[ ]+add \$0xfffff098,%eax
# bl7
8049214: 90[ ]+nop *
8049215: 90[ ]+nop *
8049216: 90[ ]+nop *
8049217: 90[ ]+nop *
# @indntpoff direct %gs access IE -> LE against local var
- 8049218: c7 c2 fc ff ff ff[ ]+mov \$0xfffffffc,%edx
+ 8049218: c7 c2 9c f0 ff ff[ ]+mov \$0xfffff09c,%edx
# bl8
804921e: 90[ ]+nop *
804921f: 90[ ]+nop *
@@ -328,10 +328,10 @@ Disassembly of section .text:
8049225: 90[ ]+nop *
8049226: 90[ ]+nop *
# @gottpoff IE -> LE against hidden but not local var
- 8049227: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx
+ 8049227: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx
804922e: 90[ ]+nop *
804922f: 90[ ]+nop *
- 8049230: 81 ea 4c 00 00 00[ ]+sub \$0x4c,%edx
+ 8049230: 81 ea ac 0f 00 00[ ]+sub \$0xfac,%edx
# sh6
8049236: 90[ ]+nop *
8049237: 90[ ]+nop *
@@ -341,7 +341,7 @@ Disassembly of section .text:
804923a: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
8049240: 90[ ]+nop *
8049241: 90[ ]+nop *
- 8049242: 81 c0 b8 ff ff ff[ ]+add \$0xffffffb8,%eax
+ 8049242: 81 c0 58 f0 ff ff[ ]+add \$0xfffff058,%eax
# sh7
8049248: 90[ ]+nop *
8049249: 90[ ]+nop *
@@ -349,7 +349,7 @@ Disassembly of section .text:
804924b: 90[ ]+nop *
# @indntpoff direct %gs access IE -> LE against hidden but not
# local var
- 804924c: c7 c2 bc ff ff ff[ ]+mov \$0xffffffbc,%edx
+ 804924c: c7 c2 5c f0 ff ff[ ]+mov \$0xfffff05c,%edx
# sh8
8049252: 90[ ]+nop *
8049253: 90[ ]+nop *
@@ -359,7 +359,7 @@ Disassembly of section .text:
8049259: 90[ ]+nop *
804925a: 90[ ]+nop *
# LE @tpoff, global var defined in exec
- 804925b: ba a0 00 00 00[ ]+mov \$0xa0,%edx
+ 804925b: ba 00 10 00 00[ ]+mov \$0x1000,%edx
# sg1
8049260: 90[ ]+nop *
8049261: 90[ ]+nop *
@@ -372,11 +372,11 @@ Disassembly of section .text:
804926e: 90[ ]+nop *
804926f: 90[ ]+nop *
# LE @tpoff, local var
- 8049270: b8 1f 00 00 00[ ]+mov \$0x1f,%eax
+ 8049270: b8 7f 0f 00 00[ ]+mov \$0xf7f,%eax
# bl1+1
8049275: 90[ ]+nop *
8049276: 90[ ]+nop *
- 8049277: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx
+ 8049277: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx
804927e: 90[ ]+nop *
804927f: 90[ ]+nop *
8049280: 29 c2[ ]+sub %eax,%edx
@@ -385,11 +385,11 @@ Disassembly of section .text:
8049284: 90[ ]+nop *
8049285: 90[ ]+nop *
# LE @tpoff, hidden var defined in exec
- 8049286: b8 5d 00 00 00[ ]+mov \$0x5d,%eax
+ 8049286: b8 bd 0f 00 00[ ]+mov \$0xfbd,%eax
# sh1+3
804928b: 90[ ]+nop *
804928c: 90[ ]+nop *
- 804928d: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx
+ 804928d: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx
8049294: 90[ ]+nop *
8049295: 90[ ]+nop *
8049296: 29 c2[ ]+sub %eax,%edx
@@ -401,18 +401,18 @@ Disassembly of section .text:
804929c: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
80492a2: 90[ ]+nop *
80492a3: 90[ ]+nop *
- 80492a4: 8d 90 64 ff ff ff[ ]+lea 0xffffff64\(%eax\),%edx
+ 80492a4: 8d 90 04 f0 ff ff[ ]+lea 0xfffff004\(%eax\),%edx
# sg2
80492aa: 90[ ]+nop *
80492ab: 90[ ]+nop *
80492ac: 90[ ]+nop *
80492ad: 90[ ]+nop *
# LE @ntpoff, local var, non-canonical sequence
- 80492ae: b8 e6 ff ff ff[ ]+mov \$0xffffffe6,%eax
+ 80492ae: b8 86 f0 ff ff[ ]+mov \$0xfffff086,%eax
# bl2+2
80492b3: 90[ ]+nop *
80492b4: 90[ ]+nop *
- 80492b5: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx
+ 80492b5: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx
80492bc: 90[ ]+nop *
80492bd: 90[ ]+nop *
80492be: 01 c2[ ]+add %eax,%edx
@@ -421,31 +421,31 @@ Disassembly of section .text:
80492c2: 90[ ]+nop *
80492c3: 90[ ]+nop *
# LE @ntpoff, hidden var defined in exec, non-canonical sequence
- 80492c4: 65 8b 15 00 00 00 00 mov %gs:0x0,%edx
+ 80492c4: 65 8b 15 00 00 00 00[ ]+mov %gs:0x0,%edx
80492cb: 90[ ]+nop *
80492cc: 90[ ]+nop *
- 80492cd: 81 c2 a5 ff ff ff[ ]+add \$0xffffffa5,%edx
+ 80492cd: 81 c2 45 f0 ff ff[ ]+add \$0xfffff045,%edx
# sh2+1
80492d3: 90[ ]+nop *
80492d4: 90[ ]+nop *
80492d5: 90[ ]+nop *
80492d6: 90[ ]+nop *
# LE @ntpoff, global var defined in exec
- 80492d7: 65 a1 68 ff ff ff[ ]+mov %gs:0xffffff68,%eax
+ 80492d7: 65 a1 08 f0 ff ff[ ]+mov %gs:0xfffff008,%eax
# sg3
80492dd: 90[ ]+nop *
80492de: 90[ ]+nop *
80492df: 90[ ]+nop *
80492e0: 90[ ]+nop *
# LE @ntpoff, local var
- 80492e1: 65 8b 15 eb ff ff ff mov %gs:0xffffffeb,%edx
+ 80492e1: 65 8b 15 8b f0 ff ff[ ]+mov %gs:0xfffff08b,%edx
# bl3+3
80492e8: 90[ ]+nop *
80492e9: 90[ ]+nop *
80492ea: 90[ ]+nop *
80492eb: 90[ ]+nop *
# LE @ntpoff, hidden var defined in exec
- 80492ec: 65 8b 15 a9 ff ff ff mov %gs:0xffffffa9,%edx
+ 80492ec: 65 8b 15 49 f0 ff ff[ ]+mov %gs:0xfffff049,%edx
# sh3+1
80492f3: 90[ ]+nop *
80492f4: 90[ ]+nop *
diff --git a/ld/testsuite/ld-i386/tlsbin.rd b/ld/testsuite/ld-i386/tlsbin.rd
index a7fb144..d04b1d2 100644
--- a/ld/testsuite/ld-i386/tlsbin.rd
+++ b/ld/testsuite/ld-i386/tlsbin.rd
@@ -5,7 +5,7 @@
#readelf: -Ssrl
#target: i?86-*-*
-There are 18 section headers, starting at offset 0x[0-9a-f]+:
+There are 19 section headers, starting at offset 0x[0-9a-f]+:
Section Headers:
\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
@@ -18,15 +18,16 @@ Section Headers:
\[ 6\] \.rel.plt +.*
\[ 7\] \.plt +.*
\[ 8\] \.text +PROGBITS +0+8049000 .*
- \[ 9\] \.data +.*
- \[10\] .tdata +PROGBITS +0+804a000 [0-9a-f]+ 000060 00 WAT 0 0 1
- \[11\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000040 00 WAT 0 0 1
- \[12\] \.dynamic +DYNAMIC +0+804a060 .*
- \[13\] \.got +PROGBITS +0+804a100 .*
- \[14\] \.bss +.*
- \[15\] \.shstrtab +.*
- \[16\] \.symtab +.*
- \[17\] \.strtab +.*
+ \[ 9\] \.tdata +PROGBITS +0+804a000 [0-9a-f]+ 000060 00 WAT 0 0 4096
+ \[10\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000040 00 WAT 0 0 1
+ \[11\] \.dynamic +DYNAMIC +0+804a060 .*
+ \[12\] \.got +PROGBITS +0+804a100 .*
+ \[13\] \.got\.plt +PROGBITS +0+804a124 .*
+ \[14\] \.data +.*
+ \[15\] \.bss +.*
+ \[16\] \.shstrtab +.*
+ \[17\] \.symtab +.*
+ \[18\] \.strtab +.*
Key to Flags:
.*
.*
@@ -44,124 +45,125 @@ Program Headers:
LOAD.*
LOAD.*
DYNAMIC.*
- TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1
+ TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000
Section to Segment mapping:
Segment Sections...
00 +
01 +.interp *
02 +.interp .hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text *
- 03 +.tdata .tbss .dynamic .got *
+ 03 +.tdata .tbss .dynamic .got .got.plt *
04 +.tbss .dynamic *
05 +.tdata .tbss *
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries:
Offset +Info +Type +Sym.Value +Sym. Name
-0+804a110 0000010e R_386_TLS_TPOFF +0+ +sG3
-0+804a114 0000020e R_386_TLS_TPOFF +0+ +sG5
-0+804a118 0000040e R_386_TLS_TPOFF +0+ +sG7
-0+804a11c 00000525 R_386_TLS_TPOFF32 0+ +sG2
-0+804a120 00000625 R_386_TLS_TPOFF32 0+ +sG4
-0+804a124 0000060e R_386_TLS_TPOFF +0+ +sG4
-0+804a128 00000825 R_386_TLS_TPOFF32 0+ +sG6
-0+804a12c 00000925 R_386_TLS_TPOFF32 0+ +sG1
-0+804a130 00000d0e R_386_TLS_TPOFF +0+ +sG8
+0+804a100 0000010e R_386_TLS_TPOFF +0+ +sG3
+0+804a104 0000020e R_386_TLS_TPOFF +0+ +sG5
+0+804a108 0000040e R_386_TLS_TPOFF +0+ +sG7
+0+804a10c 00000525 R_386_TLS_TPOFF32 0+ +sG2
+0+804a110 00000625 R_386_TLS_TPOFF32 0+ +sG4
+0+804a114 0000060e R_386_TLS_TPOFF +0+ +sG4
+0+804a118 00000825 R_386_TLS_TPOFF32 0+ +sG6
+0+804a11c 00000925 R_386_TLS_TPOFF32 0+ +sG1
+0+804a120 00000d0e R_386_TLS_TPOFF +0+ +sG8
Relocation section '.rel.plt' at offset 0x30c contains 1 entries:
Offset +Info +Type +Sym.Value Sym. Name
-0+804a10c 00000e07 R_386_JUMP_SLOT +[0-9a-f]+ +___tls_get_addr
+0+804a130 00000e07 R_386_JUMP_SLOT +[0-9a-f]+ +___tls_get_addr
Symbol table '.dynsym' contains 15 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
- +2: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
- +3: 0+804a060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +4: 0+ +0 TLS +GLOBAL DEFAULT UND sG7
- +5: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
- +6: 0+ +0 TLS +GLOBAL DEFAULT UND sG4
- +7: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +8: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
- +9: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
- +10: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +11: 0+804a100 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +12: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
- +13: 0+ +0 TLS +GLOBAL DEFAULT UND sG8
- +14: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND ___tls_get_addr
+ +[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
+ +[0-9]+: 0+804a060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG7
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG4
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG8
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND ___tls_get_addr
-Symbol table '.symtab' contains 74 entries:
+Symbol table '.symtab' contains 75 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 *
- +17: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17 *
- +18: 00000020 +0 TLS +LOCAL DEFAULT +10 sl1
- +19: 00000024 +0 TLS +LOCAL DEFAULT +10 sl2
- +20: 00000028 +0 TLS +LOCAL DEFAULT +10 sl3
- +21: 0000002c +0 TLS +LOCAL DEFAULT +10 sl4
- +22: 00000030 +0 TLS +LOCAL DEFAULT +10 sl5
- +23: 00000034 +0 TLS +LOCAL DEFAULT +10 sl6
- +24: 00000038 +0 TLS +LOCAL DEFAULT +10 sl7
- +25: 0000003c +0 TLS +LOCAL DEFAULT +10 sl8
- +26: 00000080 +0 TLS +LOCAL DEFAULT +11 bl1
- +27: 00000084 +0 TLS +LOCAL DEFAULT +11 bl2
- +28: 00000088 +0 TLS +LOCAL DEFAULT +11 bl3
- +29: 0000008c +0 TLS +LOCAL DEFAULT +11 bl4
- +30: 00000090 +0 TLS +LOCAL DEFAULT +11 bl5
- +31: 00000094 +0 TLS +LOCAL DEFAULT +11 bl6
- +32: 00000098 +0 TLS +LOCAL DEFAULT +11 bl7
- +33: 0000009c +0 TLS +LOCAL DEFAULT +11 bl8
- +34: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
- +35: 0000001c +0 TLS +GLOBAL DEFAULT +10 sg8
- +36: 0000007c +0 TLS +GLOBAL DEFAULT +11 bg8
- +37: 00000074 +0 TLS +GLOBAL DEFAULT +11 bg6
- +38: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
- +39: 00000068 +0 TLS +GLOBAL DEFAULT +11 bg3
- +40: 0+804a060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +41: 00000008 +0 TLS +GLOBAL DEFAULT +10 sg3
- +42: 0+ +0 TLS +GLOBAL DEFAULT UND sG7
- +43: 00000048 +0 TLS +GLOBAL HIDDEN +10 sh3
- +44: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
- +45: 0000000c +0 TLS +GLOBAL DEFAULT +10 sg4
- +46: 0+ +0 TLS +GLOBAL DEFAULT UND sG4
- +47: 00000010 +0 TLS +GLOBAL DEFAULT +10 sg5
- +48: 00000070 +0 TLS +GLOBAL DEFAULT +11 bg5
- +49: 00000058 +0 TLS +GLOBAL HIDDEN +10 sh7
- +50: 0000005c +0 TLS +GLOBAL HIDDEN +10 sh8
- +51: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
- +52: 0+8049178 +0 FUNC +GLOBAL DEFAULT +8 _start
- +53: 0000004c +0 TLS +GLOBAL HIDDEN +10 sh4
- +54: 00000078 +0 TLS +GLOBAL DEFAULT +11 bg7
- +55: 00000050 +0 TLS +GLOBAL HIDDEN +10 sh5
- +56: 0+804a134 +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +57: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
- +58: 0+8049000 +0 FUNC +GLOBAL DEFAULT +8 fn2
- +59: 00000004 +0 TLS +GLOBAL DEFAULT +10 sg2
- +60: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
- +61: 00000040 +0 TLS +GLOBAL HIDDEN +10 sh1
- +62: 00000014 +0 TLS +GLOBAL DEFAULT +10 sg6
- +63: 00000018 +0 TLS +GLOBAL DEFAULT +10 sg7
- +64: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +65: 0+804a100 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +66: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
- +67: 00000044 +0 TLS +GLOBAL HIDDEN +10 sh2
- +68: 00000054 +0 TLS +GLOBAL HIDDEN +10 sh6
- +69: 0+ +0 TLS +GLOBAL DEFAULT UND sG8
- +70: 00000064 +0 TLS +GLOBAL DEFAULT +11 bg2
- +71: 00000060 +0 TLS +GLOBAL DEFAULT +11 bg1
- +72: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND ___tls_get_addr
- +73: 0000006c +0 TLS +GLOBAL DEFAULT +11 bg4
+ +[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 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +18 *
+ +[0-9]+: 00000020 +0 TLS +LOCAL DEFAULT +9 sl1
+ +[0-9]+: 00000024 +0 TLS +LOCAL DEFAULT +9 sl2
+ +[0-9]+: 00000028 +0 TLS +LOCAL DEFAULT +9 sl3
+ +[0-9]+: 0000002c +0 TLS +LOCAL DEFAULT +9 sl4
+ +[0-9]+: 00000030 +0 TLS +LOCAL DEFAULT +9 sl5
+ +[0-9]+: 00000034 +0 TLS +LOCAL DEFAULT +9 sl6
+ +[0-9]+: 00000038 +0 TLS +LOCAL DEFAULT +9 sl7
+ +[0-9]+: 0000003c +0 TLS +LOCAL DEFAULT +9 sl8
+ +[0-9]+: 00000080 +0 TLS +LOCAL DEFAULT +10 bl1
+ +[0-9]+: 00000084 +0 TLS +LOCAL DEFAULT +10 bl2
+ +[0-9]+: 00000088 +0 TLS +LOCAL DEFAULT +10 bl3
+ +[0-9]+: 0000008c +0 TLS +LOCAL DEFAULT +10 bl4
+ +[0-9]+: 00000090 +0 TLS +LOCAL DEFAULT +10 bl5
+ +[0-9]+: 00000094 +0 TLS +LOCAL DEFAULT +10 bl6
+ +[0-9]+: 00000098 +0 TLS +LOCAL DEFAULT +10 bl7
+ +[0-9]+: 0000009c +0 TLS +LOCAL DEFAULT +10 bl8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
+ +[0-9]+: 0000001c +0 TLS +GLOBAL DEFAULT +9 sg8
+ +[0-9]+: 0000007c +0 TLS +GLOBAL DEFAULT +10 bg8
+ +[0-9]+: 00000074 +0 TLS +GLOBAL DEFAULT +10 bg6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
+ +[0-9]+: 00000068 +0 TLS +GLOBAL DEFAULT +10 bg3
+ +[0-9]+: 0+804a060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 00000008 +0 TLS +GLOBAL DEFAULT +9 sg3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG7
+ +[0-9]+: 00000048 +0 TLS +GLOBAL HIDDEN +9 sh3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
+ +[0-9]+: 0000000c +0 TLS +GLOBAL DEFAULT +9 sg4
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG4
+ +[0-9]+: 00000010 +0 TLS +GLOBAL DEFAULT +9 sg5
+ +[0-9]+: 00000070 +0 TLS +GLOBAL DEFAULT +10 bg5
+ +[0-9]+: 00000058 +0 TLS +GLOBAL HIDDEN +9 sh7
+ +[0-9]+: 0000005c +0 TLS +GLOBAL HIDDEN +9 sh8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
+ +[0-9]+: 0+8049178 +0 FUNC +GLOBAL DEFAULT +8 _start
+ +[0-9]+: 0000004c +0 TLS +GLOBAL HIDDEN +9 sh4
+ +[0-9]+: 00000078 +0 TLS +GLOBAL DEFAULT +10 bg7
+ +[0-9]+: 00000050 +0 TLS +GLOBAL HIDDEN +9 sh5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
+ +[0-9]+: 0+8049000 +0 FUNC +GLOBAL DEFAULT +8 fn2
+ +[0-9]+: 00000004 +0 TLS +GLOBAL DEFAULT +9 sg2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
+ +[0-9]+: 00000040 +0 TLS +GLOBAL HIDDEN +9 sh1
+ +[0-9]+: 00000014 +0 TLS +GLOBAL DEFAULT +9 sg6
+ +[0-9]+: 00000018 +0 TLS +GLOBAL DEFAULT +9 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 00000044 +0 TLS +GLOBAL HIDDEN +9 sh2
+ +[0-9]+: 00000054 +0 TLS +GLOBAL HIDDEN +9 sh6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG8
+ +[0-9]+: 00000064 +0 TLS +GLOBAL DEFAULT +10 bg2
+ +[0-9]+: 00000060 +0 TLS +GLOBAL DEFAULT +10 bg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND ___tls_get_addr
+ +[0-9]+: 0000006c +0 TLS +GLOBAL DEFAULT +10 bg4
diff --git a/ld/testsuite/ld-i386/tlsbin.sd b/ld/testsuite/ld-i386/tlsbin.sd
index b82affe..2fa7a89 100644
--- a/ld/testsuite/ld-i386/tlsbin.sd
+++ b/ld/testsuite/ld-i386/tlsbin.sd
@@ -10,5 +10,4 @@
Contents of section \.got:
804a100 [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .*
804a110 00000000 00000000 00000000 00000000 .*
- 804a120 00000000 00000000 00000000 00000000 .*
- 804a130 00000000 +.*
+ 804a120 00000000 +.*
diff --git a/ld/testsuite/ld-i386/tlsbinpic.s b/ld/testsuite/ld-i386/tlsbinpic.s
index c6b6efa..844f952 100644
--- a/ld/testsuite/ld-i386/tlsbinpic.s
+++ b/ld/testsuite/ld-i386/tlsbinpic.s
@@ -1,8 +1,7 @@
/* Force .got aligned to 4K, so it very likely gets at 0x804a100
(0x60 bytes .tdata and 0xa0 bytes .dynamic) */
- .data
- .balign 4096
.section ".tdata", "awT", @progbits
+ .balign 4096
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
diff --git a/ld/testsuite/ld-i386/tlsnopic.dd b/ld/testsuite/ld-i386/tlsnopic.dd
index bb9f6e5..1a34250 100644
--- a/ld/testsuite/ld-i386/tlsnopic.dd
+++ b/ld/testsuite/ld-i386/tlsnopic.dd
@@ -16,14 +16,14 @@ Disassembly of section .text:
1003: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
1009: 90[ ]+nop *
100a: 90[ ]+nop *
- 100b: 03 05 94 20 00 00[ ]+add 0x2094,%eax
+ 100b: 03 05 88 20 00 00[ ]+add 0x2088,%eax
# ->R_386_TLS_TPOFF sg1
1011: 90[ ]+nop *
1012: 90[ ]+nop *
1013: 90[ ]+nop *
1014: 90[ ]+nop *
# @indntpoff direct %gs access IE against global var
- 1015: 8b 15 98 20 00 00[ ]+mov 0x2098,%edx
+ 1015: 8b 15 8c 20 00 00[ ]+mov 0x208c,%edx
# ->R_386_TLS_TPOFF sg2
101b: 90[ ]+nop *
101c: 90[ ]+nop *
@@ -36,14 +36,14 @@ Disassembly of section .text:
1024: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
102a: 90[ ]+nop *
102b: 90[ ]+nop *
- 102c: 03 05 9c 20 00 00[ ]+add 0x209c,%eax
+ 102c: 03 05 90 20 00 00[ ]+add 0x2090,%eax
# ->R_386_TLS_TPOFF [0x14000000]
1032: 90[ ]+nop *
1033: 90[ ]+nop *
1034: 90[ ]+nop *
1035: 90[ ]+nop *
# @indntpoff direct %gs access IE against hidden var
- 1036: 8b 15 a0 20 00 00[ ]+mov 0x20a0,%edx
+ 1036: 8b 15 94 20 00 00[ ]+mov 0x2094,%edx
# ->R_386_TLS_TPOFF [0x18000000]
103c: 90[ ]+nop *
103d: 90[ ]+nop *
@@ -56,14 +56,14 @@ Disassembly of section .text:
1045: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
104b: 90[ ]+nop *
104c: 90[ ]+nop *
- 104d: 03 05 8c 20 00 00[ ]+add 0x208c,%eax
+ 104d: 03 05 80 20 00 00[ ]+add 0x2080,%eax
# ->R_386_TLS_TPOFF [0x00000000]
1053: 90[ ]+nop *
1054: 90[ ]+nop *
1055: 90[ ]+nop *
1056: 90[ ]+nop *
# @indntpoff direct %gs access IE against local var
- 1057: 8b 15 90 20 00 00[ ]+mov 0x2090,%edx
+ 1057: 8b 15 84 20 00 00[ ]+mov 0x2084,%edx
# ->R_386_TLS_TPOFF [0x04000000]
105d: 90[ ]+nop *
105e: 90[ ]+nop *
diff --git a/ld/testsuite/ld-i386/tlsnopic.rd b/ld/testsuite/ld-i386/tlsnopic.rd
index 5ac242c..9bc42b9 100644
--- a/ld/testsuite/ld-i386/tlsnopic.rd
+++ b/ld/testsuite/ld-i386/tlsnopic.rd
@@ -5,7 +5,7 @@
#readelf: -Ssrl
#target: i?86-*-*
-There are 14 section headers, starting at offset 0x[0-9a-f]+:
+There are 16 section headers, starting at offset 0x[0-9a-f]+:
Section Headers:
\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
@@ -15,14 +15,16 @@ Section Headers:
\[ 3\] \.dynstr +.*
\[ 4\] \.rel.dyn +.*
\[ 5\] \.text +PROGBITS +0+1000 .*
- \[ 6\] \.data +.*
- \[ 7\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000024 00 WAT 0 0 1
+ \[ 6\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000024 00 WAT 0 0 1
+ \[ 7\] \.data.rel.ro +PROGBITS +.*
\[ 8\] \.dynamic +DYNAMIC +0+2000 .*
\[ 9\] \.got +PROGBITS +0+2080 .*
- \[10\] \.bss +.*
- \[11\] \.shstrtab +.*
- \[12\] \.symtab +.*
- \[13\] \.strtab +.*
+ \[10\] \.got.plt +PROGBITS +0+2098 .*
+ \[11\] \.data +.*
+ \[12\] \.bss +.*
+ \[13\] \.shstrtab +.*
+ \[14\] \.symtab +.*
+ \[15\] \.strtab +.*
Key to Flags:
.*
.*
@@ -42,7 +44,7 @@ Program Headers:
Section to Segment mapping:
Segment Sections...
00 +.hash .dynsym .dynstr .rel.dyn .text *
- 01 +.tbss .dynamic .got *
+ 01 +.tbss .dynamic .got .got.plt *
02 +.tbss .dynamic *
03 +.tbss *
@@ -54,80 +56,77 @@ Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries:
0+1038 0+8 R_386_RELATIVE +
0+104f 0+8 R_386_RELATIVE +
0+1059 0+8 R_386_RELATIVE +
-0+1067 0+c25 R_386_TLS_TPOFF32 0+ sg3
+0+1067 0+725 R_386_TLS_TPOFF32 0+ sg3
0+107c 0+25 R_386_TLS_TPOFF32
0+10a4 0+e R_386_TLS_TPOFF +
0+10c4 0+e R_386_TLS_TPOFF +
0+10d9 0+e R_386_TLS_TPOFF +
0+10e4 0+e R_386_TLS_TPOFF +
-0+208c 0+e R_386_TLS_TPOFF +
+0+2080 0+e R_386_TLS_TPOFF +
+0+2084 0+e R_386_TLS_TPOFF +
0+2090 0+e R_386_TLS_TPOFF +
-0+209c 0+e R_386_TLS_TPOFF +
-0+20a0 0+e R_386_TLS_TPOFF +
-0+109b 0+d0e R_386_TLS_TPOFF 0+ sg4
-0+10ce 0+f0e R_386_TLS_TPOFF 0+ sg5
-0+2094 0+100e R_386_TLS_TPOFF 0+ sg1
-0+2098 0+120e R_386_TLS_TPOFF 0+ sg2
+0+2094 0+e R_386_TLS_TPOFF +
+0+109b 0+80e R_386_TLS_TPOFF 0+ sg4
+0+10ce 0+a0e R_386_TLS_TPOFF 0+ sg5
+0+2088 0+b0e R_386_TLS_TPOFF 0+ sg1
+0+208c 0+d0e R_386_TLS_TPOFF 0+ sg2
-Symbol table '.dynsym' contains 22 entries:
+Symbol table '.dynsym' contains 17 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 *
- +11: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +12: 0+ +0 TLS +GLOBAL DEFAULT UND sg3
- +13: 0+ +0 TLS +GLOBAL DEFAULT UND sg4
- +14: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3
- +15: 0+ +0 TLS +GLOBAL DEFAULT UND sg5
- +16: 0+ +0 TLS +GLOBAL DEFAULT UND sg1
- +17: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +18: 0+ +0 TLS +GLOBAL DEFAULT UND sg2
- +19: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +20: 0+2080 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +21: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+ +[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 +11 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 *
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg4
+ +[0-9]+: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg5
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg2
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: 0+2098 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
-Symbol table '.symtab' contains 34 entries:
+Symbol table '.symtab' contains 36 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 *
- +14: 0+00 +0 TLS +LOCAL DEFAULT +7 bl1
- +15: 0+04 +0 TLS +LOCAL DEFAULT +7 bl2
- +16: 0+08 +0 TLS +LOCAL DEFAULT +7 bl3
- +17: 0+0c +0 TLS +LOCAL DEFAULT +7 bl4
- +18: 0+10 +0 TLS +LOCAL DEFAULT +7 bl5
- +19: 0+1c +0 TLS +LOCAL HIDDEN +7 sh3
- +20: 0+20 +0 TLS +LOCAL HIDDEN +7 sh4
- +21: 0+14 +0 TLS +LOCAL HIDDEN +7 sh1
- +22: 0+18 +0 TLS +LOCAL HIDDEN +7 sh2
- +23: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +24: 0+ +0 TLS +GLOBAL DEFAULT UND sg3
- +25: 0+ +0 TLS +GLOBAL DEFAULT UND sg4
- +26: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3
- +27: 0+ +0 TLS +GLOBAL DEFAULT UND sg5
- +28: 0+ +0 TLS +GLOBAL DEFAULT UND sg1
- +29: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +30: 0+ +0 TLS +GLOBAL DEFAULT UND sg2
- +31: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +32: 0+2080 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +33: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[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 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
+ +[0-9]+: 0+00 +0 TLS +LOCAL DEFAULT +6 bl1
+ +[0-9]+: 0+04 +0 TLS +LOCAL DEFAULT +6 bl2
+ +[0-9]+: 0+08 +0 TLS +LOCAL DEFAULT +6 bl3
+ +[0-9]+: 0+0c +0 TLS +LOCAL DEFAULT +6 bl4
+ +[0-9]+: 0+10 +0 TLS +LOCAL DEFAULT +6 bl5
+ +[0-9]+: 0+1c +0 TLS +LOCAL HIDDEN +6 sh3
+ +[0-9]+: 0+20 +0 TLS +LOCAL HIDDEN +6 sh4
+ +[0-9]+: 0+14 +0 TLS +LOCAL HIDDEN +6 sh1
+ +[0-9]+: 0+18 +0 TLS +LOCAL HIDDEN +6 sh2
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg4
+ +[0-9]+: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg5
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sg2
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: 0+2098 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
diff --git a/ld/testsuite/ld-i386/tlsnopic.sd b/ld/testsuite/ld-i386/tlsnopic.sd
index a79226f..faefdec 100644
--- a/ld/testsuite/ld-i386/tlsnopic.sd
+++ b/ld/testsuite/ld-i386/tlsnopic.sd
@@ -8,6 +8,5 @@
.*: file format elf32-i386
Contents of section \.got:
- 2080 [0-9a-f]+ 00000000 00000000 00000000 .*
- 2090 04000000 00000000 00000000 14000000 .*
- 20a0 18000000 +.*
+ 2080 00000000 04000000 00000000 00000000 .*
+ 2090 14000000 18000000 +.*
diff --git a/ld/testsuite/ld-i386/tlsnopic1.s b/ld/testsuite/ld-i386/tlsnopic1.s
index 32d730b..80a28bf 100644
--- a/ld/testsuite/ld-i386/tlsnopic1.s
+++ b/ld/testsuite/ld-i386/tlsnopic1.s
@@ -1,4 +1,4 @@
- .data
+ .section ".data.rel.ro", "aw", @progbits
/* Align, so that .got is likely at address 0x2080. */
.balign 4096
.section ".tbss", "awT", @nobits
diff --git a/ld/testsuite/ld-i386/tlspic.dd b/ld/testsuite/ld-i386/tlspic.dd
index 7f1690c..98fcf01 100644
--- a/ld/testsuite/ld-i386/tlspic.dd
+++ b/ld/testsuite/ld-i386/tlspic.dd
@@ -16,13 +16,13 @@ Disassembly of section .text:
[0-9a-f]+: 50[ ]+push %eax
[0-9a-f]+: e8 00 00 00 00[ ]+call [0-9a-f]+ <fn1\+0xa>
[0-9a-f]+: 5b[ ]+pop %ebx
- [0-9a-f]+: 81 c3 [0-9a-f ]+[ ]+add \$0x[0-9a-f]+,%ebx
+ [0-9a-f]+: 81 c3 42 14 00 00[ ]+add \$0x[0-9a-f]+,%ebx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# GD
- [0-9a-f]+: 8d 04 1d 5c 00 00 00 lea 0x5c\(,%ebx,1\),%eax
+ [0-9a-f]+: 8d 04 1d d4 ff ff ff[ ]+lea 0xffffffd4\(,%ebx,1\),%eax
# ->R_386_TLS_DTPMOD32 sg1
[0-9a-f]+: e8 cf ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt>
# ->R_386_JUMP_SLOT ___tls_get_addr
@@ -32,7 +32,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE because variable is referenced through @gottpoff too
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 2b 83 78 00 00 00[ ]+sub 0x78\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 f0 ff ff ff[ ]+sub 0xfffffff0\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 sg2
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -40,7 +40,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE because variable is referenced through @gotntpoff too
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 03 83 3c 00 00 00[ ]+add 0x3c\(%ebx\),%eax
+ [0-9a-f]+: 03 83 b4 ff ff ff[ ]+add 0xffffffb4\(%ebx\),%eax
# ->R_386_TLS_TPOFF sg3
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -48,14 +48,14 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE because variable is referenced through @gottpoff and
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 2b 83 48 00 00 00[ ]+sub 0x48\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 c0 ff ff ff[ ]+sub 0xffffffc0\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 sg4
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# GD against local variable
- [0-9a-f]+: 8d 04 1d 10 00 00 00 lea 0x10\(,%ebx,1\),%eax
+ [0-9a-f]+: 8d 04 1d 88 ff ff ff[ ]+lea 0xffffff88\(,%ebx,1\),%eax
# ->R_386_TLS_DTPMOD32 [0x00000000 0x20000000]
[0-9a-f]+: e8 8f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt>
# ->R_386_JUMP_SLOT ___tls_get_addr
@@ -65,7 +65,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against local variable referenced through @gottpoff too
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 2b 83 18 00 00 00[ ]+sub 0x18\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 90 ff ff ff[ ]+sub 0xffffff90\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0xdcffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -73,7 +73,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against local variable referenced through @gotntpoff
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 03 83 1c 00 00 00[ ]+add 0x1c\(%ebx\),%eax
+ [0-9a-f]+: 03 83 94 ff ff ff[ ]+add 0xffffff94\(%ebx\),%eax
# ->R_386_TLS_TPOFF [0x28000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -81,14 +81,14 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against local variable referenced through @gottpoff and
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 2b 83 20 00 00 00[ ]+sub 0x20\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 98 ff ff ff[ ]+sub 0xffffff98\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0xd4ffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# GD against hidden and local variable
- [0-9a-f]+: 8d 04 1d 7c 00 00 00 lea 0x7c\(,%ebx,1\),%eax
+ [0-9a-f]+: 8d 04 1d f4 ff ff ff[ ]+lea 0xfffffff4\(,%ebx,1\),%eax
# ->R_386_TLS_DTPMOD32 [0x00000000 0x40000000]
[0-9a-f]+: e8 4f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt>
# ->R_386_JUMP_SLOT ___tls_get_addr
@@ -98,7 +98,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against hidden and local variable referenced through @gottpoff too
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 2b 83 84 00 00 00[ ]+sub 0x84\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 fc ff ff ff[ ]+sub 0xfffffffc\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0xbcffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -106,7 +106,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against hidden and local variable referenced through @gotntpoff too
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 03 83 40 00 00 00[ ]+add 0x40\(%ebx\),%eax
+ [0-9a-f]+: 03 83 b8 ff ff ff[ ]+add 0xffffffb8\(%ebx\),%eax
# ->R_386_TLS_TPOFF [0x48000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -114,14 +114,14 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against hidden and local variable referenced through @gottpoff and @gotntpoff too
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 2b 83 64 00 00 00[ ]+sub 0x64\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 dc ff ff ff[ ]+sub 0xffffffdc\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0xb4ffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# GD against hidden but not local variable
- [0-9a-f]+: 8d 04 1d 34 00 00 00 lea 0x34\(,%ebx,1\),%eax
+ [0-9a-f]+: 8d 04 1d ac ff ff ff[ ]+lea 0xffffffac\(,%ebx,1\),%eax
# ->R_386_TLS_DTPMOD32 [0x00000000 0x60000000]
[0-9a-f]+: e8 0f ff ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt>
# ->R_386_JUMP_SLOT ___tls_get_addr
@@ -131,7 +131,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against hidden but not local variable referenced through
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 2b 83 44 00 00 00[ ]+sub 0x44\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 bc ff ff ff[ ]+sub 0xffffffbc\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0x9cffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -139,7 +139,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against hidden but not local variable referenced through
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 03 83 6c 00 00 00[ ]+add 0x6c\(%ebx\),%eax
+ [0-9a-f]+: 03 83 e4 ff ff ff[ ]+add 0xffffffe4\(%ebx\),%eax
# ->R_386_TLS_TPOFF [0x68000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -147,14 +147,14 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# GD -> IE against hidden but not local variable referenced through
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
- [0-9a-f]+: 2b 83 54 00 00 00[ ]+sub 0x54\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 cc ff ff ff[ ]+sub 0xffffffcc\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0x94ffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# LD
- [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax
+ [0-9a-f]+: 8d 83 a4 ff ff ff[ ]+lea 0xffffffa4\(%ebx\),%eax
# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000]
[0-9a-f]+: e8 d0 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt>
# ->R_386_JUMP_SLOT ___tls_get_addr
@@ -171,7 +171,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# LD against hidden and local variables
- [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax
+ [0-9a-f]+: 8d 83 a4 ff ff ff[ ]+lea 0xffffffa4\(%ebx\),%eax
# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000]
[0-9a-f]+: e8 b1 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt>
# ->R_386_JUMP_SLOT ___tls_get_addr
@@ -188,7 +188,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# LD against hidden but not local variables
- [0-9a-f]+: 8d 83 2c 00 00 00[ ]+lea 0x2c\(%ebx\),%eax
+ [0-9a-f]+: 8d 83 a4 ff ff ff[ ]+lea 0xffffffa4\(%ebx\),%eax
# ->R_386_TLS_DTPMOD32 [0x00000000 0x00000000]
[0-9a-f]+: e8 92 fe ff ff[ ]+call [0-9a-f]+ <___tls_get_addr@plt>
# ->R_386_JUMP_SLOT ___tls_get_addr
@@ -203,10 +203,10 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gottpoff IE against global var
- [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ [0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 2b 8b 78 00 00 00[ ]+sub 0x78\(%ebx\),%ecx
+ [0-9a-f]+: 2b 8b f0 ff ff ff[ ]+sub 0xfffffff0\(%ebx\),%ecx
# ->R_386_TLS_TPOFF32 sg2
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -216,17 +216,17 @@ Disassembly of section .text:
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 2b 83 48 00 00 00[ ]+sub 0x48\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 c0 ff ff ff[ ]+sub 0xffffffc0\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 sg4
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gotntpoff IE against global var
- [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ [0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 03 8b 3c 00 00 00[ ]+add 0x3c\(%ebx\),%ecx
+ [0-9a-f]+: 03 8b b4 ff ff ff[ ]+add 0xffffffb4\(%ebx\),%ecx
# ->R_386_TLS_TPOFF sg3
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -236,17 +236,17 @@ Disassembly of section .text:
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 03 83 4c 00 00 00[ ]+add 0x4c\(%ebx\),%eax
+ [0-9a-f]+: 03 83 c4 ff ff ff[ ]+add 0xffffffc4\(%ebx\),%eax
# ->R_386_TLS_TPOFF sg4
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gottpoff IE against local var
- [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ [0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 2b 8b 18 00 00 00[ ]+sub 0x18\(%ebx\),%ecx
+ [0-9a-f]+: 2b 8b 90 ff ff ff[ ]+sub 0xffffff90\(%ebx\),%ecx
# ->R_386_TLS_TPOFF32 [0xdcffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -256,17 +256,17 @@ Disassembly of section .text:
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 2b 83 20 00 00 00[ ]+sub 0x20\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 98 ff ff ff[ ]+sub 0xffffff98\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0xd4ffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gotntpoff IE against local var
- [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ [0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 03 8b 1c 00 00 00[ ]+add 0x1c\(%ebx\),%ecx
+ [0-9a-f]+: 03 8b 94 ff ff ff[ ]+add 0xffffff94\(%ebx\),%ecx
# ->R_386_TLS_TPOFF [0x28000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -276,17 +276,17 @@ Disassembly of section .text:
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 03 83 24 00 00 00[ ]+add 0x24\(%ebx\),%eax
+ [0-9a-f]+: 03 83 9c ff ff ff[ ]+add 0xffffff9c\(%ebx\),%eax
# ->R_386_TLS_TPOFF [0x2c000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gottpoff IE against hidden and local var
- [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ [0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 2b 8b 84 00 00 00[ ]+sub 0x84\(%ebx\),%ecx
+ [0-9a-f]+: 2b 8b fc ff ff ff[ ]+sub 0xfffffffc\(%ebx\),%ecx
# ->R_386_TLS_TPOFF32 [0xbcffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -296,17 +296,17 @@ Disassembly of section .text:
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 2b 83 64 00 00 00[ ]+sub 0x64\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 dc ff ff ff[ ]+sub 0xffffffdc\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0xb4ffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gotntpoff IE against hidden and local var
- [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ [0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 03 8b 40 00 00 00[ ]+add 0x40\(%ebx\),%ecx
+ [0-9a-f]+: 03 8b b8 ff ff ff[ ]+add 0xffffffb8\(%ebx\),%ecx
# ->R_386_TLS_TPOFF [0x48000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -316,17 +316,17 @@ Disassembly of section .text:
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 03 83 68 00 00 00[ ]+add 0x68\(%ebx\),%eax
+ [0-9a-f]+: 03 83 e0 ff ff ff[ ]+add 0xffffffe0\(%ebx\),%eax
# ->R_386_TLS_TPOFF [0x4c000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gottpoff IE against hidden but not local var
- [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ [0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 2b 8b 44 00 00 00[ ]+sub 0x44\(%ebx\),%ecx
+ [0-9a-f]+: 2b 8b bc ff ff ff[ ]+sub 0xffffffbc\(%ebx\),%ecx
# ->R_386_TLS_TPOFF32 [0x9cffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -336,17 +336,17 @@ Disassembly of section .text:
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 2b 83 54 00 00 00[ ]+sub 0x54\(%ebx\),%eax
+ [0-9a-f]+: 2b 83 cc ff ff ff[ ]+sub 0xffffffcc\(%ebx\),%eax
# ->R_386_TLS_TPOFF32 [0x94ffffff]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gotntpoff IE against hidden but not local var
- [0-9a-f]+: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
+ [0-9a-f]+: 65 8b 0d 00 00 00 00[ ]+mov %gs:0x0,%ecx
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 03 8b 6c 00 00 00[ ]+add 0x6c\(%ebx\),%ecx
+ [0-9a-f]+: 03 8b e4 ff ff ff[ ]+add 0xffffffe4\(%ebx\),%ecx
# ->R_386_TLS_TPOFF [0x68000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -356,7 +356,7 @@ Disassembly of section .text:
[0-9a-f]+: 65 a1 00 00 00 00[ ]+mov %gs:0x0,%eax
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
- [0-9a-f]+: 03 83 58 00 00 00[ ]+add 0x58\(%ebx\),%eax
+ [0-9a-f]+: 03 83 d0 ff ff ff[ ]+add 0xffffffd0\(%ebx\),%eax
# ->R_386_TLS_TPOFF [0x6c000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -364,7 +364,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
# Direct access through %gs
# @gotntpoff IE against global var
- [0-9a-f]+: 8b 8b 50 00 00 00[ ]+mov 0x50\(%ebx\),%ecx
+ [0-9a-f]+: 8b 8b c8 ff ff ff[ ]+mov 0xffffffc8\(%ebx\),%ecx
# ->R_386_TLS_TPOFF sg5
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -374,7 +374,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gotntpoff IE against local var
- [0-9a-f]+: 8b 83 28 00 00 00[ ]+mov 0x28\(%ebx\),%eax
+ [0-9a-f]+: 8b 83 a0 ff ff ff[ ]+mov 0xffffffa0\(%ebx\),%eax
# ->R_386_TLS_TPOFF [0x30000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -384,7 +384,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gotntpoff IE against hidden and local var
- [0-9a-f]+: 8b 93 70 00 00 00[ ]+mov 0x70\(%ebx\),%edx
+ [0-9a-f]+: 8b 93 e8 ff ff ff[ ]+mov 0xffffffe8\(%ebx\),%edx
# ->R_386_TLS_TPOFF [0x50000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
@@ -394,7 +394,7 @@ Disassembly of section .text:
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
# @gotntpoff IE against hidden but not local var
- [0-9a-f]+: 8b 8b 74 00 00 00[ ]+mov 0x74\(%ebx\),%ecx
+ [0-9a-f]+: 8b 8b ec ff ff ff[ ]+mov 0xffffffec\(%ebx\),%ecx
# ->R_386_TLS_TPOFF [0x70000000]
[0-9a-f]+: 90[ ]+nop *
[0-9a-f]+: 90[ ]+nop *
diff --git a/ld/testsuite/ld-i386/tlspic.rd b/ld/testsuite/ld-i386/tlspic.rd
index b890e56..5b217e6 100644
--- a/ld/testsuite/ld-i386/tlspic.rd
+++ b/ld/testsuite/ld-i386/tlspic.rd
@@ -17,15 +17,16 @@ Section Headers:
\[ 5\] \.rel.plt +.*
\[ 6\] \.plt +.*
\[ 7\] \.text +.*
- \[ 8\] \.data +.*
- \[ 9\] .tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000060 00 WAT 0 0 1
- \[10\] .tbss +NOBITS +[0-9aa-f]+ [0-9a-f]+ 000020 00 WAT 0 0 1
- \[11\] \.dynamic +.*
- \[12\] \.got +.*
- \[13\] \.bss +.*
- \[14\] \.shstrtab +.*
- \[15\] \.symtab +.*
- \[16\] \.strtab +.*
+ \[ 8\] \.tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000060 00 WAT 0 0 1
+ \[ 9\] \.tbss +NOBITS +[0-9aa-f]+ [0-9a-f]+ 000020 00 WAT 0 0 1
+ \[10\] \.dynamic +.*
+ \[11\] \.got +.*
+ \[12\] \.got.plt +.*
+ \[13\] \.data +.*
+ \[14\] \.bss +.*
+ \[15\] \.shstrtab +.*
+ \[16\] \.symtab +.*
+ \[17\] \.strtab +.*
Key to Flags:
.*
.*
@@ -45,7 +46,7 @@ Program Headers:
Section to Segment mapping:
Segment Sections...
00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text *
- 01 +.tdata .tbss .dynamic .got *
+ 01 +.tdata .tbss .dynamic .got .got.plt *
02 +.tbss .dynamic *
03 +.tdata .tbss *
@@ -70,105 +71,98 @@ Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 26 entries:
[0-9a-f]+ +0+0e R_386_TLS_TPOFF *
[0-9a-f]+ +0+23 R_386_TLS_DTPMOD3
[0-9a-f]+ +0+25 R_386_TLS_TPOFF32
-[0-9a-f]+ +0+100e R_386_TLS_TPOFF 0+8 sg3
-[0-9a-f]+ +0+1125 R_386_TLS_TPOFF32 0+c sg4
-[0-9a-f]+ +0+110e R_386_TLS_TPOFF 0+c sg4
-[0-9a-f]+ +0+120e R_386_TLS_TPOFF 0+10 sg5
-[0-9a-f]+ +0+1323 R_386_TLS_DTPMOD3 0+ sg1
-[0-9a-f]+ +0+1324 R_386_TLS_DTPOFF3 0+ sg1
-[0-9a-f]+ +0+1625 R_386_TLS_TPOFF32 0+4 sg2
+[0-9a-f]+ +0+80e R_386_TLS_TPOFF 0+8 sg3
+[0-9a-f]+ +0+925 R_386_TLS_TPOFF32 0+c sg4
+[0-9a-f]+ +0+90e R_386_TLS_TPOFF 0+c sg4
+[0-9a-f]+ +0+a0e R_386_TLS_TPOFF 0+10 sg5
+[0-9a-f]+ +0+b23 R_386_TLS_DTPMOD3 0+ sg1
+[0-9a-f]+ +0+b24 R_386_TLS_DTPOFF3 0+ sg1
+[0-9a-f]+ +0+e25 R_386_TLS_TPOFF32 0+4 sg2
-Relocation section '.rel.plt' at offset 0x480 contains 1 entries:
+Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym.Value Sym. Name
-[0-9a-f]+ 0+1c07 R_386_JUMP_SLOT 0+ ___tls_get_addr
+[0-9a-f]+ 0+1407 R_386_JUMP_SLOT 0+ ___tls_get_addr
-Symbol table '.dynsym' contains 29 entries:
+Symbol table '.dynsym' contains 21 entries:
+Num: + Value Size Type + Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 *
- +14: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +15: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +16: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +17: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +18: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +19: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +20: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
- +21: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +22: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +23: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +24: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +25: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +26: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +27: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
- +28: 0+ +0 NOTYPE GLOBAL DEFAULT UND ___tls_get_addr
+ +[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+ +[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 +13 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 NOTYPE GLOBAL DEFAULT UND ___tls_get_addr
-Symbol table '.symtab' contains 56 entries:
+Symbol table '.symtab' contains 57 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 *
- +17: 0+20 +0 TLS +LOCAL DEFAULT +9 sl1
- +18: 0+24 +0 TLS +LOCAL DEFAULT +9 sl2
- +19: 0+28 +0 TLS +LOCAL DEFAULT +9 sl3
- +20: 0+2c +0 TLS +LOCAL DEFAULT +9 sl4
- +21: 0+30 +0 TLS +LOCAL DEFAULT +9 sl5
- +22: 0+34 +0 TLS +LOCAL DEFAULT +9 sl6
- +23: 0+38 +0 TLS +LOCAL DEFAULT +9 sl7
- +24: 0+3c +0 TLS +LOCAL DEFAULT +9 sl8
- +25: 0+60 +0 TLS +LOCAL HIDDEN +10 sH1
- +26: 0+48 +0 TLS +LOCAL HIDDEN +9 sh3
- +27: 0+64 +0 TLS +LOCAL HIDDEN +10 sH2
- +28: 0+78 +0 TLS +LOCAL HIDDEN +10 sH7
- +29: 0+58 +0 TLS +LOCAL HIDDEN +9 sh7
- +30: 0+5c +0 TLS +LOCAL HIDDEN +9 sh8
- +31: 0+6c +0 TLS +LOCAL HIDDEN +10 sH4
- +32: 0+4c +0 TLS +LOCAL HIDDEN +9 sh4
- +33: 0+68 +0 TLS +LOCAL HIDDEN +10 sH3
- +34: 0+50 +0 TLS +LOCAL HIDDEN +9 sh5
- +35: 0+70 +0 TLS +LOCAL HIDDEN +10 sH5
- +36: 0+74 +0 TLS +LOCAL HIDDEN +10 sH6
- +37: 0+7c +0 TLS +LOCAL HIDDEN +10 sH8
- +38: 0+40 +0 TLS +LOCAL HIDDEN +9 sh1
- +39: 0+44 +0 TLS +LOCAL HIDDEN +9 sh2
- +40: 0+54 +0 TLS +LOCAL HIDDEN +9 sh6
- +41: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +42: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +43: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +44: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +45: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +46: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +47: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
- +48: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +49: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +50: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +51: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +52: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +53: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +54: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
- +55: 0+ +0 NOTYPE GLOBAL DEFAULT UND ___tls_get_addr
+ +[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 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17 *
+ +[0-9]+: 0+20 +0 TLS +LOCAL DEFAULT +8 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL DEFAULT +8 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL DEFAULT +8 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL DEFAULT +8 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL DEFAULT +8 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL DEFAULT +8 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL DEFAULT +8 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL DEFAULT +8 sl8
+ +[0-9]+: 0+60 +0 TLS +LOCAL HIDDEN +9 sH1
+ +[0-9]+: 0+48 +0 TLS +LOCAL HIDDEN +8 sh3
+ +[0-9]+: 0+64 +0 TLS +LOCAL HIDDEN +9 sH2
+ +[0-9]+: 0+78 +0 TLS +LOCAL HIDDEN +9 sH7
+ +[0-9]+: 0+58 +0 TLS +LOCAL HIDDEN +8 sh7
+ +[0-9]+: 0+5c +0 TLS +LOCAL HIDDEN +8 sh8
+ +[0-9]+: 0+6c +0 TLS +LOCAL HIDDEN +9 sH4
+ +[0-9]+: 0+4c +0 TLS +LOCAL HIDDEN +8 sh4
+ +[0-9]+: 0+68 +0 TLS +LOCAL HIDDEN +9 sH3
+ +[0-9]+: 0+50 +0 TLS +LOCAL HIDDEN +8 sh5
+ +[0-9]+: 0+70 +0 TLS +LOCAL HIDDEN +9 sH5
+ +[0-9]+: 0+74 +0 TLS +LOCAL HIDDEN +9 sH6
+ +[0-9]+: 0+7c +0 TLS +LOCAL HIDDEN +9 sH8
+ +[0-9]+: 0+40 +0 TLS +LOCAL HIDDEN +8 sh1
+ +[0-9]+: 0+44 +0 TLS +LOCAL HIDDEN +8 sh2
+ +[0-9]+: 0+54 +0 TLS +LOCAL HIDDEN +8 sh6
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 NOTYPE GLOBAL DEFAULT UND ___tls_get_addr
diff --git a/ld/testsuite/ld-i386/tlspic.sd b/ld/testsuite/ld-i386/tlspic.sd
index e51848d..f9c9627 100644
--- a/ld/testsuite/ld-i386/tlspic.sd
+++ b/ld/testsuite/ld-i386/tlspic.sd
@@ -8,7 +8,6 @@
.*: file format elf32-i386
Contents of section \.got:
- [0-9a-f]+ [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .*
[0-9a-f]+ 00000000 20000000 dcffffff 28000000 .*
[0-9a-f]+ d4ffffff 2c000000 30000000 00000000 .*
[0-9a-f]+ 00000000 00000000 60000000 00000000 .*
diff --git a/ld/testsuite/ld-ia64/tlsbin.rd b/ld/testsuite/ld-ia64/tlsbin.rd
index 466c5b4..77eebae 100644
--- a/ld/testsuite/ld-ia64/tlsbin.rd
+++ b/ld/testsuite/ld-ia64/tlsbin.rd
@@ -20,11 +20,11 @@ Section Headers:
\[ 8\] .text +PROGBITS +40+1000 0+1000 0+140 00 +AX +0 +0 4096
\[ 9\] .IA_64.unwind_inf +.*
\[10\] .IA_64.unwind +.*
- \[11\] .data +.*
- \[12\] .tdata +PROGBITS +60+2000 0+2000 0+60 00 WAT +0 +0 +4
- \[13\] .tbss +NOBITS +60+2060 0+2060 0+40 00 WAT +0 +0 +1
- \[14\] .dynamic +DYNAMIC +60+2060 0+2060 0+150 10 +WA +4 +0 +8
- \[15\] .got +PROGBITS +60+21b0 0+21b0 0+48 00 WAp +0 +0 +8
+ \[11\] .tdata +PROGBITS +60+1170 0+1170 0+60 00 WAT +0 +0 +4
+ \[12\] .tbss +NOBITS +60+11d0 0+11d0 0+40 00 WAT +0 +0 +1
+ \[13\] .dynamic +DYNAMIC +60+11d0 0+11d0 0+150 10 +WA +4 +0 +8
+ \[14\] .data +.*
+ \[15\] .got +PROGBITS +60+2000 0+2000 0+48 00 WAp +0 +0 +8
\[16\] .IA_64.pltoff +.*
\[17\] .sbss +.*
\[18\] .bss +.*
@@ -43,32 +43,32 @@ Program Headers:
INTERP +0x0+1c8 0x40+1c8 0x40+1c8 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1
.*Requesting program interpreter.*
LOAD +0x0+ 0x40+ 0x40+ 0x0+1170 0x0+1170 R E 0x10000
- LOAD +0x0+2000 0x60+2000 0x60+2000 0x0+210 0x0+210 RW +0x10000
- DYNAMIC +0x0+2060 0x60+2060 0x60+2060 0x0+150 0x0+150 RW +0x8
- TLS +0x0+2000 0x60+2000 0x60+2000 0x0+60 0x0+a0 R +0x4
+ LOAD +0x0+1170 0x60+1170 0x60+1170 0x0+ef0 0x0+ef0 RW +0x10000
+ DYNAMIC +0x0+11d0 0x60+11d0 0x60+11d0 0x0+150 0x0+150 RW +0x8
+ TLS +0x0+1170 0x60+1170 0x60+1170 0x0+60 0x0+a0 R +0x4
IA_64_UNWIND .* R +0x8
#...
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 3 entries:
+Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend
-60+21c8 0+200000097 R_IA64_TPREL64LSB +0+ sG2 \+ 0
-60+21d0 0+5000000a7 R_IA64_DTPMOD64LSB +0+ sG1 \+ 0
-60+21d8 0+5000000b7 R_IA64_DTPREL64LSB +0+ sG1 \+ 0
+60+2018 0+200000097 R_IA64_TPREL64LSB +0+ sG2 \+ 0
+60+2020 0+5000000a7 R_IA64_DTPMOD64LSB +0+ sG1 \+ 0
+60+2028 0+5000000b7 R_IA64_DTPREL64LSB +0+ sG1 \+ 0
Relocation section '.rela.IA_64.pltoff' at offset 0x[0-9a-f]+ contains 1 entries:
+Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend
-60+2200 0+300000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0
+60+2050 0+300000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0
Symbol table '.dynsym' contains 9 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
- +1: 60+2060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +1: 60+11d0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+2: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
+3: 0+ +16 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+4: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+5: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
+6: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +7: 60+21b0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +7: 60+2000 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+8: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
Symbol table '.symtab' contains 72 entries:
@@ -95,53 +95,53 @@ Symbol table '.symtab' contains 72 entries:
+19: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 *
+20: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 *
+21: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +21 *
- +22: 0+20 +0 TLS +LOCAL +DEFAULT +12 sl1
- +23: 0+24 +0 TLS +LOCAL +DEFAULT +12 sl2
- +24: 0+28 +0 TLS +LOCAL +DEFAULT +12 sl3
- +25: 0+2c +0 TLS +LOCAL +DEFAULT +12 sl4
- +26: 0+30 +0 TLS +LOCAL +DEFAULT +12 sl5
- +27: 0+34 +0 TLS +LOCAL +DEFAULT +12 sl6
- +28: 0+38 +0 TLS +LOCAL +DEFAULT +12 sl7
- +29: 0+3c +0 TLS +LOCAL +DEFAULT +12 sl8
- +30: 0+80 +0 TLS +LOCAL +DEFAULT +13 bl1
- +31: 0+84 +0 TLS +LOCAL +DEFAULT +13 bl2
- +32: 0+88 +0 TLS +LOCAL +DEFAULT +13 bl3
- +33: 0+8c +0 TLS +LOCAL +DEFAULT +13 bl4
- +34: 0+90 +0 TLS +LOCAL +DEFAULT +13 bl5
- +35: 0+94 +0 TLS +LOCAL +DEFAULT +13 bl6
- +36: 0+98 +0 TLS +LOCAL +DEFAULT +13 bl7
- +37: 0+9c +0 TLS +LOCAL +DEFAULT +13 bl8
- +38: 0+1c +0 TLS +GLOBAL DEFAULT +12 sg8
- +39: 0+7c +0 TLS +GLOBAL DEFAULT +13 bg8
- +40: 0+74 +0 TLS +GLOBAL DEFAULT +13 bg6
- +41: 0+68 +0 TLS +GLOBAL DEFAULT +13 bg3
- +42: 60+2060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +43: 0+8 +0 TLS +GLOBAL DEFAULT +12 sg3
- +44: 0+48 +0 TLS +GLOBAL HIDDEN +12 sh3
+ +22: 0+20 +0 TLS +LOCAL +DEFAULT +11 sl1
+ +23: 0+24 +0 TLS +LOCAL +DEFAULT +11 sl2
+ +24: 0+28 +0 TLS +LOCAL +DEFAULT +11 sl3
+ +25: 0+2c +0 TLS +LOCAL +DEFAULT +11 sl4
+ +26: 0+30 +0 TLS +LOCAL +DEFAULT +11 sl5
+ +27: 0+34 +0 TLS +LOCAL +DEFAULT +11 sl6
+ +28: 0+38 +0 TLS +LOCAL +DEFAULT +11 sl7
+ +29: 0+3c +0 TLS +LOCAL +DEFAULT +11 sl8
+ +30: 0+80 +0 TLS +LOCAL +DEFAULT +12 bl1
+ +31: 0+84 +0 TLS +LOCAL +DEFAULT +12 bl2
+ +32: 0+88 +0 TLS +LOCAL +DEFAULT +12 bl3
+ +33: 0+8c +0 TLS +LOCAL +DEFAULT +12 bl4
+ +34: 0+90 +0 TLS +LOCAL +DEFAULT +12 bl5
+ +35: 0+94 +0 TLS +LOCAL +DEFAULT +12 bl6
+ +36: 0+98 +0 TLS +LOCAL +DEFAULT +12 bl7
+ +37: 0+9c +0 TLS +LOCAL +DEFAULT +12 bl8
+ +38: 0+1c +0 TLS +GLOBAL DEFAULT +11 sg8
+ +39: 0+7c +0 TLS +GLOBAL DEFAULT +12 bg8
+ +40: 0+74 +0 TLS +GLOBAL DEFAULT +12 bg6
+ +41: 0+68 +0 TLS +GLOBAL DEFAULT +12 bg3
+ +42: 60+11d0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +43: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3
+ +44: 0+48 +0 TLS +GLOBAL HIDDEN +11 sh3
+45: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
- +46: 0+c +0 TLS +GLOBAL DEFAULT +12 sg4
- +47: 0+10 +0 TLS +GLOBAL DEFAULT +12 sg5
- +48: 0+70 +0 TLS +GLOBAL DEFAULT +13 bg5
+ +46: 0+c +0 TLS +GLOBAL DEFAULT +11 sg4
+ +47: 0+10 +0 TLS +GLOBAL DEFAULT +11 sg5
+ +48: 0+70 +0 TLS +GLOBAL DEFAULT +12 bg5
+49: 0+ +16 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
- +50: 0+58 +0 TLS +GLOBAL HIDDEN +12 sh7
- +51: 0+5c +0 TLS +GLOBAL HIDDEN +12 sh8
- +52: 0+ +0 TLS +GLOBAL DEFAULT +12 sg1
+ +50: 0+58 +0 TLS +GLOBAL HIDDEN +11 sh7
+ +51: 0+5c +0 TLS +GLOBAL HIDDEN +11 sh8
+ +52: 0+ +0 TLS +GLOBAL DEFAULT +11 sg1
+53: 40+10d0 +112 FUNC +GLOBAL DEFAULT +8 _start
- +54: 0+4c +0 TLS +GLOBAL HIDDEN +12 sh4
- +55: 0+78 +0 TLS +GLOBAL DEFAULT +13 bg7
- +56: 0+50 +0 TLS +GLOBAL HIDDEN +12 sh5
+ +54: 0+4c +0 TLS +GLOBAL HIDDEN +11 sh4
+ +55: 0+78 +0 TLS +GLOBAL DEFAULT +12 bg7
+ +56: 0+50 +0 TLS +GLOBAL HIDDEN +11 sh5
+57: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+58: 40+1000 +208 FUNC +GLOBAL DEFAULT +8 fn2
- +59: 0+4 +0 TLS +GLOBAL DEFAULT +12 sg2
+ +59: 0+4 +0 TLS +GLOBAL DEFAULT +11 sg2
+60: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
- +61: 0+40 +0 TLS +GLOBAL HIDDEN +12 sh1
- +62: 0+14 +0 TLS +GLOBAL DEFAULT +12 sg6
- +63: 0+18 +0 TLS +GLOBAL DEFAULT +12 sg7
+ +61: 0+40 +0 TLS +GLOBAL HIDDEN +11 sh1
+ +62: 0+14 +0 TLS +GLOBAL DEFAULT +11 sg6
+ +63: 0+18 +0 TLS +GLOBAL DEFAULT +11 sg7
+64: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+65: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+66: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +67: 0+44 +0 TLS +GLOBAL HIDDEN +12 sh2
- +68: 0+54 +0 TLS +GLOBAL HIDDEN +12 sh6
- +69: 0+64 +0 TLS +GLOBAL DEFAULT +13 bg2
- +70: 0+60 +0 TLS +GLOBAL DEFAULT +13 bg1
- +71: 0+6c +0 TLS +GLOBAL DEFAULT +13 bg4
+ +67: 0+44 +0 TLS +GLOBAL HIDDEN +11 sh2
+ +68: 0+54 +0 TLS +GLOBAL HIDDEN +11 sh6
+ +69: 0+64 +0 TLS +GLOBAL DEFAULT +12 bg2
+ +70: 0+60 +0 TLS +GLOBAL DEFAULT +12 bg1
+ +71: 0+6c +0 TLS +GLOBAL DEFAULT +12 bg4
diff --git a/ld/testsuite/ld-ia64/tlsbin.sd b/ld/testsuite/ld-ia64/tlsbin.sd
index 847a20d..4ee17c6 100644
--- a/ld/testsuite/ld-ia64/tlsbin.sd
+++ b/ld/testsuite/ld-ia64/tlsbin.sd
@@ -8,8 +8,8 @@
.*: +file format elf..-ia64-.*
Contents of section .got:
- (60+)?21b0 0+ 0+ 0+ 0+ .*
- (60+)?21c0 0+ 0+ 0+ 0+ .*
- (60+)?21d0 0+ 0+ 0+ 0+ .*
- (60+)?21e0 01000000 0+ 90000000 0+ .*
- (60+)?21f0 24000000 0+ .*
+ (60+)?2000 0+ 0+ 0+ 0+ .*
+ (60+)?2010 0+ 0+ 0+ 0+ .*
+ (60+)?2020 0+ 0+ 0+ 0+ .*
+ (60+)?2030 01000000 0+ 90000000 0+ .*
+ (60+)?2040 24000000 0+ .*
diff --git a/ld/testsuite/ld-ia64/tlsbin.td b/ld/testsuite/ld-ia64/tlsbin.td
index 3d58077..d4492e8 100644
--- a/ld/testsuite/ld-ia64/tlsbin.td
+++ b/ld/testsuite/ld-ia64/tlsbin.td
@@ -8,9 +8,9 @@
.*: +file format elf..-ia64-.*
Contents of section .tdata:
- (60+)?2000 11000000 12000000 13000000 14000000 .*
- (60+)?2010 15000000 16000000 17000000 18000000 .*
- (60+)?2020 41000000 42000000 43000000 44000000 .*
- (60+)?2030 45000000 46000000 47000000 48000000 .*
- (60+)?2040 01010000 02010000 03010000 04010000 .*
- (60+)?2050 05010000 06010000 07010000 08010000 .*
+ (60+)?1170 11000000 12000000 13000000 14000000 .*
+ (60+)?1180 15000000 16000000 17000000 18000000 .*
+ (60+)?1190 41000000 42000000 43000000 44000000 .*
+ (60+)?11a0 45000000 46000000 47000000 48000000 .*
+ (60+)?11b0 01010000 02010000 03010000 04010000 .*
+ (60+)?11c0 05010000 06010000 07010000 08010000 .*
diff --git a/ld/testsuite/ld-ia64/tlspic.dd b/ld/testsuite/ld-ia64/tlspic.dd
index 79da6af..cfbbbe4 100644
--- a/ld/testsuite/ld-ia64/tlspic.dd
+++ b/ld/testsuite/ld-ia64/tlspic.dd
@@ -18,25 +18,25 @@ Disassembly of section .text:
+101c: 01 0a 00 90[ ]+addl r15=32,r1;;
+1020: 19 18 01 1c 18 10[ ]+\[MMB\] +ld8 r35=\[r14\]
+1026: 40 02 3c 30 20 00[ ]+ld8 r36=\[r15\]
- +102c: 88 f6 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+ +102c: 88 f5 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+1030: 0d 70 c0 02 00 24[ ]+\[MFI\] +addl r14=48,r1
+1036: 00 00 00 02 00 e0[ ]+nop.f 0x0
+103c: 01 0c 00 90[ ]+addl r15=64,r1;;
+1040: 19 18 01 1c 18 10[ ]+\[MMB\] +ld8 r35=\[r14\]
+1046: 40 02 3c 30 20 00[ ]+ld8 r36=\[r15\]
- +104c: 68 f6 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+ +104c: 68 f5 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+1050: 0d 70 c0 02 00 24[ ]+\[MFI\] +addl r14=48,r1
+1056: 00 00 00 02 00 80[ ]+nop.f 0x0
+105c: 14 02 00 90[ ]+mov r36=33;;
+1060: 1d 18 01 1c 18 10[ ]+\[MFB\] +ld8 r35=\[r14\]
+1066: 00 00 00 02 00 00[ ]+nop.f 0x0
- +106c: 48 f6 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+ +106c: 48 f5 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+1070: 0d 70 c0 02 00 24[ ]+\[MFI\] +addl r14=48,r1
+1076: 00 00 00 02 00 80[ ]+nop.f 0x0
+107c: 04 00 00 84[ ]+mov r36=r0;;
+1080: 1d 18 01 1c 18 10[ ]+\[MFB\] +ld8 r35=\[r14\]
+1086: 00 00 00 02 00 00[ ]+nop.f 0x0
- +108c: 28 f6 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+ +108c: 28 f5 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+1090: 0b 10 00 10 00 21[ ]+\[MMI\] +mov r2=r8;;
+1096: e0 00 0a 00 48 e0[ ]+addl r14=64,r2
+109c: 21 16 00 90[ ]+addl r15=98,r2;;
diff --git a/ld/testsuite/ld-ia64/tlspic.rd b/ld/testsuite/ld-ia64/tlspic.rd
index 1088f8e..9da9519 100644
--- a/ld/testsuite/ld-ia64/tlspic.rd
+++ b/ld/testsuite/ld-ia64/tlspic.rd
@@ -19,11 +19,11 @@ Section Headers:
\[ 7\] .text +PROGBITS +0+1000 0+1000 0+110 00 +AX +0 +0 4096
\[ 8\] .IA_64.unwind_inf +.*
\[ 9\] .IA_64.unwind +.*
- \[10\] .data +.*
- \[11\] .tdata +PROGBITS +0+12000 0+2000 0+60 00 WAT +0 +0 +4
- \[12\] .tbss +NOBITS +0+12060 0+2060 0+20 00 WAT +0 +0 +1
- \[13\] .dynamic +DYNAMIC +0+12060 0+2060 0+140 10 +WA +3 +0 +8
- \[14\] .got +PROGBITS +0+121a0 0+21a0 0+50 00 WAp +0 +0 +8
+ \[10\] .tdata +PROGBITS +0+11140 0+1140 0+60 00 WAT +0 +0 +4
+ \[11\] .tbss +NOBITS +0+111a0 0+11a0 0+20 00 WAT +0 +0 +1
+ \[12\] .dynamic +DYNAMIC +0+111a0 0+11a0 0+140 10 +WA +3 +0 +8
+ \[13\] .data +.*
+ \[14\] .got +PROGBITS +0+12000 0+2000 0+50 00 WAp +0 +0 +8
\[15\] .IA_64.pltoff +.*
\[16\] .sbss +.*
\[17\] .bss +.*
@@ -40,120 +40,111 @@ There are 5 program headers, starting at offset [0-9]+
Program Headers:
Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
LOAD +0x0+ 0x0+ 0x0+ 0x0+1140 0x0+1140 R E 0x10000
- LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+200 0x0+200 RW +0x10000
- DYNAMIC +0x0+2060 0x0+12060 0x0+12060 0x0+140 0x0+140 RW +0x8
- TLS +0x0+2000 0x0+12000 0x0+12000 0x0+60 0x0+80 R +0x4
+ LOAD +0x0+1140 0x0+11140 0x0+11140 0x0+f20 0x0+f20 RW +0x10000
+ DYNAMIC +0x0+11a0 0x0+111a0 0x0+111a0 0x0+140 0x0+140 RW +0x8
+ TLS +0x0+1140 0x0+11140 0x0+11140 0x0+60 0x0+80 R +0x4
IA_64_UNWIND +0x0+1128 0x0+1128 0x0+1128 0x0+18 0x0+18 R +0x8
#...
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 6 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+121b8 +0+18000000a7 R_IA64_DTPMOD64LSB +0+ sg1 \+ 0
-0+121c0 +0+18000000b7 R_IA64_DTPREL64LSB +0+ sg1 \+ 0
-0+121c8 +0+1b00000097 R_IA64_TPREL64LSB +0+4 sg2 \+ 0
-0+121d0 +0+a7 R_IA64_DTPMOD64LSB +0+
-0+121d8 +0+97 R_IA64_TPREL64LSB +0+44
-0+121e8 +0+97 R_IA64_TPREL64LSB +0+24
+0+12018 +0+f000000a7 R_IA64_DTPMOD64LSB +0+ sg1 \+ 0
+0+12020 +0+f000000b7 R_IA64_DTPREL64LSB +0+ sg1 \+ 0
+0+12028 +0+1200000097 R_IA64_TPREL64LSB +0+4 sg2 \+ 0
+0+12030 +0+a7 R_IA64_DTPMOD64LSB +0+
+0+12038 +0+97 R_IA64_TPREL64LSB +0+44
+0+12048 +0+97 R_IA64_TPREL64LSB +0+24
Relocation section '.rela.IA_64.pltoff' at offset 0x[0-9a-f]+ contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+[0-9a-f]+ +0+1700000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0
+0+[0-9a-f]+ +0+e00000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0
-Symbol table '.dynsym' contains 33 entries:
+Symbol table '.dynsym' contains 24 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 *
- +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
- +18: 0+1c +0 TLS +GLOBAL DEFAULT +11 sg8
- +19: 0+12060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +20: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3
- +21: 0+c +0 TLS +GLOBAL DEFAULT +11 sg4
- +22: 0+10 +0 TLS +GLOBAL DEFAULT +11 sg5
- +23: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
- +24: 0+ +0 TLS +GLOBAL DEFAULT +11 sg1
- +25: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1
- +26: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +27: 0+4 +0 TLS +GLOBAL DEFAULT +11 sg2
- +28: 0+14 +0 TLS +GLOBAL DEFAULT +11 sg6
- +29: 0+18 +0 TLS +GLOBAL DEFAULT +11 sg7
- +30: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +31: 0+121a0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +32: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +[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 +13 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
+ +[0-9]+: 0+111a0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
+ +[0-9]+: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+12000 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
Symbol table '.symtab' contains 60 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 *
- +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
- +18: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +18 *
- +19: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 *
- +20: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 *
- +21: 0+20 +0 TLS +LOCAL +DEFAULT +11 sl1
- +22: 0+24 +0 TLS +LOCAL +DEFAULT +11 sl2
- +23: 0+28 +0 TLS +LOCAL +DEFAULT +11 sl3
- +24: 0+2c +0 TLS +LOCAL +DEFAULT +11 sl4
- +25: 0+30 +0 TLS +LOCAL +DEFAULT +11 sl5
- +26: 0+34 +0 TLS +LOCAL +DEFAULT +11 sl6
- +27: 0+38 +0 TLS +LOCAL +DEFAULT +11 sl7
- +28: 0+3c +0 TLS +LOCAL +DEFAULT +11 sl8
- +29: 0+60 +0 TLS +LOCAL +HIDDEN +12 sH1
- +30: 0+48 +0 TLS +LOCAL +HIDDEN +11 sh3
- +31: 0+64 +0 TLS +LOCAL +HIDDEN +12 sH2
- +32: 0+78 +0 TLS +LOCAL +HIDDEN +12 sH7
- +33: 0+58 +0 TLS +LOCAL +HIDDEN +11 sh7
- +34: 0+5c +0 TLS +LOCAL +HIDDEN +11 sh8
- +35: 0+6c +0 TLS +LOCAL +HIDDEN +12 sH4
- +36: 0+4c +0 TLS +LOCAL +HIDDEN +11 sh4
- +37: 0+68 +0 TLS +LOCAL +HIDDEN +12 sH3
- +38: 0+50 +0 TLS +LOCAL +HIDDEN +11 sh5
- +39: 0+70 +0 TLS +LOCAL +HIDDEN +12 sH5
- +40: 0+74 +0 TLS +LOCAL +HIDDEN +12 sH6
- +41: 0+7c +0 TLS +LOCAL +HIDDEN +12 sH8
- +42: 0+40 +0 TLS +LOCAL +HIDDEN +11 sh1
- +43: 0+44 +0 TLS +LOCAL +HIDDEN +11 sh2
- +44: 0+54 +0 TLS +LOCAL +HIDDEN +11 sh6
- +45: 0+1c +0 TLS +GLOBAL DEFAULT +11 sg8
- +46: 0+12060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +47: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3
- +48: 0+c +0 TLS +GLOBAL DEFAULT +11 sg4
- +49: 0+10 +0 TLS +GLOBAL DEFAULT +11 sg5
- +50: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
- +51: 0+ +0 TLS +GLOBAL DEFAULT +11 sg1
- +52: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1
- +53: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +54: 0+4 +0 TLS +GLOBAL DEFAULT +11 sg2
- +55: 0+14 +0 TLS +GLOBAL DEFAULT +11 sg6
- +56: 0+18 +0 TLS +GLOBAL DEFAULT +11 sg7
- +57: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +58: 0+121a0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +59: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[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 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +18 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 *
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +10 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL +DEFAULT +10 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +10 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL +DEFAULT +10 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +10 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL +DEFAULT +10 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL +DEFAULT +10 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL +DEFAULT +10 sl8
+ +[0-9]+: 0+60 +0 TLS +LOCAL +HIDDEN +11 sH1
+ +[0-9]+: 0+48 +0 TLS +LOCAL +HIDDEN +10 sh3
+ +[0-9]+: 0+64 +0 TLS +LOCAL +HIDDEN +11 sH2
+ +[0-9]+: 0+78 +0 TLS +LOCAL +HIDDEN +11 sH7
+ +[0-9]+: 0+58 +0 TLS +LOCAL +HIDDEN +10 sh7
+ +[0-9]+: 0+5c +0 TLS +LOCAL +HIDDEN +10 sh8
+ +[0-9]+: 0+6c +0 TLS +LOCAL +HIDDEN +11 sH4
+ +[0-9]+: 0+4c +0 TLS +LOCAL +HIDDEN +10 sh4
+ +[0-9]+: 0+68 +0 TLS +LOCAL +HIDDEN +11 sH3
+ +[0-9]+: 0+50 +0 TLS +LOCAL +HIDDEN +10 sh5
+ +[0-9]+: 0+70 +0 TLS +LOCAL +HIDDEN +11 sH5
+ +[0-9]+: 0+74 +0 TLS +LOCAL +HIDDEN +11 sH6
+ +[0-9]+: 0+7c +0 TLS +LOCAL +HIDDEN +11 sH8
+ +[0-9]+: 0+40 +0 TLS +LOCAL +HIDDEN +10 sh1
+ +[0-9]+: 0+44 +0 TLS +LOCAL +HIDDEN +10 sh2
+ +[0-9]+: 0+54 +0 TLS +LOCAL +HIDDEN +10 sh6
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
+ +[0-9]+: 0+111a0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
+ +[0-9]+: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+12000 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
diff --git a/ld/testsuite/ld-ia64/tlspic.sd b/ld/testsuite/ld-ia64/tlspic.sd
index 41d4951..0838b0f 100644
--- a/ld/testsuite/ld-ia64/tlspic.sd
+++ b/ld/testsuite/ld-ia64/tlspic.sd
@@ -8,8 +8,8 @@
.*: +file format elf..-ia64-.*
Contents of section .got:
- 121a0 0+ 0+ 0+ 0+ .*
- 121b0 0+ 0+ [0-9a-f]+ [0-9a-f]+ .*
- 121c0 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ .*
- 121d0 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ .*
- 121e0 440+ 0+ [0-9a-f]+ [0-9a-f]+ .*
+ 12000 0+ 0+ 0+ 0+ .*
+ 12010 0+ 0+ [0-9a-f]+ [0-9a-f]+ .*
+ 12020 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ .*
+ 12030 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ .*
+ 12040 440+ 0+ [0-9a-f]+ [0-9a-f]+ .*
diff --git a/ld/testsuite/ld-ia64/tlspic.td b/ld/testsuite/ld-ia64/tlspic.td
index 16c4a8a..86ac0e3 100644
--- a/ld/testsuite/ld-ia64/tlspic.td
+++ b/ld/testsuite/ld-ia64/tlspic.td
@@ -8,9 +8,9 @@
.*: +file format elf..-ia64-.*
Contents of section .tdata:
- 12000 11000000 12000000 13000000 14000000 .*
- 12010 15000000 16000000 17000000 18000000 .*
- 12020 41000000 42000000 43000000 44000000 .*
- 12030 45000000 46000000 47000000 48000000 .*
- 12040 01010000 02010000 03010000 04010000 .*
- 12050 05010000 06010000 07010000 08010000 .*
+ 11140 11000000 12000000 13000000 14000000 .*
+ 11150 15000000 16000000 17000000 18000000 .*
+ 11160 41000000 42000000 43000000 44000000 .*
+ 11170 45000000 46000000 47000000 48000000 .*
+ 11180 01010000 02010000 03010000 04010000 .*
+ 11190 05010000 06010000 07010000 08010000 .*
diff --git a/ld/testsuite/ld-powerpc/tlsexe.r b/ld/testsuite/ld-powerpc/tlsexe.r
index 1d082ec..801312c 100644
--- a/ld/testsuite/ld-powerpc/tlsexe.r
+++ b/ld/testsuite/ld-powerpc/tlsexe.r
@@ -10,25 +10,25 @@ There are 20 section headers.*
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.interp +PROGBITS +0+10000190 0+190 0+11 0+ +A +0 +0 +1
- +\[ 2\] \.hash +HASH +0+100001a8 0+1a8 0+3c 04 +A +3 +0 +8
- +\[ 3\] \.dynsym +DYNSYM +0+100001e8 0+1e8 0+f0 18 +A +4 +1 +8
- +\[ 4\] \.dynstr +STRTAB +0+100002d8 0+2d8 0+50 0+ +A +0 +0 +1
- +\[ 5\] \.rela\.dyn +RELA +0+10000328 0+328 0+48 18 +A +3 +0 +8
- +\[ 6\] \.rela\.plt +RELA +0+10000370 0+370 0+18 18 +A +3 +15 +8
+ +\[ 1\] \.interp +.*
+ +\[ 2\] \.hash +.*
+ +\[ 3\] \.dynsym +.*
+ +\[ 4\] \.dynstr +.*
+ +\[ 5\] \.rela\.dyn +.*
+ +\[ 6\] \.rela\.plt +.*
+\[ 7\] \.text +PROGBITS +0+10000388 0+388 0+fc 0+ +AX +0 +0 +4
- +\[ 8\] \.data +PROGBITS +0+10010488 0+488 0+ 0+ +WA +0 +0 +1
- +\[ 9\] \.branch_lt +PROGBITS +0+10010488 0+488 0+ 0+ +WA +0 +0 +8
- +\[10\] \.tdata +PROGBITS +0+10010488 0+488 0+38 0+ WAT +0 +0 +8
- +\[11\] \.tbss +NOBITS +0+100104c0 0+4c0 0+38 0+ WAT +0 +0 +8
- +\[12\] \.dynamic +DYNAMIC +0+100104c0 0+4c0 0+150 10 +WA +4 +0 +8
+ +\[ 8\] \.tdata +PROGBITS +0+10010488 0+488 0+38 0+ WAT +0 +0 +8
+ +\[ 9\] \.tbss +NOBITS +0+100104c0 0+4c0 0+38 0+ WAT +0 +0 +8
+ +\[10\] \.dynamic +DYNAMIC +0+100104c0 0+4c0 0+150 10 +WA +4 +0 +8
+ +\[11\] \.data +PROGBITS +0+10010610 0+610 0+ 0+ +WA +0 +0 +1
+ +\[12\] \.branch_lt +.*
+\[13\] \.got +PROGBITS +0+10010610 0+610 0+30 08 +WA +0 +0 +8
- +\[14\] \.sbss +NOBITS +0+10010640 0+640 0+ 0+ +W +0 +0 +1
- +\[15\] \.plt +NOBITS +0+10010640 0+640 0+30 18 +WA +0 +0 +8
- +\[16\] \.bss +NOBITS +0+10010670 0+640 0+ 0+ +WA +0 +0 +1
- +\[17\] \.shstrtab +STRTAB +0+ 0+640 0+8a 0+ +0 +0 +1
- +\[18\] \.symtab +SYMTAB +0+ 0+bd0 0+408 18 +19 +27 +8
- +\[19\] \.strtab +STRTAB +0+ 0+fd8 0+86 0+ +0 +0 +1
+ +\[14\] \.sbss +.*
+ +\[15\] \.plt +.*
+ +\[16\] \.bss +.*
+ +\[17\] \.shstrtab +.*
+ +\[18\] \.symtab +.*
+ +\[19\] \.strtab +.*
#...
Elf file type is EXEC \(Executable file\)
@@ -72,7 +72,7 @@ Symbol table '\.dynsym' contains 10 entries:
+3: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+4: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
+5: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
- +6: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
+ +6: 0+50 +0 TLS +GLOBAL DEFAULT +9 ld2
+7: 0+10010640 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+8: 0+10010640 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+9: 0+10010670 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
@@ -80,45 +80,45 @@ Symbol table '\.dynsym' contains 10 entries:
Symbol table '\.symtab' contains 43 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+10000190 +0 SECTION LOCAL +DEFAULT +1
- +2: 0+100001a8 +0 SECTION LOCAL +DEFAULT +2
- +3: 0+100001e8 +0 SECTION LOCAL +DEFAULT +3
- +4: 0+100002d8 +0 SECTION LOCAL +DEFAULT +4
- +5: 0+10000328 +0 SECTION LOCAL +DEFAULT +5
- +6: 0+10000370 +0 SECTION LOCAL +DEFAULT +6
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3
+ +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4
+ +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5
+ +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6
+7: 0+10000388 +0 SECTION LOCAL +DEFAULT +7
+8: 0+10010488 +0 SECTION LOCAL +DEFAULT +8
- +9: 0+10010488 +0 SECTION LOCAL +DEFAULT +9
- +10: 0+10010488 +0 SECTION LOCAL +DEFAULT +10
- +11: 0+100104c0 +0 SECTION LOCAL +DEFAULT +11
- +12: 0+100104c0 +0 SECTION LOCAL +DEFAULT +12
+ +9: 0+100104c0 +0 SECTION LOCAL +DEFAULT +9
+ +10: 0+100104c0 +0 SECTION LOCAL +DEFAULT +10
+ +11: 0+10010610 +0 SECTION LOCAL +DEFAULT +11
+ +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12
+13: 0+10010610 +0 SECTION LOCAL +DEFAULT +13
- +14: 0+10010640 +0 SECTION LOCAL +DEFAULT +14
- +15: 0+10010640 +0 SECTION LOCAL +DEFAULT +15
- +16: 0+10010670 +0 SECTION LOCAL +DEFAULT +16
+ +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14
+ +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15
+ +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16
+17: 0+ +0 SECTION LOCAL +DEFAULT +17
+18: 0+ +0 SECTION LOCAL +DEFAULT +18
+19: 0+ +0 SECTION LOCAL +DEFAULT +19
- +20: 0+ +0 TLS +LOCAL +DEFAULT +10 gd4
- +21: 0+8 +0 TLS +LOCAL +DEFAULT +10 ld4
- +22: 0+10 +0 TLS +LOCAL +DEFAULT +10 ld5
- +23: 0+18 +0 TLS +LOCAL +DEFAULT +10 ld6
- +24: 0+20 +0 TLS +LOCAL +DEFAULT +10 ie4
- +25: 0+28 +0 TLS +LOCAL +DEFAULT +10 le4
- +26: 0+30 +0 TLS +LOCAL +DEFAULT +10 le5
+ +20: 0+ +0 TLS +LOCAL +DEFAULT +8 gd4
+ +21: 0+8 +0 TLS +LOCAL +DEFAULT +8 ld4
+ +22: 0+10 +0 TLS +LOCAL +DEFAULT +8 ld5
+ +23: 0+18 +0 TLS +LOCAL +DEFAULT +8 ld6
+ +24: 0+20 +0 TLS +LOCAL +DEFAULT +8 ie4
+ +25: 0+28 +0 TLS +LOCAL +DEFAULT +8 le4
+ +26: 0+30 +0 TLS +LOCAL +DEFAULT +8 le5
+27: 0+100104c0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+28: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
- +29: 0+60 +0 TLS +GLOBAL DEFAULT +11 le0
+ +29: 0+60 +0 TLS +GLOBAL DEFAULT +9 le0
+30: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+31: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
- +32: 0+40 +0 TLS +GLOBAL DEFAULT +11 ld0
- +33: 0+68 +0 TLS +GLOBAL DEFAULT +11 le1
+ +32: 0+40 +0 TLS +GLOBAL DEFAULT +9 ld0
+ +33: 0+68 +0 TLS +GLOBAL DEFAULT +9 le1
+34: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
- +35: 0+100003a4 +0 NOTYPE +GLOBAL DEFAULT +7 _start
- +36: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
- +37: 0+48 +0 TLS +GLOBAL DEFAULT +11 ld1
- +38: 0+10010640 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +39: 0+10010640 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +40: 0+10010670 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +41: 0+38 +0 TLS +GLOBAL DEFAULT +11 gd0
- +42: 0+58 +0 TLS +GLOBAL DEFAULT +11 ie0
+ +35: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +7 _start
+ +36: 0+50 +0 TLS +GLOBAL DEFAULT +9 ld2
+ +37: 0+48 +0 TLS +GLOBAL DEFAULT +9 ld1
+ +38: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +39: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +40: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +41: 0+38 +0 TLS +GLOBAL DEFAULT +9 gd0
+ +42: 0+58 +0 TLS +GLOBAL DEFAULT +9 ie0
diff --git a/ld/testsuite/ld-powerpc/tlsexe32.r b/ld/testsuite/ld-powerpc/tlsexe32.r
index 4fe7b64..217473c 100644
--- a/ld/testsuite/ld-powerpc/tlsexe32.r
+++ b/ld/testsuite/ld-powerpc/tlsexe32.r
@@ -10,26 +10,26 @@ There are 21 section headers.*
Section Headers:
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +00000000 000000 000000 00 +0 +0 +0
- +\[ 1\] \.interp +PROGBITS +01800114 000114 000011 00 +A +0 +0 +1
- +\[ 2\] \.hash +HASH +01800128 000128 00003c 04 +A +3 +0 +4
- +\[ 3\] \.dynsym +DYNSYM +01800164 000164 0000a0 10 +A +4 +1 +4
- +\[ 4\] \.dynstr +STRTAB +01800204 000204 000064 00 +A +0 +0 +1
- +\[ 5\] \.rela\.dyn +RELA +01800268 000268 000018 0c +A +3 +0 +4
- +\[ 6\] \.rela\.plt +RELA +01800280 000280 00000c 0c +A +3 +16 +4
+ +\[ 1\] \.interp +.*
+ +\[ 2\] \.hash +.*
+ +\[ 3\] \.dynsym +.*
+ +\[ 4\] \.dynstr +.*
+ +\[ 5\] \.rela\.dyn +.*
+ +\[ 6\] \.rela\.plt +.*
+\[ 7\] \.text +PROGBITS +0180028c 00028c 000070 00 +AX +0 +0 +1
- +\[ 8\] \.sdata2 +PROGBITS +018002fc 0002fc 000000 00 +A +0 +0 +4
- +\[ 9\] \.data +PROGBITS +018102fc 0002fc 000000 00 +WA +0 +0 +1
- +\[10\] \.tdata +PROGBITS +018102fc 0002fc 00001c 00 WAT +0 +0 +4
- +\[11\] \.tbss +NOBITS +01810318 000318 00001c 00 WAT +0 +0 +4
- +\[12\] \.dynamic +DYNAMIC +01810318 000318 0000a0 08 +WA +4 +0 +4
+ +\[ 8\] \.sdata2 +PROGBITS +.*
+ +\[ 9\] \.tdata +PROGBITS +018102fc 0002fc 00001c 00 WAT +0 +0 +4
+ +\[10\] \.tbss +NOBITS +01810318 000318 00001c 00 WAT +0 +0 +4
+ +\[11\] \.dynamic +DYNAMIC +01810318 000318 0000a0 08 +WA +4 +0 +4
+ +\[12\] \.data +PROGBITS +018103b8 0003b8 000000 00 +WA +0 +0 +1
+\[13\] \.got +PROGBITS +018103b8 0003b8 00001c 04 WAX +0 +0 +4
+\[14\] \.sdata +PROGBITS +018103d4 0003d4 000000 00 +WA +0 +0 +4
+\[15\] \.sbss +NOBITS +018103d4 0003d4 000000 00 +WA +0 +0 +1
- +\[16\] \.plt +NOBITS +018103d4 0003d4 000054 00 WAX +0 +0 +4
- +\[17\] \.bss +NOBITS +01810428 0003d4 000000 00 +WA +0 +0 +1
- +\[18\] \.shstrtab +STRTAB +00000000 0003d4 00008e 00 +0 +0 +1
- +\[19\] \.symtab +SYMTAB +00000000 0007ac 0002f0 10 +20 +28 +4
- +\[20\] \.strtab +STRTAB +00000000 000a9c 0000a9 00 +0 +0 +1
+ +\[16\] \.plt +NOBITS +.*
+ +\[17\] \.bss +NOBITS +.*
+ +\[18\] \.shstrtab +STRTAB +.*
+ +\[19\] \.symtab +SYMTAB +.*
+ +\[20\] \.strtab +STRTAB +.*
#...
Elf file type is EXEC \(Executable file\)
@@ -80,49 +80,49 @@ Symbol table '\.dynsym' contains 10 entries:
Symbol table '\.symtab' contains 47 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 00000000 +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 01800114 +0 SECTION LOCAL +DEFAULT +1
- +2: 01800128 +0 SECTION LOCAL +DEFAULT +2
- +3: 01800164 +0 SECTION LOCAL +DEFAULT +3
- +4: 01800204 +0 SECTION LOCAL +DEFAULT +4
- +5: 01800268 +0 SECTION LOCAL +DEFAULT +5
- +6: 01800280 +0 SECTION LOCAL +DEFAULT +6
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3
+ +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4
+ +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5
+ +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6
+7: 0180028c +0 SECTION LOCAL +DEFAULT +7
- +8: 018002fc +0 SECTION LOCAL +DEFAULT +8
+ +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8
+9: 018102fc +0 SECTION LOCAL +DEFAULT +9
- +10: 018102fc +0 SECTION LOCAL +DEFAULT +10
+ +10: 01810318 +0 SECTION LOCAL +DEFAULT +10
+11: 01810318 +0 SECTION LOCAL +DEFAULT +11
- +12: 01810318 +0 SECTION LOCAL +DEFAULT +12
+ +12: 018103b8 +0 SECTION LOCAL +DEFAULT +12
+13: 018103b8 +0 SECTION LOCAL +DEFAULT +13
+14: 018103d4 +0 SECTION LOCAL +DEFAULT +14
+15: 018103d4 +0 SECTION LOCAL +DEFAULT +15
- +16: 018103d4 +0 SECTION LOCAL +DEFAULT +16
- +17: 01810428 +0 SECTION LOCAL +DEFAULT +17
- +18: 00000000 +0 SECTION LOCAL +DEFAULT +18
- +19: 00000000 +0 SECTION LOCAL +DEFAULT +19
- +20: 00000000 +0 SECTION LOCAL +DEFAULT +20
- +21: 00000000 +0 TLS +LOCAL +DEFAULT +10 gd4
- +22: 00000004 +0 TLS +LOCAL +DEFAULT +10 ld4
- +23: 00000008 +0 TLS +LOCAL +DEFAULT +10 ld5
- +24: 0000000c +0 TLS +LOCAL +DEFAULT +10 ld6
- +25: 00000010 +0 TLS +LOCAL +DEFAULT +10 ie4
- +26: 00000014 +0 TLS +LOCAL +DEFAULT +10 le4
- +27: 00000018 +0 TLS +LOCAL +DEFAULT +10 le5
+ +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16
+ +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17
+ +18: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +18
+ +19: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19
+ +20: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20
+ +21: 00000000 +0 TLS +LOCAL +DEFAULT +9 gd4
+ +22: 00000004 +0 TLS +LOCAL +DEFAULT +9 ld4
+ +23: 00000008 +0 TLS +LOCAL +DEFAULT +9 ld5
+ +24: 0000000c +0 TLS +LOCAL +DEFAULT +9 ld6
+ +25: 00000010 +0 TLS +LOCAL +DEFAULT +9 ie4
+ +26: 00000014 +0 TLS +LOCAL +DEFAULT +9 le4
+ +27: 00000018 +0 TLS +LOCAL +DEFAULT +9 le5
+28: 01810318 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+29: 00000000 +0 TLS +GLOBAL DEFAULT +UND gd
- +30: 00000030 +0 TLS +GLOBAL DEFAULT +11 le0
- +31: 0181041c +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
- +32: 00000020 +0 TLS +GLOBAL DEFAULT +11 ld0
- +33: 00000034 +0 TLS +GLOBAL DEFAULT +11 le1
+ +30: 00000030 +0 TLS +GLOBAL DEFAULT +10 le0
+ +31: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+ +32: 00000020 +0 TLS +GLOBAL DEFAULT +10 ld0
+ +33: 00000034 +0 TLS +GLOBAL DEFAULT +10 le1
+34: 00000000 +0 TLS +GLOBAL DEFAULT +UND ld
- +35: 0180028c +0 NOTYPE +GLOBAL DEFAULT +7 _start
- +36: 01810428 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
- +37: 018183d4 +0 OBJECT +GLOBAL DEFAULT +14 _SDA_BASE_
- +38: 00000028 +0 TLS +GLOBAL DEFAULT +11 ld2
- +39: 00000024 +0 TLS +GLOBAL DEFAULT +11 ld1
- +40: 018103d4 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +41: 018103d4 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +35: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +7 _start
+ +36: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+ +37: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +14 _SDA_BASE_
+ +38: 00000028 +0 TLS +GLOBAL DEFAULT +10 ld2
+ +39: 00000024 +0 TLS +GLOBAL DEFAULT +10 ld1
+ +40: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +41: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+42: 018103bc +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +43: 01810428 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +44: 0000001c +0 TLS +GLOBAL DEFAULT +11 gd0
- +45: 0000002c +0 TLS +GLOBAL DEFAULT +11 ie0
- +46: 018082fc +0 OBJECT +GLOBAL DEFAULT +8 _SDA2_BASE_
+ +43: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +44: 0000001c +0 TLS +GLOBAL DEFAULT +10 gd0
+ +45: 0000002c +0 TLS +GLOBAL DEFAULT +10 ie0
+ +46: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +8 _SDA2_BASE_
diff --git a/ld/testsuite/ld-powerpc/tlsexetoc.r b/ld/testsuite/ld-powerpc/tlsexetoc.r
index c5dd994..2cf4043 100644
--- a/ld/testsuite/ld-powerpc/tlsexetoc.r
+++ b/ld/testsuite/ld-powerpc/tlsexetoc.r
@@ -10,25 +10,25 @@ There are 20 section headers.*
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.interp +PROGBITS +0+10000190 0+190 0+11 0+ +A +0 +0 +1
- +\[ 2\] \.hash +HASH +0+100001a8 0+1a8 0+38 04 +A +3 +0 +8
- +\[ 3\] \.dynsym +DYNSYM +0+100001e0 0+1e0 0+d8 18 +A +4 +1 +8
- +\[ 4\] \.dynstr +STRTAB +0+100002b8 0+2b8 0+4c 0+ +A +0 +0 +1
- +\[ 5\] \.rela\.dyn +RELA +0+10000308 0+308 0+30 18 +A +3 +0 +8
- +\[ 6\] \.rela\.plt +RELA +0+10000338 0+338 0+18 18 +A +3 +15 +8
+ +\[ 1\] \.interp +.*
+ +\[ 2\] \.hash +.*
+ +\[ 3\] \.dynsym +.*
+ +\[ 4\] \.dynstr +.*
+ +\[ 5\] \.rela\.dyn +.*
+ +\[ 6\] \.rela\.plt +.*
+\[ 7\] \.text +PROGBITS +0+10000350 0+350 0+bc 0+ +AX +0 +0 +4
- +\[ 8\] \.data +PROGBITS +0+10010410 0+410 0+ 0+ +WA +0 +0 +1
- +\[ 9\] \.branch_lt +PROGBITS +0+10010410 0+410 0+ 0+ +WA +0 +0 +8
- +\[10\] \.tdata +PROGBITS +0+10010410 0+410 0+38 0+ WAT +0 +0 +8
- +\[11\] \.tbss +NOBITS +0+10010448 0+448 0+38 0+ WAT +0 +0 +8
- +\[12\] \.dynamic +DYNAMIC +0+10010448 0+448 0+150 10 +WA +4 +0 +8
+ +\[ 8\] \.tdata +PROGBITS +0+10010410 0+410 0+38 0+ WAT +0 +0 +8
+ +\[ 9\] \.tbss +NOBITS +0+10010448 0+448 0+38 0+ WAT +0 +0 +8
+ +\[10\] \.dynamic +DYNAMIC +0+10010448 0+448 0+150 10 +WA +4 +0 +8
+ +\[11\] \.data +PROGBITS +0+10010598 0+598 0+ 0+ +WA +0 +0 +1
+ +\[12\] \.branch_lt +.*
+\[13\] \.got +PROGBITS +0+10010598 0+598 0+58 08 +WA +0 +0 +8
- +\[14\] \.sbss +NOBITS +0+100105f0 0+5f0 0+ 0+ +W +0 +0 +1
- +\[15\] \.plt +NOBITS +0+100105f0 0+5f0 0+30 18 +WA +0 +0 +8
- +\[16\] \.bss +NOBITS +0+10010620 0+5f0 0+ 0+ +WA +0 +0 +1
- +\[17\] \.shstrtab +STRTAB +0+ 0+5f0 0+8a 0+ +0 +0 +1
- +\[18\] \.symtab +SYMTAB +0+ 0+b80 0+420 18 +19 +28 +8
- +\[19\] \.strtab +STRTAB +0+ 0+fa0 0+8c 0+ +0 +0 +1
+ +\[14\] \.sbss +.*
+ +\[15\] \.plt +.*
+ +\[16\] \.bss +.*
+ +\[17\] \.shstrtab +.*
+ +\[18\] \.symtab +.*
+ +\[19\] \.strtab +.*
#...
Elf file type is EXEC \(Executable file\)
@@ -71,53 +71,53 @@ Symbol table '\.dynsym' contains 9 entries:
+3: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+4: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
+5: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
- +6: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +7: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +8: 0+10010620 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +6: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +7: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +8: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
Symbol table '\.symtab' contains 44 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
+0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+10000190 +0 SECTION LOCAL +DEFAULT +1
- +2: 0+100001a8 +0 SECTION LOCAL +DEFAULT +2
- +3: 0+100001e0 +0 SECTION LOCAL +DEFAULT +3
- +4: 0+100002b8 +0 SECTION LOCAL +DEFAULT +4
- +5: 0+10000308 +0 SECTION LOCAL +DEFAULT +5
- +6: 0+10000338 +0 SECTION LOCAL +DEFAULT +6
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3
+ +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4
+ +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5
+ +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6
+7: 0+10000350 +0 SECTION LOCAL +DEFAULT +7
+8: 0+10010410 +0 SECTION LOCAL +DEFAULT +8
- +9: 0+10010410 +0 SECTION LOCAL +DEFAULT +9
- +10: 0+10010410 +0 SECTION LOCAL +DEFAULT +10
- +11: 0+10010448 +0 SECTION LOCAL +DEFAULT +11
- +12: 0+10010448 +0 SECTION LOCAL +DEFAULT +12
+ +9: 0+10010448 +0 SECTION LOCAL +DEFAULT +9
+ +10: 0+10010448 +0 SECTION LOCAL +DEFAULT +10
+ +11: 0+10010598 +0 SECTION LOCAL +DEFAULT +11
+ +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12
+13: 0+10010598 +0 SECTION LOCAL +DEFAULT +13
- +14: 0+100105f0 +0 SECTION LOCAL +DEFAULT +14
- +15: 0+100105f0 +0 SECTION LOCAL +DEFAULT +15
- +16: 0+10010620 +0 SECTION LOCAL +DEFAULT +16
+ +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14
+ +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15
+ +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16
+17: 0+ +0 SECTION LOCAL +DEFAULT +17
+18: 0+ +0 SECTION LOCAL +DEFAULT +18
+19: 0+ +0 SECTION LOCAL +DEFAULT +19
- +20: 0+ +0 TLS +LOCAL +DEFAULT +10 gd4
- +21: 0+8 +0 TLS +LOCAL +DEFAULT +10 ld4
- +22: 0+10 +0 TLS +LOCAL +DEFAULT +10 ld5
- +23: 0+18 +0 TLS +LOCAL +DEFAULT +10 ld6
- +24: 0+20 +0 TLS +LOCAL +DEFAULT +10 ie4
- +25: 0+28 +0 TLS +LOCAL +DEFAULT +10 le4
- +26: 0+30 +0 TLS +LOCAL +DEFAULT +10 le5
+ +20: 0+ +0 TLS +LOCAL +DEFAULT +8 gd4
+ +21: 0+8 +0 TLS +LOCAL +DEFAULT +8 ld4
+ +22: 0+10 +0 TLS +LOCAL +DEFAULT +8 ld5
+ +23: 0+18 +0 TLS +LOCAL +DEFAULT +8 ld6
+ +24: 0+20 +0 TLS +LOCAL +DEFAULT +8 ie4
+ +25: 0+28 +0 TLS +LOCAL +DEFAULT +8 le4
+ +26: 0+30 +0 TLS +LOCAL +DEFAULT +8 le5
+27: 0+100105e8 +0 NOTYPE +LOCAL +DEFAULT +13 \.Lie0
+28: 0+10010448 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+29: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
- +30: 0+60 +0 TLS +GLOBAL DEFAULT +11 le0
+ +30: 0+60 +0 TLS +GLOBAL DEFAULT +9 le0
+31: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+32: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
- +33: 0+40 +0 TLS +GLOBAL DEFAULT +11 ld0
- +34: 0+68 +0 TLS +GLOBAL DEFAULT +11 le1
+ +33: 0+40 +0 TLS +GLOBAL DEFAULT +9 ld0
+ +34: 0+68 +0 TLS +GLOBAL DEFAULT +9 le1
+35: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
+36: 0+1000036c +0 NOTYPE +GLOBAL DEFAULT +7 _start
- +37: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
- +38: 0+48 +0 TLS +GLOBAL DEFAULT +11 ld1
+ +37: 0+50 +0 TLS +GLOBAL DEFAULT +9 ld2
+ +38: 0+48 +0 TLS +GLOBAL DEFAULT +9 ld1
+39: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+40: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+41: 0+10010620 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +42: 0+38 +0 TLS +GLOBAL DEFAULT +11 gd0
- +43: 0+58 +0 TLS +GLOBAL DEFAULT +11 ie0
+ +42: 0+38 +0 TLS +GLOBAL DEFAULT +9 gd0
+ +43: 0+58 +0 TLS +GLOBAL DEFAULT +9 ie0
diff --git a/ld/testsuite/ld-powerpc/tlsso.g b/ld/testsuite/ld-powerpc/tlsso.g
index 6fb2e4c..806a0c4 100644
--- a/ld/testsuite/ld-powerpc/tlsso.g
+++ b/ld/testsuite/ld-powerpc/tlsso.g
@@ -7,9 +7,9 @@
.*: +file format elf64-powerpc
Contents of section \.got:
- 10948 00000000 00018948 00000000 00000000 .*
- 10958 00000000 00000000 00000000 00000000 .*
- 10968 00000000 00000000 00000000 00000000 .*
- 10978 00000000 00000000 00000000 00000000 .*
- 10988 00000000 00000000 00000000 00000000 .*
- 10998 00000000 00000000 00000000 00000000 .*
+ 10850 00000000 00018850 00000000 00000000 .*
+ 10860 00000000 00000000 00000000 00000000 .*
+ 10870 00000000 00000000 00000000 00000000 .*
+ 10880 00000000 00000000 00000000 00000000 .*
+ 10890 00000000 00000000 00000000 00000000 .*
+ 108a0 00000000 00000000 00000000 00000000 .*
diff --git a/ld/testsuite/ld-powerpc/tlsso.r b/ld/testsuite/ld-powerpc/tlsso.r
index 7d63c66..2f3793e 100644
--- a/ld/testsuite/ld-powerpc/tlsso.r
+++ b/ld/testsuite/ld-powerpc/tlsso.r
@@ -9,36 +9,36 @@ There are 19 section headers.*
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.hash +HASH +0+120 0+120 0+c8 04 +A +2 +0 +8
- +\[ 2\] \.dynsym +DYNSYM +0+1e8 0+1e8 0+2e8 18 +A +3 +16 +8
- +\[ 3\] \.dynstr +STRTAB +0+4d0 0+4d0 0+53 0+ +A +0 +0 +1
- +\[ 4\] \.rela\.dyn +RELA +0+528 0+528 0+180 18 +A +2 +0 +8
- +\[ 5\] \.rela\.plt +RELA +0+6a8 0+6a8 0+18 18 +A +2 +14 +8
- +\[ 6\] \.text +PROGBITS +0+6c0 0+6c0 0+fc 0+ +AX +0 +0 +4
- +\[ 7\] \.data +PROGBITS +0+107c0 0+7c0 0+ 0+ +WA +0 +0 +1
- +\[ 8\] \.branch_lt +PROGBITS +0+107c0 0+7c0 0+ 0+ +WA +0 +0 +8
- +\[ 9\] \.tdata +PROGBITS +0+107c0 0+7c0 0+38 0+ WAT +0 +0 +8
- +\[10\] \.tbss +NOBITS +0+107f8 0+7f8 0+38 0+ WAT +0 +0 +8
- +\[11\] \.dynamic +DYNAMIC +0+107f8 0+7f8 0+150 10 +WA +3 +0 +8
- +\[12\] \.got +PROGBITS +0+10948 0+948 0+60 08 +WA +0 +0 +8
- +\[13\] \.sbss +NOBITS +0+109a8 0+9a8 0+ 0+ +W +0 +0 +1
- +\[14\] \.plt +NOBITS +0+109a8 0+9a8 0+30 18 +WA +0 +0 +8
- +\[15\] \.bss +NOBITS +0+109d8 0+9a8 0+ 0+ +WA +0 +0 +1
- +\[16\] \.shstrtab +STRTAB +0+ 0+9a8 0+82 0+ +0 +0 +1
- +\[17\] \.symtab +SYMTAB +0+ 0+ef0 0+3f0 18 +18 +27 +8
- +\[18\] \.strtab +STRTAB +0+ 0+12e0 0+86 0+ +0 +0 +1
+ +\[ 1\] \.hash +.*
+ +\[ 2\] \.dynsym +.*
+ +\[ 3\] \.dynstr +.*
+ +\[ 4\] \.rela\.dyn +.*
+ +\[ 5\] \.rela\.plt +.*
+ +\[ 6\] \.text +PROGBITS +0+5c8 0+5c8 0+fc 0+ +AX +0 +0 +4
+ +\[ 7\] \.tdata +PROGBITS +0+106c8 0+6c8 0+38 0+ WAT +0 +0 +8
+ +\[ 8\] \.tbss +NOBITS +0+10700 0+700 0+38 0+ WAT +0 +0 +8
+ +\[ 9\] \.dynamic +DYNAMIC +0+10700 0+700 0+150 10 +WA +3 +0 +8
+ +\[10\] \.data +PROGBITS +0+10850 0+850 0+ 0+ +WA +0 +0 +1
+ +\[11\] \.branch_lt +.*
+ +\[12\] \.got +PROGBITS +0+10850 0+850 0+60 08 +WA +0 +0 +8
+ +\[13\] \.sbss +.*
+ +\[14\] \.plt +.*
+ +\[15\] \.bss +.*
+ +\[16\] \.shstrtab +.*
+ +\[17\] \.symtab +.*
+ +\[18\] \.strtab +.*
#...
Elf file type is DYN \(Shared object file\)
-Entry point 0x6dc
+Entry point 0x[0-9a-f]+
There are 4 program headers.*
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
- +LOAD +0x0+ 0x0+ 0x0+ 0x0+7bc 0x0+7bc R E 0x10000
- +LOAD +0x0+7c0 0x0+107c0 0x0+107c0 0x0+1e8 0x0+218 RW +0x10000
- +DYNAMIC +0x0+7f8 0x0+107f8 0x0+107f8 0x0+150 0x0+150 RW +0x8
- +TLS +0x0+7c0 0x0+107c0 0x0+107c0 0x0+38 0x0+70 R +0x8
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+6c4 0x0+6c4 R E 0x10000
+ +LOAD +0x0+6c8 0x0+106c8 0x0+106c8 0x0+1e8 0x0+218 RW +0x10000
+ +DYNAMIC +0x0+700 0x0+10700 0x0+10700 0x0+150 0x0+150 RW +0x8
+ +TLS +0x0+6c8 0x0+106c8 0x0+106c8 0x0+38 0x0+70 R +0x8
Section to Segment mapping:
+Segment Sections\.\.\.
@@ -49,102 +49,93 @@ Program Headers:
Relocation section '\.rela\.dyn' at offset .* contains 16 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+72a +0+1200000045 R_PPC64_TPREL16 +0+60 le0 \+ 0
-0+72e +0+1500000048 R_PPC64_TPREL16_HA +0+68 le1 \+ 0
-0+732 +0+1500000046 R_PPC64_TPREL16_LO +0+68 le1 \+ 0
-0+76a +0+90000005f R_PPC64_TPREL16_DS +0+107c0 \.tdata \+ 28
-0+76e +0+900000048 R_PPC64_TPREL16_HA +0+107c0 \.tdata \+ 30
-0+772 +0+900000046 R_PPC64_TPREL16_LO +0+107c0 \.tdata \+ 30
-0+10950 +0+44 R_PPC64_DTPMOD64 +0+
-0+10960 +0+44 R_PPC64_DTPMOD64 +0+
-0+10968 +0+4e R_PPC64_DTPREL64 +0+
-0+10970 +0+4e R_PPC64_DTPREL64 +0+18
-0+10978 +0+1100000044 R_PPC64_DTPMOD64 +0+ gd \+ 0
-0+10980 +0+110000004e R_PPC64_DTPREL64 +0+ gd \+ 0
-0+10988 +0+180000004e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
-0+10990 +0+1d00000044 R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
-0+10998 +0+1d0000004e R_PPC64_DTPREL64 +0+38 gd0 \+ 0
-0+109a0 +0+1e00000049 R_PPC64_TPREL64 +0+58 ie0 \+ 0
+0+632 +0+90+45 R_PPC64_TPREL16 +0+60 le0 \+ 0
+0+636 +0+c0+48 R_PPC64_TPREL16_HA +0+68 le1 \+ 0
+0+63a +0+c0+46 R_PPC64_TPREL16_LO +0+68 le1 \+ 0
+0+672 +0+20+5f R_PPC64_TPREL16_DS +0+106c8 \.tdata \+ 28
+0+676 +0+20+48 R_PPC64_TPREL16_HA +0+106c8 \.tdata \+ 30
+0+67a +0+20+46 R_PPC64_TPREL16_LO +0+106c8 \.tdata \+ 30
+0+10858 +0+44 R_PPC64_DTPMOD64 +0+
+0+10868 +0+44 R_PPC64_DTPMOD64 +0+
+0+10870 +0+4e R_PPC64_DTPREL64 +0+
+0+10878 +0+4e R_PPC64_DTPREL64 +0+18
+0+10880 +0+80+44 R_PPC64_DTPMOD64 +0+ gd \+ 0
+0+10888 +0+80+4e R_PPC64_DTPREL64 +0+ gd \+ 0
+0+10890 +0+f0+4e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
+0+10898 +0+140+44 R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
+0+108a0 +0+140+4e R_PPC64_DTPREL64 +0+38 gd0 \+ 0
+0+108a8 +0+150+49 R_PPC64_TPREL64 +0+58 ie0 \+ 0
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+109c0 +0+1300000015 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
+0+108c8 +0+a0+15 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
-Symbol table '\.dynsym' contains 31 entries:
+Symbol table '\.dynsym' contains 22 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+120 +0 SECTION LOCAL +DEFAULT +1
- +2: 0+1e8 +0 SECTION LOCAL +DEFAULT +2
- +3: 0+4d0 +0 SECTION LOCAL +DEFAULT +3
- +4: 0+528 +0 SECTION LOCAL +DEFAULT +4
- +5: 0+6a8 +0 SECTION LOCAL +DEFAULT +5
- +6: 0+6c0 +0 SECTION LOCAL +DEFAULT +6
- +7: 0+107c0 +0 SECTION LOCAL +DEFAULT +7
- +8: 0+107c0 +0 SECTION LOCAL +DEFAULT +8
- +9: 0+107c0 +0 SECTION LOCAL +DEFAULT +9
- +10: 0+107f8 +0 SECTION LOCAL +DEFAULT +10
- +11: 0+107f8 +0 SECTION LOCAL +DEFAULT +11
- +12: 0+10948 +0 SECTION LOCAL +DEFAULT +12
- +13: 0+109a8 +0 SECTION LOCAL +DEFAULT +13
- +14: 0+109a8 +0 SECTION LOCAL +DEFAULT +14
- +15: 0+109d8 +0 SECTION LOCAL +DEFAULT +15
- +16: 0+107f8 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +17: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +18: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
- +19: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
- +20: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
- +21: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
- +22: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +23: 0+6dc +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +24: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
- +25: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
- +26: 0+109a8 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +27: 0+109a8 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +28: 0+109d8 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +29: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
- +30: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+ +[0-9]+: 0+5c8 +0 SECTION LOCAL +DEFAULT +6
+ +[0-9]+: 0+106c8 +0 SECTION LOCAL +DEFAULT +7
+ +[0-9]+: 0+10700 +0 SECTION LOCAL +DEFAULT +8
+ +[0-9]+: 0+10850 +0 SECTION LOCAL +DEFAULT +10
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15
+ +[0-9]+: 0+10700 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+40 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+50 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+48 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+38 +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+58 +0 TLS +GLOBAL DEFAULT +8 ie0
Symbol table '\.symtab' contains 42 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+120 +0 SECTION LOCAL +DEFAULT +1
- +2: 0+1e8 +0 SECTION LOCAL +DEFAULT +2
- +3: 0+4d0 +0 SECTION LOCAL +DEFAULT +3
- +4: 0+528 +0 SECTION LOCAL +DEFAULT +4
- +5: 0+6a8 +0 SECTION LOCAL +DEFAULT +5
- +6: 0+6c0 +0 SECTION LOCAL +DEFAULT +6
- +7: 0+107c0 +0 SECTION LOCAL +DEFAULT +7
- +8: 0+107c0 +0 SECTION LOCAL +DEFAULT +8
- +9: 0+107c0 +0 SECTION LOCAL +DEFAULT +9
- +10: 0+107f8 +0 SECTION LOCAL +DEFAULT +10
- +11: 0+107f8 +0 SECTION LOCAL +DEFAULT +11
- +12: 0+10948 +0 SECTION LOCAL +DEFAULT +12
- +13: 0+109a8 +0 SECTION LOCAL +DEFAULT +13
- +14: 0+109a8 +0 SECTION LOCAL +DEFAULT +14
- +15: 0+109d8 +0 SECTION LOCAL +DEFAULT +15
- +16: 0+ +0 SECTION LOCAL +DEFAULT +16
- +17: 0+ +0 SECTION LOCAL +DEFAULT +17
- +18: 0+ +0 SECTION LOCAL +DEFAULT +18
- +19: 0+ +0 TLS +LOCAL +DEFAULT +9 gd4
- +20: 0+8 +0 TLS +LOCAL +DEFAULT +9 ld4
- +21: 0+10 +0 TLS +LOCAL +DEFAULT +9 ld5
- +22: 0+18 +0 TLS +LOCAL +DEFAULT +9 ld6
- +23: 0+20 +0 TLS +LOCAL +DEFAULT +9 ie4
- +24: 0+28 +0 TLS +LOCAL +DEFAULT +9 le4
- +25: 0+30 +0 TLS +LOCAL +DEFAULT +9 le5
- +26: 0+6c0 +0 NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
- +27: 0+107f8 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +28: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +29: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
- +30: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
- +31: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
- +32: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
- +33: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +34: 0+6dc +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +35: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
- +36: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
- +37: 0+109a8 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +38: 0+109a8 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +39: 0+109d8 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +40: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
- +41: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+ +[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+5c8 +0 SECTION LOCAL +DEFAULT +6
+ +[0-9]+: 0+106c8 +0 SECTION LOCAL +DEFAULT +7
+ +[0-9]+: 0+10700 +0 SECTION LOCAL +DEFAULT +8
+ +[0-9]+: 0+10700 +0 SECTION LOCAL +DEFAULT +9
+ +[0-9]+: 0+10850 +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
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +16
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +17
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +18
+ +[0-9]+: 0+ +0 TLS +LOCAL +DEFAULT +7 gd4
+ +[0-9]+: 0+8 +0 TLS +LOCAL +DEFAULT +7 ld4
+ +[0-9]+: 0+10 +0 TLS +LOCAL +DEFAULT +7 ld5
+ +[0-9]+: 0+18 +0 TLS +LOCAL +DEFAULT +7 ld6
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +7 ie4
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +7 le4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +7 le5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
+ +[0-9]+: 0+10700 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+40 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+50 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+48 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+38 +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+58 +0 TLS +GLOBAL DEFAULT +8 ie0
diff --git a/ld/testsuite/ld-powerpc/tlsso32.d b/ld/testsuite/ld-powerpc/tlsso32.d
index 5e321a4..5e23c28 100644
--- a/ld/testsuite/ld-powerpc/tlsso32.d
+++ b/ld/testsuite/ld-powerpc/tlsso32.d
@@ -8,38 +8,38 @@
Disassembly of section \.text:
-0+538 <_start>:
- 538: 38 7f 00 1c addi r3,r31,28
- 53c: 48 00 00 01 bl 53c .*
- 540: 38 7f 00 0c addi r3,r31,12
- 544: 48 00 00 01 bl 544 .*
- 548: 38 7f 00 24 addi r3,r31,36
- 54c: 48 01 01 95 bl 106e0 .*
- 550: 38 7f 00 0c addi r3,r31,12
- 554: 48 01 01 8d bl 106e0 .*
- 558: 39 23 80 20 addi r9,r3,-32736
- 55c: 3d 23 00 00 addis r9,r3,0
- 560: 81 49 80 24 lwz r10,-32732\(r9\)
- 564: 81 3f 00 2c lwz r9,44\(r31\)
- 568: 7d 49 12 2e lhzx r10,r9,r2
- 56c: 89 42 00 00 lbz r10,0\(r2\)
- 570: 3d 22 00 00 addis r9,r2,0
- 574: 99 49 00 00 stb r10,0\(r9\)
- 578: 38 7e 00 14 addi r3,r30,20
- 57c: 48 00 00 01 bl 57c .*
- 580: 38 7e 00 0c addi r3,r30,12
- 584: 48 00 00 01 bl 584 .*
- 588: 91 43 80 04 stw r10,-32764\(r3\)
- 58c: 3d 23 00 00 addis r9,r3,0
- 590: 91 49 80 08 stw r10,-32760\(r9\)
- 594: 81 3e 00 2c lwz r9,44\(r30\)
- 598: 7d 49 13 2e sthx r10,r9,r2
- 59c: a1 42 00 00 lhz r10,0\(r2\)
- 5a0: 3d 22 00 00 addis r9,r2,0
- 5a4: a9 49 00 00 lha r10,0\(r9\)
+0+498 <_start>:
+ 498: 38 7f 00 1c addi r3,r31,28
+ 49c: 48 00 00 01 bl 49c .*
+ 4a0: 38 7f 00 0c addi r3,r31,12
+ 4a4: 48 00 00 01 bl 4a4 .*
+ 4a8: 38 7f 00 24 addi r3,r31,36
+ 4ac: 48 01 01 95 bl 10640 .*
+ 4b0: 38 7f 00 0c addi r3,r31,12
+ 4b4: 48 01 01 8d bl 10640 .*
+ 4b8: 39 23 80 20 addi r9,r3,-32736
+ 4bc: 3d 23 00 00 addis r9,r3,0
+ 4c0: 81 49 80 24 lwz r10,-32732\(r9\)
+ 4c4: 81 3f 00 2c lwz r9,44\(r31\)
+ 4c8: 7d 49 12 2e lhzx r10,r9,r2
+ 4cc: 89 42 00 00 lbz r10,0\(r2\)
+ 4d0: 3d 22 00 00 addis r9,r2,0
+ 4d4: 99 49 00 00 stb r10,0\(r9\)
+ 4d8: 38 7e 00 14 addi r3,r30,20
+ 4dc: 48 00 00 01 bl 4dc .*
+ 4e0: 38 7e 00 0c addi r3,r30,12
+ 4e4: 48 00 00 01 bl 4e4 .*
+ 4e8: 91 43 80 04 stw r10,-32764\(r3\)
+ 4ec: 3d 23 00 00 addis r9,r3,0
+ 4f0: 91 49 80 08 stw r10,-32760\(r9\)
+ 4f4: 81 3e 00 2c lwz r9,44\(r30\)
+ 4f8: 7d 49 13 2e sthx r10,r9,r2
+ 4fc: a1 42 00 00 lhz r10,0\(r2\)
+ 500: 3d 22 00 00 addis r9,r2,0
+ 504: a9 49 00 00 lha r10,0\(r9\)
Disassembly of section \.got:
-00010664 <\.got>:
- 10664: 4e 80 00 21 blrl
- 10668: 00 01 05 c4 \.long 0x105c4
+000105c4 <\.got>:
+ 105c4: 4e 80 00 21 blrl
+ 105c8: 00 01 05 24 \.long 0x10524
\.\.\.
diff --git a/ld/testsuite/ld-powerpc/tlsso32.g b/ld/testsuite/ld-powerpc/tlsso32.g
index 13c991f..7e1a294 100644
--- a/ld/testsuite/ld-powerpc/tlsso32.g
+++ b/ld/testsuite/ld-powerpc/tlsso32.g
@@ -7,7 +7,7 @@
.*: +file format elf32-powerpc
Contents of section \.got:
- 10664 4e800021 000105c4 00000000 00000000 .*
- 10674 00000000 00000000 00000000 00000000 .*
- 10684 00000000 00000000 00000000 00000000 .*
- 10694 00000000 .*
+ 105c4 4e800021 00010524 00000000 00000000 .*
+ 105d4 00000000 00000000 00000000 00000000 .*
+ 105e4 00000000 00000000 00000000 00000000 .*
+ 105f4 00000000 .*
diff --git a/ld/testsuite/ld-powerpc/tlsso32.r b/ld/testsuite/ld-powerpc/tlsso32.r
index f7c4694..8781ab3 100644
--- a/ld/testsuite/ld-powerpc/tlsso32.r
+++ b/ld/testsuite/ld-powerpc/tlsso32.r
@@ -9,37 +9,37 @@ There are 20 section headers.*
Section Headers:
+\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.hash +HASH +0+b4 0+b4 0+dc 04 +A +2 +0 +4
- +\[ 2\] \.dynsym +DYNSYM +0+190 0+190 0+240 10 +A +3 +17 +4
- +\[ 3\] \.dynstr +STRTAB +0+3d0 0+3d0 0+81 0+ +A +0 +0 +1
- +\[ 4\] \.rela\.dyn +RELA +0+454 0+454 0+d8 0c +A +2 +0 +4
- +\[ 5\] \.rela\.plt +RELA +0+52c 0+52c 0+c 0c +A +2 +15 +4
- +\[ 6\] \.text +PROGBITS +0+538 0+538 0+70 0+ +AX +0 +0 +1
- +\[ 7\] \.data +PROGBITS +0+105a8 0+5a8 0+ 0+ +WA +0 +0 +1
- +\[ 8\] \.tdata +PROGBITS +0+105a8 0+5a8 0+1c 0+ WAT +0 +0 +4
- +\[ 9\] \.tbss +NOBITS +0+105c4 0+5c4 0+1c 0+ WAT +0 +0 +4
- +\[10\] \.dynamic +DYNAMIC +0+105c4 0+5c4 0+a0 08 +WA +3 +0 +4
- +\[11\] \.got +PROGBITS +0+10664 0+664 0+34 04 WAX +0 +0 +4
- +\[12\] \.sdata2 +PROGBITS +0+10698 0+698 0+ 0+ +A +0 +0 +4
- +\[13\] \.sdata +PROGBITS +0+10698 0+698 0+ 0+ +WA +0 +0 +4
- +\[14\] \.sbss +NOBITS +0+10698 0+698 0+ 0+ +WA +0 +0 +1
- +\[15\] \.plt +NOBITS +0+10698 0+698 0+54 0+ WAX +0 +0 +4
- +\[16\] \.bss +NOBITS +0+106ec 0+698 0+ 0+ +WA +0 +0 +1
- +\[17\] \.shstrtab +STRTAB +0+ 0+698 0+86 0+ +0 +0 +1
- +\[18\] \.symtab +SYMTAB +0+ 0+a40 0+2e0 10 +19 +27 +4
- +\[19\] \.strtab +STRTAB +0+ 0+d20 0+a9 0+ +0 +0 +1
+ +\[ 1\] \.hash +.*
+ +\[ 2\] \.dynsym +.*
+ +\[ 3\] \.dynstr +.*
+ +\[ 4\] \.rela\.dyn +.*
+ +\[ 5\] \.rela\.plt +.*
+ +\[ 6\] \.text +PROGBITS +0+498 0+498 0+70 0+ +AX +0 +0 +1
+ +\[ 7\] \.tdata +PROGBITS +0+10508 0+508 0+1c 0+ WAT +0 +0 +4
+ +\[ 8\] \.tbss +NOBITS +0+10524 0+524 0+1c 0+ WAT +0 +0 +4
+ +\[ 9\] \.dynamic +DYNAMIC +0+10524 0+524 0+a0 08 +WA +3 +0 +4
+ +\[10\] \.data +PROGBITS +0+105c4 0+5c4 0+ 0+ +WA +0 +0 +1
+ +\[11\] \.got +PROGBITS +0+105c4 0+5c4 0+34 04 WAX +0 +0 +4
+ +\[12\] \.sdata2 +.*
+ +\[13\] \.sdata +.*
+ +\[14\] \.sbss +.*
+ +\[15\] \.plt +.*
+ +\[16\] \.bss +.*
+ +\[17\] \.shstrtab +.*
+ +\[18\] \.symtab +.*
+ +\[19\] \.strtab +.*
#...
Elf file type is DYN \(Shared object file\)
-Entry point 0x538
+Entry point 0x[0-9a-f]+
There are 4 program headers.*
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
- +LOAD +0x0+ 0x0+ 0x0+ 0x0+5a8 0x0+5a8 R E 0x10000
- +LOAD +0x0+5a8 0x0+105a8 0x0+105a8 0x0+f0 0x0+144 RWE 0x10000
- +DYNAMIC +0x0+5c4 0x0+105c4 0x0+105c4 0x0+a0 0x0+a0 RW +0x4
- +TLS +0x0+5a8 0x0+105a8 0x0+105a8 0x0+1c 0x0+38 R +0x4
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+508 0x0+508 R E 0x10000
+ +LOAD +0x0+508 0x0+10508 0x0+10508 0x0+f0 0x0+144 RWE 0x10000
+ +DYNAMIC +0x0+524 0x0+10524 0x0+10524 0x0+a0 0x0+a0 RW +0x4
+ +TLS +0x0+508 0x0+10508 0x0+10508 0x0+1c 0x0+38 R +0x4
Section to Segment mapping:
+Segment Sections\.\.\.
@@ -48,115 +48,107 @@ Program Headers:
+02 +\.tbss \.dynamic
+03 +\.tdata \.tbss
-Relocation section '\.rela\.dyn' at offset 0x454 contains 18 entries:
+Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
-0+53c +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
-0+544 +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
-0+57c +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
-0+584 +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
-0+56e +0+1345 R_PPC_TPREL16 +0+30 +le0 \+ 0
-0+572 +0+1648 R_PPC_TPREL16_HA +0+34 +le1 \+ 0
-0+576 +0+1646 R_PPC_TPREL16_LO +0+34 +le1 \+ 0
-0+59e +0+845 R_PPC_TPREL16 +0+105a8 +\.tdata \+ 105bc
-0+5a2 +0+848 R_PPC_TPREL16_HA +0+105a8 +\.tdata \+ 105c0
-0+5a6 +0+846 R_PPC_TPREL16_LO +0+105a8 +\.tdata \+ 105c0
-0+10674 +0+44 R_PPC_DTPMOD32 +0+
-0+1067c +0+44 R_PPC_DTPMOD32 +0+
-0+10680 +0+4e R_PPC_DTPREL32 +0+
-0+10684 +0+1244 R_PPC_DTPMOD32 +0+ +gd \+ 0
-0+10688 +0+124e R_PPC_DTPREL32 +0+ +gd \+ 0
-0+1068c +0+2144 R_PPC_DTPMOD32 +0+1c +gd0 \+ 0
-0+10690 +0+214e R_PPC_DTPREL32 +0+1c +gd0 \+ 0
-0+10694 +0+2249 R_PPC_TPREL32 +0+2c +ie0 \+ 0
+0+49c +0+c0a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
+0+4a4 +0+c0a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
+0+4dc +0+c0a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
+0+4e4 +0+c0a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
+0+4ce +0+b45 R_PPC_TPREL16 +0+30 +le0 \+ 0
+0+4d2 +0+e48 R_PPC_TPREL16_HA +0+34 +le1 \+ 0
+0+4d6 +0+e46 R_PPC_TPREL16_LO +0+34 +le1 \+ 0
+0+4fe +0+245 R_PPC_TPREL16 +0+10508 +\.tdata \+ 1051c
+0+502 +0+248 R_PPC_TPREL16_HA +0+10508 +\.tdata \+ 10520
+0+506 +0+246 R_PPC_TPREL16_LO +0+10508 +\.tdata \+ 10520
+0+105d4 +0+44 R_PPC_DTPMOD32 +0+
+0+105dc +0+44 R_PPC_DTPMOD32 +0+
+0+105e0 +0+4e R_PPC_DTPREL32 +0+
+0+105e4 +0+a44 R_PPC_DTPMOD32 +0+ +gd \+ 0
+0+105e8 +0+a4e R_PPC_DTPREL32 +0+ +gd \+ 0
+0+105ec +0+1944 R_PPC_DTPMOD32 +0+1c +gd0 \+ 0
+0+105f0 +0+194e R_PPC_DTPREL32 +0+1c +gd0 \+ 0
+0+105f4 +0+1a49 R_PPC_TPREL32 +0+2c +ie0 \+ 0
-Relocation section '\.rela\.plt' at offset 0x52c contains 1 entries:
+Relocation section '\.rela\.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
-0+106e0 +0+1415 R_PPC_JMP_SLOT +0+ +__tls_get_addr \+ 0
+0+10640 +0+c15 R_PPC_JMP_SLOT +0+ +__tls_get_addr \+ 0
-Symbol table '\.dynsym' contains 36 entries:
+Symbol table '\.dynsym' contains 28 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+b4 +0 SECTION LOCAL +DEFAULT +1
- +2: 0+190 +0 SECTION LOCAL +DEFAULT +2
- +3: 0+3d0 +0 SECTION LOCAL +DEFAULT +3
- +4: 0+454 +0 SECTION LOCAL +DEFAULT +4
- +5: 0+52c +0 SECTION LOCAL +DEFAULT +5
- +6: 0+538 +0 SECTION LOCAL +DEFAULT +6
- +7: 0+105a8 +0 SECTION LOCAL +DEFAULT +7
- +8: 0+105a8 +0 SECTION LOCAL +DEFAULT +8
- +9: 0+105c4 +0 SECTION LOCAL +DEFAULT +9
- +10: 0+105c4 +0 SECTION LOCAL +DEFAULT +10
- +11: 0+10664 +0 SECTION LOCAL +DEFAULT +11
- +12: 0+10698 +0 SECTION LOCAL +DEFAULT +12
- +13: 0+10698 +0 SECTION LOCAL +DEFAULT +13
- +14: 0+10698 +0 SECTION LOCAL +DEFAULT +14
- +15: 0+10698 +0 SECTION LOCAL +DEFAULT +15
- +16: 0+106ec +0 SECTION LOCAL +DEFAULT +16
- +17: 0+105c4 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +18: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +19: 0+30 +0 TLS +GLOBAL DEFAULT +9 le0
- +20: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
- +21: 0+20 +0 TLS +GLOBAL DEFAULT +9 ld0
- +22: 0+34 +0 TLS +GLOBAL DEFAULT +9 le1
- +23: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +24: 0+538 +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +25: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS __end
- +26: 0+18698 +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
- +27: 0+28 +0 TLS +GLOBAL DEFAULT +9 ld2
- +28: 0+24 +0 TLS +GLOBAL DEFAULT +9 ld1
- +29: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +30: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +31: 0+10668 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +32: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +33: 0+1c +0 TLS +GLOBAL DEFAULT +9 gd0
- +34: 0+2c +0 TLS +GLOBAL DEFAULT +9 ie0
- +35: 0+18698 +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+ +[0-9]+: 0+498 +0 SECTION LOCAL +DEFAULT +6
+ +[0-9]+: 0+10508 +0 SECTION LOCAL +DEFAULT +7
+ +[0-9]+: 0+10524 +0 SECTION LOCAL +DEFAULT +8
+ +[0-9]+: 0+105c4 +0 SECTION LOCAL +DEFAULT +10
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +12
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +13
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +14
+ +[0-9]+: 0+1064c +0 SECTION LOCAL +DEFAULT +16
+ +[0-9]+: 0+10524 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+30 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+20 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+34 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
+ +[0-9]+: 0+28 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+24 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+105c8 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+2c +0 TLS +GLOBAL DEFAULT +8 ie0
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
Symbol table '\.symtab' contains 46 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+b4 +0 SECTION LOCAL +DEFAULT +1
- +2: 0+190 +0 SECTION LOCAL +DEFAULT +2
- +3: 0+3d0 +0 SECTION LOCAL +DEFAULT +3
- +4: 0+454 +0 SECTION LOCAL +DEFAULT +4
- +5: 0+52c +0 SECTION LOCAL +DEFAULT +5
- +6: 0+538 +0 SECTION LOCAL +DEFAULT +6
- +7: 0+105a8 +0 SECTION LOCAL +DEFAULT +7
- +8: 0+105a8 +0 SECTION LOCAL +DEFAULT +8
- +9: 0+105c4 +0 SECTION LOCAL +DEFAULT +9
- +10: 0+105c4 +0 SECTION LOCAL +DEFAULT +10
- +11: 0+10664 +0 SECTION LOCAL +DEFAULT +11
- +12: 0+10698 +0 SECTION LOCAL +DEFAULT +12
- +13: 0+10698 +0 SECTION LOCAL +DEFAULT +13
- +14: 0+10698 +0 SECTION LOCAL +DEFAULT +14
- +15: 0+10698 +0 SECTION LOCAL +DEFAULT +15
- +16: 0+106ec +0 SECTION LOCAL +DEFAULT +16
- +17: 0+ +0 SECTION LOCAL +DEFAULT +17
- +18: 0+ +0 SECTION LOCAL +DEFAULT +18
- +19: 0+ +0 SECTION LOCAL +DEFAULT +19
- +20: 0+ +0 TLS +LOCAL +DEFAULT +8 gd4
- +21: 0+4 +0 TLS +LOCAL +DEFAULT +8 ld4
- +22: 0+8 +0 TLS +LOCAL +DEFAULT +8 ld5
- +23: 0+c +0 TLS +LOCAL +DEFAULT +8 ld6
- +24: 0+10 +0 TLS +LOCAL +DEFAULT +8 ie4
- +25: 0+14 +0 TLS +LOCAL +DEFAULT +8 le4
- +26: 0+18 +0 TLS +LOCAL +DEFAULT +8 le5
- +27: 0+105c4 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +28: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +29: 0+30 +0 TLS +GLOBAL DEFAULT +9 le0
- +30: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
- +31: 0+20 +0 TLS +GLOBAL DEFAULT +9 ld0
- +32: 0+34 +0 TLS +GLOBAL DEFAULT +9 le1
- +33: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +34: 0+538 +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +35: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS __end
- +36: 0+18698 +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
- +37: 0+28 +0 TLS +GLOBAL DEFAULT +9 ld2
- +38: 0+24 +0 TLS +GLOBAL DEFAULT +9 ld1
- +39: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +40: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +41: 0+10668 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +42: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +43: 0+1c +0 TLS +GLOBAL DEFAULT +9 gd0
- +44: 0+2c +0 TLS +GLOBAL DEFAULT +9 ie0
- +45: 0+18698 +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
+ +[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+498 +0 SECTION LOCAL +DEFAULT +6
+ +[0-9]+: 0+10508 +0 SECTION LOCAL +DEFAULT +7
+ +[0-9]+: 0+10524 +0 SECTION LOCAL +DEFAULT +8
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9
+ +[0-9]+: 0+105c4 +0 SECTION LOCAL +DEFAULT +10
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +12
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +13
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +14
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15
+ +[0-9]+: 0+1064c +0 SECTION LOCAL +DEFAULT +16
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +17
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +18
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +19
+ +[0-9]+: 0+ +0 TLS +LOCAL +DEFAULT +7 gd4
+ +[0-9]+: 0+4 +0 TLS +LOCAL +DEFAULT +7 ld4
+ +[0-9]+: 0+8 +0 TLS +LOCAL +DEFAULT +7 ld5
+ +[0-9]+: 0+c +0 TLS +LOCAL +DEFAULT +7 ld6
+ +[0-9]+: 0+10 +0 TLS +LOCAL +DEFAULT +7 ie4
+ +[0-9]+: 0+14 +0 TLS +LOCAL +DEFAULT +7 le4
+ +[0-9]+: 0+18 +0 TLS +LOCAL +DEFAULT +7 le5
+ +[0-9]+: 0+10524 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+30 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+20 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+34 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
+ +[0-9]+: 0+28 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+24 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+105c8 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+2c +0 TLS +GLOBAL DEFAULT +8 ie0
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
diff --git a/ld/testsuite/ld-powerpc/tlsso32.t b/ld/testsuite/ld-powerpc/tlsso32.t
index 1481864..a1594db 100644
--- a/ld/testsuite/ld-powerpc/tlsso32.t
+++ b/ld/testsuite/ld-powerpc/tlsso32.t
@@ -7,5 +7,5 @@
.*: +file format elf32-powerpc
Contents of section \.tdata:
- 105a8 12345678 23456789 3456789a 456789ab .*
- 105b8 56789abc 6789abcd 789abcde .*
+ 10508 12345678 23456789 3456789a 456789ab .*
+ 10518 56789abc 6789abcd 789abcde .*
diff --git a/ld/testsuite/ld-powerpc/tlstocso.g b/ld/testsuite/ld-powerpc/tlstocso.g
index ee47e11..e0d51ac 100644
--- a/ld/testsuite/ld-powerpc/tlstocso.g
+++ b/ld/testsuite/ld-powerpc/tlstocso.g
@@ -7,9 +7,9 @@
.*: +file format elf64-powerpc
Contents of section \.got:
- 10890 00000000 00018890 00000000 00000000 .*
- 108a0 00000000 00000000 00000000 00000000 .*
- 108b0 00000000 00000000 00000000 00000000 .*
- 108c0 00000000 00000000 00000000 00000000 .*
- 108d0 00000000 00000000 00000000 00000000 .*
- 108e0 00000000 00000000 .*
+ 10798 00000000 00018798 00000000 00000000 .*
+ 107a8 00000000 00000000 00000000 00000000 .*
+ 107b8 00000000 00000000 00000000 00000000 .*
+ 107c8 00000000 00000000 00000000 00000000 .*
+ 107d8 00000000 00000000 00000000 00000000 .*
+ 107e8 00000000 00000000 .*
diff --git a/ld/testsuite/ld-powerpc/tlstocso.r b/ld/testsuite/ld-powerpc/tlstocso.r
index 273a800..f842320 100644
--- a/ld/testsuite/ld-powerpc/tlstocso.r
+++ b/ld/testsuite/ld-powerpc/tlstocso.r
@@ -9,36 +9,36 @@ There are 19 section headers.*
Section Headers:
+\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.hash +HASH +0+120 0+120 0+c8 04 +A +2 +0 +8
- +\[ 2\] \.dynsym +DYNSYM +0+1e8 0+1e8 0+2e8 18 +A +3 +16 +8
- +\[ 3\] \.dynstr +STRTAB +0+4d0 0+4d0 0+53 0+ +A +0 +0 +1
- +\[ 4\] \.rela\.dyn +RELA +0+528 0+528 0+108 18 +A +2 +0 +8
- +\[ 5\] \.rela\.plt +RELA +0+630 0+630 0+18 18 +A +2 +14 +8
- +\[ 6\] \.text +PROGBITS +0+648 0+648 0+bc 0+ +AX +0 +0 +4
- +\[ 7\] \.data +PROGBITS +0+10708 0+708 0+ 0+ +WA +0 +0 +1
- +\[ 8\] \.branch_lt +PROGBITS +0+10708 0+708 0+ 0+ +WA +0 +0 +8
- +\[ 9\] \.tdata +PROGBITS +0+10708 0+708 0+38 0+ WAT +0 +0 +8
- +\[10\] \.tbss +NOBITS +0+10740 0+740 0+38 0+ WAT +0 +0 +8
- +\[11\] \.dynamic +DYNAMIC +0+10740 0+740 0+150 10 +WA +3 +0 +8
- +\[12\] \.got +PROGBITS +0+10890 0+890 0+58 08 +WA +0 +0 +8
- +\[13\] \.sbss +NOBITS +0+108e8 0+8e8 0+ 0+ +W +0 +0 +1
- +\[14\] \.plt +NOBITS +0+108e8 0+8e8 0+30 18 +WA +0 +0 +8
- +\[15\] \.bss +NOBITS +0+10918 0+8e8 0+ 0+ +WA +0 +0 +1
- +\[16\] \.shstrtab +STRTAB +0+ 0+8e8 0+82 0+ +0 +0 +1
- +\[17\] \.symtab +SYMTAB +0+ 0+e30 0+408 18 +18 +28 +8
- +\[18\] \.strtab +STRTAB +0+ 0+1238 0+8c 0+ +0 +0 +1
+ +\[ 1\] \.hash +.*
+ +\[ 2\] \.dynsym +.*
+ +\[ 3\] \.dynstr +.*
+ +\[ 4\] \.rela\.dyn +.*
+ +\[ 5\] \.rela\.plt +.*
+ +\[ 6\] \.text +PROGBITS +0+550 0+550 0+bc 0+ +AX +0 +0 +4
+ +\[ 7\] \.tdata +PROGBITS +0+10610 0+610 0+38 0+ WAT +0 +0 +8
+ +\[ 8\] \.tbss +NOBITS +0+10648 0+648 0+38 0+ WAT +0 +0 +8
+ +\[ 9\] \.dynamic +DYNAMIC +0+10648 0+648 0+150 10 +WA +3 +0 +8
+ +\[10\] \.data +PROGBITS +0+10798 0+798 0+ 0+ +WA +0 +0 +1
+ +\[11\] \.branch_lt +.*
+ +\[12\] \.got +PROGBITS +0+10798 0+798 0+58 08 +WA +0 +0 +8
+ +\[13\] \.sbss +.*
+ +\[14\] \.plt +.*
+ +\[15\] \.bss +.*
+ +\[16\] \.shstrtab +.*
+ +\[17\] \.symtab +.*
+ +\[18\] \.strtab +.*
#...
Elf file type is DYN \(Shared object file\)
-Entry point 0x664
+Entry point 0x[0-9a-f]+
There are 4 program headers.*
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
- +LOAD +0x0+ 0x0+ 0x0+ 0x0+704 0x0+704 R E 0x10000
- +LOAD +0x0+708 0x0+10708 0x0+10708 0x0+1e0 0x0+210 RW +0x10000
- +DYNAMIC +0x0+740 0x0+10740 0x0+10740 0x0+150 0x0+150 RW +0x8
- +TLS +0x0+708 0x0+10708 0x0+10708 0x0+38 0x0+70 R +0x8
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+60c 0x0+60c R E 0x10000
+ +LOAD +0x0+610 0x0+10610 0x0+10610 0x0+1e0 0x0+210 RW +0x10000
+ +DYNAMIC +0x0+648 0x0+10648 0x0+10648 0x0+150 0x0+150 RW +0x8
+ +TLS +0x0+610 0x0+10610 0x0+10610 0x0+38 0x0+70 R +0x8
Section to Segment mapping:
+Segment Sections\.\.\.
@@ -49,98 +49,89 @@ Program Headers:
Relocation section '\.rela\.dyn' at offset .* contains 11 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+6b2 +0+1200000045 R_PPC64_TPREL16 +0+60 le0 \+ 0
-0+6b6 +0+1500000048 R_PPC64_TPREL16_HA +0+68 le1 \+ 0
-0+6ba +0+1500000046 R_PPC64_TPREL16_LO +0+68 le1 \+ 0
-0+10898 +0+1100000044 R_PPC64_DTPMOD64 +0+ gd \+ 0
-0+108a0 +0+110000004e R_PPC64_DTPREL64 +0+ gd \+ 0
-0+108a8 +0+1600000044 R_PPC64_DTPMOD64 +0+ ld \+ 0
-0+108b8 +0+1d00000044 R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
-0+108c0 +0+1d0000004e R_PPC64_DTPREL64 +0+38 gd0 \+ 0
-0+108c8 +0+1400000044 R_PPC64_DTPMOD64 +0+40 ld0 \+ 0
-0+108d8 +0+180000004e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
-0+108e0 +0+1e00000049 R_PPC64_TPREL64 +0+58 ie0 \+ 0
+0+5ba +0+90+45 R_PPC64_TPREL16 +0+60 le0 \+ 0
+0+5be +0+c0+48 R_PPC64_TPREL16_HA +0+68 le1 \+ 0
+0+5c2 +0+c0+46 R_PPC64_TPREL16_LO +0+68 le1 \+ 0
+0+107a0 +0+80+44 R_PPC64_DTPMOD64 +0+ gd \+ 0
+0+107a8 +0+80+4e R_PPC64_DTPREL64 +0+ gd \+ 0
+0+107b0 +0+d0+44 R_PPC64_DTPMOD64 +0+ ld \+ 0
+0+107c0 +0+140+44 R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
+0+107c8 +0+140+4e R_PPC64_DTPREL64 +0+38 gd0 \+ 0
+0+107d0 +0+b0+44 R_PPC64_DTPMOD64 +0+40 ld0 \+ 0
+0+107e0 +0+f0+4e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
+0+107e8 +0+150+49 R_PPC64_TPREL64 +0+58 ie0 \+ 0
Relocation section '\.rela\.plt' at offset .* contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+10900 +0+1300000015 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
+0+10808 +0+a0+15 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
-Symbol table '\.dynsym' contains 31 entries:
+Symbol table '\.dynsym' contains 22 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+120 +0 SECTION LOCAL +DEFAULT +1
- +2: 0+1e8 +0 SECTION LOCAL +DEFAULT +2
- +3: 0+4d0 +0 SECTION LOCAL +DEFAULT +3
- +4: 0+528 +0 SECTION LOCAL +DEFAULT +4
- +5: 0+630 +0 SECTION LOCAL +DEFAULT +5
- +6: 0+648 +0 SECTION LOCAL +DEFAULT +6
- +7: 0+10708 +0 SECTION LOCAL +DEFAULT +7
- +8: 0+10708 +0 SECTION LOCAL +DEFAULT +8
- +9: 0+10708 +0 SECTION LOCAL +DEFAULT +9
- +10: 0+10740 +0 SECTION LOCAL +DEFAULT +10
- +11: 0+10740 +0 SECTION LOCAL +DEFAULT +11
- +12: 0+10890 +0 SECTION LOCAL +DEFAULT +12
- +13: 0+108e8 +0 SECTION LOCAL +DEFAULT +13
- +14: 0+108e8 +0 SECTION LOCAL +DEFAULT +14
- +15: 0+10918 +0 SECTION LOCAL +DEFAULT +15
- +16: 0+10740 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +17: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +18: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
- +19: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
- +20: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
- +21: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
- +22: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +23: 0+664 +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +24: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
- +25: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
- +26: 0+108e8 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +27: 0+108e8 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +28: 0+10918 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +29: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
- +30: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+ +[0-9]+: 0+550 +0 SECTION LOCAL +DEFAULT +6
+ +[0-9]+: 0+10610 +0 SECTION LOCAL +DEFAULT +7
+ +[0-9]+: 0+10648 +0 SECTION LOCAL +DEFAULT +8
+ +[0-9]+: 0+10798 +0 SECTION LOCAL +DEFAULT +10
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15
+ +[0-9]+: 0+10648 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+40 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+50 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+48 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+38 +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+58 +0 TLS +GLOBAL DEFAULT +8 ie0
Symbol table '\.symtab' contains 43 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+120 +0 SECTION LOCAL +DEFAULT +1
- +2: 0+1e8 +0 SECTION LOCAL +DEFAULT +2
- +3: 0+4d0 +0 SECTION LOCAL +DEFAULT +3
- +4: 0+528 +0 SECTION LOCAL +DEFAULT +4
- +5: 0+630 +0 SECTION LOCAL +DEFAULT +5
- +6: 0+648 +0 SECTION LOCAL +DEFAULT +6
- +7: 0+10708 +0 SECTION LOCAL +DEFAULT +7
- +8: 0+10708 +0 SECTION LOCAL +DEFAULT +8
- +9: 0+10708 +0 SECTION LOCAL +DEFAULT +9
- +10: 0+10740 +0 SECTION LOCAL +DEFAULT +10
- +11: 0+10740 +0 SECTION LOCAL +DEFAULT +11
- +12: 0+10890 +0 SECTION LOCAL +DEFAULT +12
- +13: 0+108e8 +0 SECTION LOCAL +DEFAULT +13
- +14: 0+108e8 +0 SECTION LOCAL +DEFAULT +14
- +15: 0+10918 +0 SECTION LOCAL +DEFAULT +15
- +16: 0+ +0 SECTION LOCAL +DEFAULT +16
- +17: 0+ +0 SECTION LOCAL +DEFAULT +17
- +18: 0+ +0 SECTION LOCAL +DEFAULT +18
- +19: 0+ +0 TLS +LOCAL +DEFAULT +9 gd4
- +20: 0+8 +0 TLS +LOCAL +DEFAULT +9 ld4
- +21: 0+10 +0 TLS +LOCAL +DEFAULT +9 ld5
- +22: 0+18 +0 TLS +LOCAL +DEFAULT +9 ld6
- +23: 0+20 +0 TLS +LOCAL +DEFAULT +9 ie4
- +24: 0+28 +0 TLS +LOCAL +DEFAULT +9 le4
- +25: 0+30 +0 TLS +LOCAL +DEFAULT +9 le5
- +26: 0+108e0 +0 NOTYPE +LOCAL +DEFAULT +12 \.Lie0
- +27: 0+648 +0 NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
- +28: 0+10740 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +29: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +30: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
- +31: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
- +32: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
- +33: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
- +34: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +35: 0+664 +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +36: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
- +37: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
- +38: 0+108e8 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +39: 0+108e8 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +40: 0+10918 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +41: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
- +42: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+ +[0-9]+: 0+120 +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+550 +0 SECTION LOCAL +DEFAULT +6
+ +[0-9]+: 0+10610 +0 SECTION LOCAL +DEFAULT +7
+ +[0-9]+: 0+10648 +0 SECTION LOCAL +DEFAULT +8
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9
+ +[0-9]+: 0+10798 +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
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +16
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +17
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +18
+ +[0-9]+: 0+ +0 TLS +LOCAL +DEFAULT +7 gd4
+ +[0-9]+: 0+8 +0 TLS +LOCAL +DEFAULT +7 ld4
+ +[0-9]+: 0+10 +0 TLS +LOCAL +DEFAULT +7 ld5
+ +[0-9]+: 0+18 +0 TLS +LOCAL +DEFAULT +7 ld6
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +7 ie4
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +7 le4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +7 le5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +LOCAL +DEFAULT +12 \.Lie0
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
+ +[0-9]+: 0+10648 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+40 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+50 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+48 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+38 +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+58 +0 TLS +GLOBAL DEFAULT +8 ie0
diff --git a/ld/testsuite/ld-s390/tlsbin.dd b/ld/testsuite/ld-s390/tlsbin.dd
index 215a98d..82b1b87 100644
--- a/ld/testsuite/ld-s390/tlsbin.dd
+++ b/ld/testsuite/ld-s390/tlsbin.dd
@@ -18,168 +18,176 @@
Disassembly of section .text:
-0+4002e4 <fn2>:
+0+[0-9a-f]+ <fn2>:
# function prolog
- +4002e4: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
- +4002e8: a7 d5 00 24 bras %r13,400330 <fn2\+0x4c>
+ +[0-9a-f]+: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
+ +[0-9a-f]+: a7 d5 00 24 bras %r13,[0-9a-f]+ <fn2\+0x4c>
# _GLOBAL_OFFSET_TABLE_
- +4002ec: 00 00 12 90 .long 0x00001290
+ +[0-9a-f]+: [0-9a-f ]+ .long 0x[0-9a-f]+
# __tls_get_addr@plt-.LT1
- +4002f0: ff ff ff d8 .long 0xffffffd8
+ +[0-9a-f]+: [0-9a-f ]+ .long 0x[0-9a-f]+
# sG1@tlsgd
- +4002f4: 00 00 00 28 .long 0x00000028
+ +[0-9a-f]+: 00 00 00 28 .long 0x00000028
# sG2@tlsgd
- +4002f8: 00 00 00 20 .long 0x00000020
+ +[0-9a-f]+: 00 00 00 20 .long 0x00000020
# sg1@tlsgd
- +4002fc: ff ff ff 60 .long 0xffffff60
+ +[0-9a-f]+: ff ff ff 60 .long 0xffffff60
# sl1@tlsgd
- +400300: ff ff ff 80 .long 0xffffff80
+ +[0-9a-f]+: ff ff ff 80 .long 0xffffff80
# sh1@tlsgd
- +400304: ff ff ff a0 .long 0xffffffa0
+ +[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
# sl1@tlsldm
- +400308: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
# sl1@dtpoff
- +40030c: ff ff ff 80 .long 0xffffff80
+ +[0-9a-f]+: ff ff ff 80 .long 0xffffff80
# sl2@dtpoff
- +400310: ff ff ff 84 .long 0xffffff84
+ +[0-9a-f]+: ff ff ff 84 .long 0xffffff84
# sh1@tlsldm
- +400314: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
# sh1@dtpoff
- +400318: ff ff ff a0 .long 0xffffffa0
+ +[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
# sh2@dtpoff
- +40031c: ff ff ff a4 .long 0xffffffa4
+ +[0-9a-f]+: ff ff ff a4 .long 0xffffffa4
# sG2@gotntpoff
- +400320: 00 00 00 20 .long 0x00000020
+ +[0-9a-f]+: 00 00 00 20 .long 0x00000020
# sg1@gotntpoff
- +400324: ff ff ff 60 .long 0xffffff60
+ +[0-9a-f]+: ff ff ff 60 .long 0xffffff60
# sl1@gotntpoff
- +400328: ff ff ff 80 .long 0xffffff80
+ +[0-9a-f]+: ff ff ff 80 .long 0xffffff80
# sh1@gotntpoff
- +40032c: ff ff ff a0 .long 0xffffffa0
+ +[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
# function prolog
- +400330: 18 ef lr %r14,%r15
- +400332: 58 c0 d0 00 l %r12,0\(%r13\)
- +400336: a7 fa ff a0 ahi %r15,-96
- +40033a: 41 cc d0 00 la %r12,0\(%r12,%r13\)
- +40033e: 50 e0 e0 00 st %r14,0\(%r14\)
+ +[0-9a-f]+: 18 ef lr %r14,%r15
+ +[0-9a-f]+: 58 c0 d0 00 l %r12,0\(%r13\)
+ +[0-9a-f]+: a7 fa ff a0 ahi %r15,-96
+ +[0-9a-f]+: 41 cc d0 00 la %r12,0\(%r12,%r13\)
+ +[0-9a-f]+: 50 e0 e0 00 st %r14,0\(%r14\)
# Extract TCB and load branch offset
- +400342: b2 4f 00 90 ear %r9,%a0
- +400346: 58 70 d0 04 l %r7,4\(%r13\)
+ +[0-9a-f]+: b2 4f 00 90 ear %r9,%a0
+ +[0-9a-f]+: 58 70 d0 04 l %r7,4\(%r13\)
# GD -> IE because variable is not defined in executable
- +40034a: 58 20 d0 08 l %r2,8\(%r13\)
- +40034e: 58 22 c0 00 l %r2,0\(%r2,%r12\)
- +400352: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 08 l %r2,8\(%r13\)
+ +[0-9a-f]+: 58 22 c0 00 l %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE because variable is not defined in executable where
# the variable is referenced through IE too
- +400356: 58 20 d0 0c l %r2,12\(%r13\)
- +40035a: 58 22 c0 00 l %r2,0\(%r2,%r12\)
- +40035e: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 0c l %r2,12\(%r13\)
+ +[0-9a-f]+: 58 22 c0 00 l %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> LE with global variable defined in executable
- +400362: 58 20 d0 10 l %r2,16\(%r13\)
- +400366: 47 00 00 00 bc 0,0
- +40036a: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 10 l %r2,16\(%r13\)
+ +[0-9a-f]+: 47 00 00 00 bc 0,0
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> LE with local variable defined in executable
- +40036e: 58 20 d0 14 l %r2,20\(%r13\)
- +400372: 47 00 00 00 bc 0,0
- +400376: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 14 l %r2,20\(%r13\)
+ +[0-9a-f]+: 47 00 00 00 bc 0,0
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> LE with hidden variable defined in executable
- +40037a: 58 20 d0 18 l %r2,24\(%r13\)
- +40037e: 47 00 00 00 bc 0,0
- +400382: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 18 l %r2,24\(%r13\)
+ +[0-9a-f]+: 47 00 00 00 bc 0,0
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# LD -> LE
- +400386: 58 20 d0 1c l %r2,28\(%r13\)
- +40038a: 47 00 00 00 bc 0,0
- +40038e: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +400392: 58 40 d0 20 l %r4,32\(%r13\)
- +400396: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +40039a: 58 40 d0 24 l %r4,36\(%r13\)
- +40039e: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 20 d0 1c l %r2,28\(%r13\)
+ +[0-9a-f]+: 47 00 00 00 bc 0,0
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 40 d0 20 l %r4,32\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 40 d0 24 l %r4,36\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# LD -> LE against hidden variables
- +4003a2: 58 20 d0 28 l %r2,40\(%r13\)
- +4003a6: 47 00 00 00 bc 0,0
- +4003aa: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +4003ae: 58 40 d0 2c l %r4,44\(%r13\)
- +4003b2: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +4003b6: 58 40 d0 30 l %r4,48\(%r13\)
- +4003ba: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 20 d0 28 l %r2,40\(%r13\)
+ +[0-9a-f]+: 47 00 00 00 bc 0,0
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 40 d0 2c l %r4,44\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 40 d0 30 l %r4,48\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# IE against global var
- +4003be: 58 30 d0 34 l %r3,52\(%r13\)
- +4003c2: 58 33 c0 00 l %r3,0\(%r3,%r12\)
- +4003c6: 58 33 90 00 l %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 d0 34 l %r3,52\(%r13\)
+ +[0-9a-f]+: 58 33 c0 00 l %r3,0\(%r3,%r12\)
+ +[0-9a-f]+: 58 33 90 00 l %r3,0\(%r3,%r9\)
# IE -> LE against global var defined in exec
- +4003ca: 58 30 d0 38 l %r3,56\(%r13\)
- +4003ce: 18 43 lr %r4,%r3
- +4003d0: 07 00 bcr 0,%r0
- +4003d2: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: 58 30 d0 38 l %r3,56\(%r13\)
+ +[0-9a-f]+: 18 43 lr %r4,%r3
+ +[0-9a-f]+: 07 00 bcr 0,%r0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE -> LE against local var
- +4003d6: 58 30 d0 3c l %r3,60\(%r13\)
- +4003da: 18 43 lr %r4,%r3
- +4003dc: 07 00 bcr 0,%r0
- +4003de: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: 58 30 d0 3c l %r3,60\(%r13\)
+ +[0-9a-f]+: 18 43 lr %r4,%r3
+ +[0-9a-f]+: 07 00 bcr 0,%r0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE -> LE against hidden var
- +4003e2: 58 30 d0 40 l %r3,64\(%r13\)
- +4003e6: 18 43 lr %r4,%r3
- +4003e8: 07 00 bcr 0,%r0
- +4003ea: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: 58 30 d0 40 l %r3,64\(%r13\)
+ +[0-9a-f]+: 18 43 lr %r4,%r3
+ +[0-9a-f]+: 07 00 bcr 0,%r0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against global var with small got access (no optimization)
- +4003ee: 58 30 c0 14 l %r3,20\(%r12\)
- +4003f2: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 c0 14 l %r3,20\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against global var defined in exec with small got access
# (no optimization)
- +4003f6: 58 30 c0 18 l %r3,24\(%r12\)
- +4003fa: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 c0 18 l %r3,24\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against local var with small got access (no optimization)
- +4003fe: 58 30 c0 10 l %r3,16\(%r12\)
- +400402: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 c0 10 l %r3,16\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against hidden var with small got access (no optimization)
- +400406: 58 30 c0 1c l %r3,28\(%r12\)
- +40040a: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 c0 1c l %r3,28\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# function epilog
- +40040e: 98 6e f0 78 lm %r6,%r14,120\(%r15\)
- +400412: 07 fe br %r14
+ +[0-9a-f]+: 98 6e f0 78 lm %r6,%r14,120\(%r15\)
+ +[0-9a-f]+: 07 fe br %r14
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
-0+400414 <_start>:
+0+[0-9a-f]+ <_start>:
# function prolog
- +400414: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
- +400418: a7 d5 00 0c bras %r13,400430 <_start\+0x1c>
+ +[0-9a-f]+: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
+ +[0-9a-f]+: a7 d5 00 0c bras %r13,[0-9a-f]+ <_start\+0x1c>
# sG6@indntpoff
- +40041c: 00 40 15 a0 .long 0x004015a0
+ +[0-9a-f]+: 00 40 15 e4 .long 0x004015e4
# bg6@indntpoff
- +400420: ff ff ff d4 .long 0xffffffd4
+ +[0-9a-f]+: ff ff ff d4 .long 0xffffffd4
# bl6@indntpoff
- +400424: ff ff ff f4 .long 0xfffffff4
+ +[0-9a-f]+: ff ff ff f4 .long 0xfffffff4
# sh6@indntpoff
- +400428: ff ff ff b4 .long 0xffffffb4
+ +[0-9a-f]+: ff ff ff b4 .long 0xffffffb4
# sg3@indntpoff
- +40042c: ff ff ff 68 .long 0xffffff68
+ +[0-9a-f]+: ff ff ff 68 .long 0xffffff68
# function prolog
- +400430: 18 ef lr %r14,%r15
- +400432: a7 fa ff a0 ahi %r15,-96
- +400436: 50 e0 e0 00 st %r14,0\(%r14\)
+ +[0-9a-f]+: 18 ef lr %r14,%r15
+ +[0-9a-f]+: a7 fa ff a0 ahi %r15,-96
+ +[0-9a-f]+: 50 e0 e0 00 st %r14,0\(%r14\)
# Extract TCB
- +40043a: b2 4f 00 90 ear %r9,%a0
+ +[0-9a-f]+: b2 4f 00 90 ear %r9,%a0
# IE against global var
- +40043e: 58 30 d0 00 l %r3,0\(%r13\)
- +400442: 58 33 c0 00 l %r3,0\(%r3,%r12\)
- +400446: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 d0 00 l %r3,0\(%r13\)
+ +[0-9a-f]+: 58 33 c0 00 l %r3,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE -> LE against global var defined in exec
- +40044a: 58 30 d0 04 l %r3,4\(%r13\)
- +40044e: 18 43 lr %r4,%r3
- +400450: 07 00 bcr 0,%r0
- +400452: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: 58 30 d0 04 l %r3,4\(%r13\)
+ +[0-9a-f]+: 18 43 lr %r4,%r3
+ +[0-9a-f]+: 07 00 bcr 0,%r0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE -> LE against local var
- +400456: 58 30 d0 08 l %r3,8\(%r13\)
- +40045a: 18 43 lr %r4,%r3
- +40045c: 07 00 bcr 0,%r0
- +40045e: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: 58 30 d0 08 l %r3,8\(%r13\)
+ +[0-9a-f]+: 18 43 lr %r4,%r3
+ +[0-9a-f]+: 07 00 bcr 0,%r0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE -> LE against hidden but not local var
- +400462: 58 30 d0 0c l %r3,12\(%r13\)
- +400466: 18 43 lr %r4,%r3
- +400468: 07 00 bcr 0,%r0
- +40046a: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: 58 30 d0 0c l %r3,12\(%r13\)
+ +[0-9a-f]+: 18 43 lr %r4,%r3
+ +[0-9a-f]+: 07 00 bcr 0,%r0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# LE, global var defined in exec
- +40046e: 58 40 d0 10 l %r4,16\(%r13\)
- +400472: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: 58 40 d0 10 l %r4,16\(%r13\)
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# function epilog
- +400476: 98 6e f0 78 lm %r6,%r14,120\(%r15\)
- +40047a: 07 fe br %r14
+ +[0-9a-f]+: 98 6e f0 78 lm %r6,%r14,120\(%r15\)
+ +[0-9a-f]+: 07 fe br %r14
diff --git a/ld/testsuite/ld-s390/tlsbin.rd b/ld/testsuite/ld-s390/tlsbin.rd
index e643b6e..f711f11 100644
--- a/ld/testsuite/ld-s390/tlsbin.rd
+++ b/ld/testsuite/ld-s390/tlsbin.rd
@@ -5,7 +5,7 @@
#readelf: -Ssrl
#target: s390-*-*
-There are 19 section headers, starting at offset 0x[0-9a-f]+:
+There are 18 section headers, starting at offset 0x[0-9a-f]+:
Section Headers:
\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
@@ -17,24 +17,23 @@ Section Headers:
\[ 5\] .rela.dyn +.*
\[ 6\] .rela.plt +.*
\[ 7\] .plt +.*
- \[ 8\] .text +PROGBITS +0+4002e4 0+2e4 0+198 00 +AX +0 +0 +4
- \[ 9\] .data +.*
- \[10\] .tdata +PROGBITS +0+40147c 0+47c 0+60 00 WAT +0 +0 +1
- \[11\] .tbss +NOBITS +0+4014dc 0+4dc 0+40 00 WAT +0 +0 +1
- \[12\] .dynamic +DYNAMIC +0+4014dc 0+4dc 0+a0 08 +WA +4 +0 +4
- \[13\] .got +PROGBITS +0+40157c 0+57c 0+2c 04 +WA +0 +0 +4
- \[14\] .sbss +.*
- \[15\] .bss +.*
- \[16\] .shstrtab +.*
- \[17\] .symtab +.*
- \[18\] .strtab +.*
+ \[ 8\] .text +PROGBITS +.*
+ \[ 9\] .tdata +PROGBITS +0+4014c0 0+4c0 0+60 00 WAT +0 +0 +32
+ \[10\] .tbss +NOBITS +0+401520 0+520 0+40 00 WAT +0 +0 +1
+ \[11\] .dynamic +DYNAMIC +0+401520 0+520 0+a0 08 +WA +4 +0 +4
+ \[12\] .got +PROGBITS +0+4015c0 0+5c0 0+2c 04 +WA +0 +0 +4
+ \[13\] .data +.*
+ \[14\] .bss +.*
+ \[15\] .shstrtab +.*
+ \[16\] .symtab +.*
+ \[17\] .strtab +.*
Key to Flags:
.*
.*
.*
Elf file type is EXEC \(Executable file\)
-Entry point 0x400414
+Entry point 0x[0-9a-f]+
There are 6 program headers, starting at offset [0-9]+
Program Headers:
@@ -42,10 +41,10 @@ Program Headers:
PHDR +0x0+34 0x0+400034 0x0+400034 0x0+c0 0x0+c0 R E 0x4
INTERP +0x0+f4 0x0+4000f4 0x0+4000f4 0x0+11 0x0+11 R +0x1
.*Requesting program interpreter.*
- LOAD +0x0+ 0x0+400000 0x0+400000 0x0+47c 0x0+47c R E 0x1000
- LOAD +0x0+47c 0x0+40147c 0x0+40147c 0x0+12c 0x0+12c RW 0x1000
- DYNAMIC +0x0+4dc 0x0+4014dc 0x0+4014dc 0x0+a0 0x0+a0 RW 0x4
- TLS +0x0+47c 0x0+40147c 0x0+40147c 0x0+60 0x0+a0 R +0x1
+ LOAD +0x0+ 0x0+400000 0x0+400000 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x1000
+ LOAD +0x0+4c0 0x0+4014c0 0x0+4014c0 0x0+12c 0x0+12c RW 0x1000
+ DYNAMIC +0x0+520 0x0+401520 0x0+401520 0x0+a0 0x0+a0 RW 0x4
+ TLS +0x0+4c0 0x0+4014c0 0x0+4014c0 0x0+60 0x0+a0 R +0x20
Section to Segment mapping:
Segment Sections...
@@ -69,88 +68,87 @@ Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Symbol table '.dynsym' contains 11 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND
- +1: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
- +2: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +3: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
- +4: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_offset
- +5: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +6: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
- +7: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
- +8: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +9: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +10: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_offset
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
-Symbol table '.symtab' contains 71 entries:
+Symbol table '.symtab' contains 70 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13
- +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14
- +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15
- +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16
- +17: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17
- +18: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +18
- +19: 0+20 +0 TLS +LOCAL DEFAULT +10 sl1
- +20: 0+24 +0 TLS +LOCAL DEFAULT +10 sl2
- +21: 0+28 +0 TLS +LOCAL DEFAULT +10 sl3
- +22: 0+2c +0 TLS +LOCAL DEFAULT +10 sl4
- +23: 0+30 +0 TLS +LOCAL DEFAULT +10 sl5
- +24: 0+34 +0 TLS +LOCAL DEFAULT +10 sl6
- +25: 0+38 +0 TLS +LOCAL DEFAULT +10 sl7
- +26: 0+3c +0 TLS +LOCAL DEFAULT +10 sl8
- +27: 0+80 +0 TLS +LOCAL DEFAULT +11 bl1
- +28: 0+84 +0 TLS +LOCAL DEFAULT +11 bl2
- +29: 0+88 +0 TLS +LOCAL DEFAULT +11 bl3
- +30: 0+8c +0 TLS +LOCAL DEFAULT +11 bl4
- +31: 0+90 +0 TLS +LOCAL DEFAULT +11 bl5
- +32: 0+94 +0 TLS +LOCAL DEFAULT +11 bl6
- +33: 0+98 +0 TLS +LOCAL DEFAULT +11 bl7
- +34: 0+9c +0 TLS +LOCAL DEFAULT +11 bl8
- +35: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
- +36: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
- +37: 0+7c +0 TLS +GLOBAL DEFAULT +11 bg8
- +38: 0+74 +0 TLS +GLOBAL DEFAULT +11 bg6
- +39: 0+68 +0 TLS +GLOBAL DEFAULT +11 bg3
- +40: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +41: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
- +42: 0+48 +0 TLS +GLOBAL HIDDEN +10 sh3
- +43: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
- +44: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
- +45: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
- +46: 0+70 +0 TLS +GLOBAL DEFAULT +11 bg5
- +47: 0+58 +0 TLS +GLOBAL HIDDEN +10 sh7
- +48: 0+5c +0 TLS +GLOBAL HIDDEN +10 sh8
- +49: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_offset
- +50: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
- +51: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +8 _start
- +52: 0+4c +0 TLS +GLOBAL HIDDEN +10 sh4
- +53: 0+78 +0 TLS +GLOBAL DEFAULT +11 bg7
- +54: 0+50 +0 TLS +GLOBAL HIDDEN +10 sh5
- +55: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +56: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
- +57: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +8 fn2
- +58: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2
- +59: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
- +60: 0+40 +0 TLS +GLOBAL HIDDEN +10 sh1
- +61: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6
- +62: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7
- +63: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +64: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +65: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
- +66: 0+44 +0 TLS +GLOBAL HIDDEN +10 sh2
- +67: 0+54 +0 TLS +GLOBAL HIDDEN +10 sh6
- +68: 0+64 +0 TLS +GLOBAL DEFAULT +11 bg2
- +69: 0+60 +0 TLS +GLOBAL DEFAULT +11 bg1
- +70: 0+6c +0 TLS +GLOBAL DEFAULT +11 bg4
+ +[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
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17
+ +[0-9]+: 0+20 +0 TLS +LOCAL DEFAULT +9 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL DEFAULT +9 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL DEFAULT +9 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL DEFAULT +9 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL DEFAULT +9 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL DEFAULT +9 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL DEFAULT +9 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL DEFAULT +9 sl8
+ +[0-9]+: 0+80 +0 TLS +LOCAL DEFAULT +10 bl1
+ +[0-9]+: 0+84 +0 TLS +LOCAL DEFAULT +10 bl2
+ +[0-9]+: 0+88 +0 TLS +LOCAL DEFAULT +10 bl3
+ +[0-9]+: 0+8c +0 TLS +LOCAL DEFAULT +10 bl4
+ +[0-9]+: 0+90 +0 TLS +LOCAL DEFAULT +10 bl5
+ +[0-9]+: 0+94 +0 TLS +LOCAL DEFAULT +10 bl6
+ +[0-9]+: 0+98 +0 TLS +LOCAL DEFAULT +10 bl7
+ +[0-9]+: 0+9c +0 TLS +LOCAL DEFAULT +10 bl8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG3
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
+ +[0-9]+: 0+7c +0 TLS +GLOBAL DEFAULT +10 bg8
+ +[0-9]+: 0+74 +0 TLS +GLOBAL DEFAULT +10 bg6
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +10 bg3
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
+ +[0-9]+: 0+48 +0 TLS +GLOBAL HIDDEN +9 sh3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
+ +[0-9]+: 0+70 +0 TLS +GLOBAL DEFAULT +10 bg5
+ +[0-9]+: 0+58 +0 TLS +GLOBAL HIDDEN +9 sh7
+ +[0-9]+: 0+5c +0 TLS +GLOBAL HIDDEN +9 sh8
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +8 _start
+ +[0-9]+: 0+4c +0 TLS +GLOBAL HIDDEN +9 sh4
+ +[0-9]+: 0+78 +0 TLS +GLOBAL DEFAULT +10 bg7
+ +[0-9]+: 0+50 +0 TLS +GLOBAL HIDDEN +9 sh5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +8 fn2
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
+ +[0-9]+: 0+40 +0 TLS +GLOBAL HIDDEN +9 sh1
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+44 +0 TLS +GLOBAL HIDDEN +9 sh2
+ +[0-9]+: 0+54 +0 TLS +GLOBAL HIDDEN +9 sh6
+ +[0-9]+: 0+64 +0 TLS +GLOBAL DEFAULT +10 bg2
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +10 bg1
+ +[0-9]+: 0+6c +0 TLS +GLOBAL DEFAULT +10 bg4
diff --git a/ld/testsuite/ld-s390/tlsbin.sd b/ld/testsuite/ld-s390/tlsbin.sd
index fd48420..b1ecbf0 100644
--- a/ld/testsuite/ld-s390/tlsbin.sd
+++ b/ld/testsuite/ld-s390/tlsbin.sd
@@ -8,6 +8,6 @@
.*: file format elf32-s390
Contents of section .got:
- 40157c [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .@...........@..
- 40158c ffffff88 00000000 ffffff68 ffffffa8 ...........h....
- 40159c 00000000 00000000 00000000 ............
+ [0-9a-f]+ [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .@...........@..
+ [0-9a-f]+ ffffff88 00000000 ffffff68 ffffffa8 ...........h....
+ [0-9a-f]+ 00000000 00000000 00000000 ............
diff --git a/ld/testsuite/ld-s390/tlsbin.td b/ld/testsuite/ld-s390/tlsbin.td
index 6ecd9c7..f0a61b8 100644
--- a/ld/testsuite/ld-s390/tlsbin.td
+++ b/ld/testsuite/ld-s390/tlsbin.td
@@ -8,9 +8,9 @@
.*: file format elf32-s390
Contents of section .tdata:
- 40147c 00000011 00000012 00000013 00000014 .*
- 40148c 00000015 00000016 00000017 00000018 .*
- 40149c 00000041 00000042 00000043 00000044 .*
- 4014ac 00000045 00000046 00000047 00000048 .*
- 4014bc 00000101 00000102 00000103 00000104 .*
- 4014cc 00000105 00000106 00000107 00000108 .*
+ [0-9a-f]+ 00000011 00000012 00000013 00000014 .*
+ [0-9a-f]+ 00000015 00000016 00000017 00000018 .*
+ [0-9a-f]+ 00000041 00000042 00000043 00000044 .*
+ [0-9a-f]+ 00000045 00000046 00000047 00000048 .*
+ [0-9a-f]+ 00000101 00000102 00000103 00000104 .*
+ [0-9a-f]+ 00000105 00000106 00000107 00000108 .*
diff --git a/ld/testsuite/ld-s390/tlsbin_64.dd b/ld/testsuite/ld-s390/tlsbin_64.dd
index ca13d73..664991a 100644
--- a/ld/testsuite/ld-s390/tlsbin_64.dd
+++ b/ld/testsuite/ld-s390/tlsbin_64.dd
@@ -18,196 +18,206 @@
Disassembly of section .text:
-0+80000458 <fn2>:
+0+[0-9a-f]+ <fn2>:
# function prolog
- +80000458: eb 6e f0 30 00 24 stmg %r6,%r14,48\(%r15\)
- +8000045e: a7 d5 00 3e bras %r13,800004da <fn2\+0x82>
+ +[0-9a-f]+: eb 6e f0 30 00 24 stmg %r6,%r14,48\(%r15\)
+ +[0-9a-f]+: a7 d5 00 3e bras %r13,[0-9a-f]+ <fn2\+0x82>
# sG1@tlsgd
- +80000462: 00 00 00 00 .long 0x00000000
- +80000466: 00 00 00 60 .long 0x00000060
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 60 .long 0x00000060
# sG2@tlsgd
- +8000046a: 00 00 00 00 .long 0x00000000
- +8000046e: 00 00 00 48 .long 0x00000048
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 48 .long 0x00000048
# sg1@tlsgd
- +80000472: ff ff ff ff .long 0xffffffff
- +80000476: ff ff ff 60 .long 0xffffff60
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff 60 .long 0xffffff60
# sl1@tlsgd
- +8000047a: ff ff ff ff .long 0xffffffff
- +8000047e: ff ff ff 80 .long 0xffffff80
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff 80 .long 0xffffff80
# sh1@tlsgd
- +80000482: ff ff ff ff .long 0xffffffff
- +80000486: ff ff ff a0 .long 0xffffffa0
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
# sl1@tlsldm
- +8000048a: 00 00 00 00 .long 0x00000000
- +8000048e: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
# sl1@dtpoff
- +80000492: ff ff ff ff .long 0xffffffff
- +80000496: ff ff ff 80 .long 0xffffff80
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff 80 .long 0xffffff80
# sl2@dtpoff
- +8000049a: ff ff ff ff .long 0xffffffff
- +8000049e: ff ff ff 84 .long 0xffffff84
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff 84 .long 0xffffff84
# sh1@tlsldm
- +800004a2: 00 00 00 00 .long 0x00000000
- +800004a6: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
# sh1@dtpoff
- +800004aa: ff ff ff ff .long 0xffffffff
- +800004ae: ff ff ff a0 .long 0xffffffa0
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
# sh2@dtpoff
- +800004b2: ff ff ff ff .long 0xffffffff
- +800004b6: ff ff ff a4 .long 0xffffffa4
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff a4 .long 0xffffffa4
# sG2@gotntpoff
- +800004ba: 00 00 00 00 .long 0x00000000
- +800004be: 00 00 00 48 .long 0x00000048
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 48 .long 0x00000048
# sg1@gotntpoff
- +800004c2: ff ff ff ff .long 0xffffffff
- +800004c6: ff ff ff 60 .long 0xffffff60
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff 60 .long 0xffffff60
# sl1@gotntpoff
- +800004ca: ff ff ff ff .long 0xffffffff
- +800004ce: ff ff ff 80 .long 0xffffff80
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff 80 .long 0xffffff80
# sh1@gotntpoff
- +800004d2: ff ff ff ff .long 0xffffffff
- +800004d6: ff ff ff a0 .long 0xffffffa0
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff a0 .long 0xffffffa0
# function prolog
- +800004da: b9 04 00 ef lgr %r14,%r15
- +800004de: a7 fb ff 60 aghi %r15,-160
- +800004e2: c0 c0 00 00 09 d3 larl %r12,80001888 <_GLOBAL_OFFSET_TABLE_>
- +800004e8: e3 e0 e0 00 00 24 stg %r14,0\(%r14\)
+ +[0-9a-f]+: b9 04 00 ef lgr %r14,%r15
+ +[0-9a-f]+: a7 fb ff 60 aghi %r15,-160
+ +[0-9a-f]+: c0 c0 [0-9a-f ]+ larl %r12,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_>
+ +[0-9a-f]+: e3 e0 e0 00 00 24 stg %r14,0\(%r14\)
# extract TCB
- +800004ee: b2 4f 00 90 ear %r9,%a0
- +800004f2: eb 94 00 20 00 0d sllg %r9,%r4,32
- +800004f8: b2 4f 00 91 ear %r9,%a1
+ +[0-9a-f]+: b2 4f 00 90 ear %r9,%a0
+ +[0-9a-f]+: eb 94 00 20 00 0d sllg %r9,%r4,32
+ +[0-9a-f]+: b2 4f 00 91 ear %r9,%a1
# GD -> IE because variable is not defined in executable
- +800004fc: e3 c0 d0 00 00 04 lg %r12,0\(%r13\)
- +80000502: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
- +80000508: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 c0 d0 00 00 04 lg %r12,0\(%r13\)
+ +[0-9a-f]+: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE because variable is not defined in executable where
# the variable is referenced through IE too
- +8000050c: e3 20 d0 08 00 04 lg %r2,8\(%r13\)
- +80000512: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
- +80000518: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 08 00 04 lg %r2,8\(%r13\)
+ +[0-9a-f]+: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> LE with global variable defined in executable
- +8000051c: e3 20 d0 10 00 04 lg %r2,16\(%r13\)
- +80000522: c0 04 00 00 00 00 brcl 0,80000522 <fn2\+0xca>
- +80000528: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 10 00 04 lg %r2,16\(%r13\)
+ +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xca>
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> LE with local variable defined in executable
- +8000052c: e3 20 d0 18 00 04 lg %r2,24\(%r13\)
- +80000532: c0 04 00 00 00 00 brcl 0,80000532 <fn2\+0xda>
- +80000538: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 18 00 04 lg %r2,24\(%r13\)
+ +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xda>
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> LE with hidden variable defined in executable
- +8000053c: e3 20 d0 20 00 04 lg %r2,32\(%r13\)
- +80000542: c0 04 00 00 00 00 brcl 0,80000542 <fn2\+0xea>
- +80000548: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 20 00 04 lg %r2,32\(%r13\)
+ +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xea>
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# LD -> LE
- +8000054c: e3 20 d0 28 00 04 lg %r2,40\(%r13\)
- +80000552: c0 04 00 00 00 00 brcl 0,80000552 <fn2\+0xfa>
- +80000558: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +8000055c: e3 40 d0 30 00 04 lg %r4,48\(%r13\)
- +80000562: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +80000566: e3 40 d0 38 00 04 lg %r4,56\(%r13\)
- +8000056c: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +80000570: e3 20 d0 40 00 04 lg %r2,64\(%r13\)
- +80000576: c0 04 00 00 00 00 brcl 0,80000576 <fn2\+0x11e>
- +8000057c: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +80000580: e3 40 d0 48 00 04 lg %r4,72\(%r13\)
- +80000586: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +8000058a: e3 40 d0 50 00 04 lg %r4,80\(%r13\)
- +80000590: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 20 d0 28 00 04 lg %r2,40\(%r13\)
+ +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0xfa>
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 40 d0 30 00 04 lg %r4,48\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 40 d0 38 00 04 lg %r4,56\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 20 d0 40 00 04 lg %r2,64\(%r13\)
+ +[0-9a-f]+: c0 04 00 00 00 00 brcl 0,[0-9a-f]+ <fn2\+0x11e>
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 40 d0 48 00 04 lg %r4,72\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 40 d0 50 00 04 lg %r4,80\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# IE against global var
- +80000594: e3 30 d0 58 00 04 lg %r3,88\(%r13\)
- +8000059a: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
- +800005a0: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 d0 58 00 04 lg %r3,88\(%r13\)
+ +[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE -> LE against global var defined in exec
- +800005a4: e3 30 d0 60 00 04 lg %r3,96\(%r13\)
- +800005aa: eb 43 00 00 00 0d sllg %r4,%r3,0
- +800005b0: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 60 00 04 lg %r3,96\(%r13\)
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE -> LE against local var
- +800005b4: e3 30 d0 68 00 04 lg %r3,104\(%r13\)
- +800005ba: eb 43 00 00 00 0d sllg %r4,%r3,0
- +800005c0: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 68 00 04 lg %r3,104\(%r13\)
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE -> LE against hidden var
- +800005c4: e3 30 d0 70 00 04 lg %r3,112\(%r13\)
- +800005ca: eb 43 00 00 00 0d sllg %r4,%r3,0
- +800005d0: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 70 00 04 lg %r3,112\(%r13\)
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against global var with larl got access
- +800005d4: c0 30 00 00 09 6e larl %r3,800018b0 <\_GLOBAL\_OFFSET\_TABLE\_\+0x28>
- +800005da: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
- +800005e0: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x28>
+ +[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against global var defined in exec with larl got access
- +800005e4: c0 30 00 00 09 6e larl %r3,800018c0 <\_GLOBAL\_OFFSET\_TABLE\_\+0x38>
- +800005ea: eb 43 00 00 00 0d sllg %r4,%r3,0
- +800005f0: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x38>
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against local var with larl got access
- +800005f4: c0 30 00 00 09 5a larl %r3,800018a8 <\_GLOBAL\_OFFSET\_TABLE\_\+0x20>
- +800005fa: eb 43 00 00 00 0d sllg %r4,%r3,0
- +80000600: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x20>
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against hidden var with larl got access
- +80000604: c0 30 00 00 09 62 larl %r3,800018c8 <\_GLOBAL\_OFFSET\_TABLE\_\+0x40>
- +8000060a: eb 43 00 00 00 0d sllg %r4,%r3,0
- +80000610: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x40>
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against global var with small got access (no optimization)
- +80000614: e3 30 c0 28 00 04 lg %r3,40\(%r12\)
- +8000061a: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 c0 28 00 04 lg %r3,40\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against global var defined in exec with small got access
# (no optimization)
- +8000061e: e3 30 c0 38 00 04 lg %r3,56\(%r12\)
- +80000624: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 c0 38 00 04 lg %r3,56\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against local var with small got access (no optimization)
- +80000628: e3 30 c0 20 00 04 lg %r3,32\(%r12\)
- +8000062e: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 c0 20 00 04 lg %r3,32\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against hidden var with small got access (no optimization)
- +80000632: e3 30 c0 40 00 04 lg %r3,64\(%r12\)
- +80000638: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 c0 40 00 04 lg %r3,64\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# function epilog
- +8000063c: eb 6e f0 d0 00 04 lmg %r6,%r14,208\(%r15\)
- +80000642: 07 fe br %r14
+ +[0-9a-f]+: eb 6e f0 d0 00 04 lmg %r6,%r14,208\(%r15\)
+ +[0-9a-f]+: 07 fe br %r14
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
-0+80000644 <_start>:
+0+[0-9a-f]+ <_start>:
# function prolog
- +80000644: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
- +80000648: a7 d5 00 16 bras %r13,80000674 <_start\+0x30>
+ +[0-9a-f]+: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
+ +[0-9a-f]+: a7 d5 00 16 bras %r13,[0-9a-f]+ <_start\+0x30>
# sG6@indntpoff
- +8000064c: 00 00 00 00 .long 0x00000000
- +80000650: 80 00 18 e0 ssm 2272\(%r1\)
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 80 00 [0-9a-f ]+ ssm [0-9]+\(%r1\)
# bg6@indntpoff
- +80000654: ff ff ff ff .long 0xffffffff
- +80000658: ff ff ff d4 .long 0xffffffd4
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff d4 .long 0xffffffd4
# bl6@indntpoff
- +8000065c: ff ff ff ff .long 0xffffffff
- +80000660: ff ff ff f4 .long 0xfffffff4
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff f4 .long 0xfffffff4
# sh6@indntpoff
- +80000664: ff ff ff ff .long 0xffffffff
- +80000668: ff ff ff b4 .long 0xffffffb4
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff b4 .long 0xffffffb4
# sg3@indntpoff
- +8000066c: ff ff ff ff .long 0xffffffff
- +80000670: ff ff ff 68 .long 0xffffff68
+ +[0-9a-f]+: ff ff ff ff .long 0xffffffff
+ +[0-9a-f]+: ff ff ff 68 .long 0xffffff68
# function prolog
- +80000674: b9 04 00 ef lgr %r14,%r15
- +80000678: a7 fb ff 60 aghi %r15,-160
- +8000067c: e3 e0 e0 00 00 24 stg %r14,0\(%r14\)
+ +[0-9a-f]+: b9 04 00 ef lgr %r14,%r15
+ +[0-9a-f]+: a7 fb ff 60 aghi %r15,-160
+ +[0-9a-f]+: e3 e0 e0 00 00 24 stg %r14,0\(%r14\)
# extract TCB
- +80000682: b2 4f 00 90 ear %r9,%a0
- +80000686: eb 94 00 20 00 0d sllg %r9,%r4,32
- +8000068c: b2 4f 00 91 ear %r9,%a1
+ +[0-9a-f]+: b2 4f 00 90 ear %r9,%a0
+ +[0-9a-f]+: eb 94 00 20 00 0d sllg %r9,%r4,32
+ +[0-9a-f]+: b2 4f 00 91 ear %r9,%a1
# IE against global var
- +80000690: e3 30 d0 00 00 04 lg %r3,0\(%r13\)
- +80000696: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
- +8000069c: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 d0 00 00 04 lg %r3,0\(%r13\)
+ +[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE -> LE against global var defined in exec
- +800006a0: e3 30 d0 08 00 04 lg %r3,8\(%r13\)
- +800006a6: eb 43 00 00 00 0d sllg %r4,%r3,0
- +800006ac: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 08 00 04 lg %r3,8\(%r13\)
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE -> LE against local var
- +800006b0: e3 30 d0 10 00 04 lg %r3,16\(%r13\)
- +800006b6: eb 43 00 00 00 0d sllg %r4,%r3,0
- +800006bc: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 10 00 04 lg %r3,16\(%r13\)
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE -> LE against hidden but not local var
- +800006c0: e3 30 d0 18 00 04 lg %r3,24\(%r13\)
- +800006c6: eb 43 00 00 00 0d sllg %r4,%r3,0
- +800006cc: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 18 00 04 lg %r3,24\(%r13\)
+ +[0-9a-f]+: eb 43 00 00 00 0d sllg %r4,%r3,0
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# LE, global var defined in exec
- +800006d0: e3 40 d0 20 00 04 lg %r4,32\(%r13\)
- +800006d6: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 40 d0 20 00 04 lg %r4,32\(%r13\)
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# function epilog
- +800006da: eb 6e f0 d0 00 04 lmg %r6,%r14,208\(%r15\)
- +800006e0: 07 fe br %r14
- +800006e2: 07 07 bcr 0,%r7
+ +[0-9a-f]+: eb 6e f0 d0 00 04 lmg %r6,%r14,208\(%r15\)
+ +[0-9a-f]+: 07 fe br %r14
+ +[0-9a-f]+: 07 07 bcr 0,%r7
diff --git a/ld/testsuite/ld-s390/tlsbin_64.rd b/ld/testsuite/ld-s390/tlsbin_64.rd
index b9ded2b..42515f0 100644
--- a/ld/testsuite/ld-s390/tlsbin_64.rd
+++ b/ld/testsuite/ld-s390/tlsbin_64.rd
@@ -5,7 +5,7 @@
#readelf: -Ssrl
#target: s390x-*-*
-There are 19 section headers, starting at offset 0x[0-9a-f]+:
+There are 18 section headers, starting at offset 0x[0-9a-f]+:
Section Headers:
\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
@@ -17,24 +17,23 @@ Section Headers:
\[ 5\] .rela.dyn +.*
\[ 6\] .rela.plt +.*
\[ 7\] .plt +.*
- \[ 8\] .text +PROGBITS +0+80000458 0+458 0+28c 00 +AX +0 +0 +4
- \[ 9\] .data +.*
- \[10\] .tdata +PROGBITS +0+800016e8 0+6e8 0+60 00 WAT +0 +0 +1
- \[11\] .tbss +NOBITS +0+80001748 0+748 0+40 00 WAT +0 +0 +1
- \[12\] .dynamic +DYNAMIC +0+80001748 0+748 0+140 10 +WA +4 +0 +8
- \[13\] .got +PROGBITS +0+80001888 0+888 0+78 08 +WA +0 +0 +8
- \[14\] .sbss +.*
- \[15\] .bss +.*
- \[16\] .shstrtab +.*
- \[17\] .symtab +.*
- \[18\] .strtab +.*
+ \[ 8\] .text +PROGBITS +.*
+ \[ 9\] .tdata +PROGBITS +0+80001720 0+720 0+60 00 WAT +0 +0 +32
+ \[10\] .tbss +NOBITS +0+80001780 0+780 0+40 00 WAT +0 +0 +1
+ \[11\] .dynamic +DYNAMIC +0+80001780 0+780 0+140 10 +WA +4 +0 +8
+ \[12\] .got +PROGBITS +0+800018c0 0+8c0 0+78 08 +WA +0 +0 +8
+ \[13\] .data +.*
+ \[14\] .bss +.*
+ \[15\] .shstrtab +.*
+ \[16\] .symtab +.*
+ \[17\] .strtab +.*
Key to Flags:
.*
.*
.*
Elf file type is EXEC \(Executable file\)
-Entry point 0x80000644
+Entry point 0x[0-9a-f]+
There are 6 program headers, starting at offset [0-9]+
Program Headers:
@@ -42,10 +41,10 @@ Program Headers:
PHDR +0x0+40 0x0+80000040 0x0+80000040 0x0+150 0x0+150 R E 0x8
INTERP +0x0+190 0x0+80000190 0x0+80000190 0x0+11 0x0+11 R +0x1
.*Requesting program interpreter.*
- LOAD +0x0+ 0x0+80000000 0x0+80000000 0x0+6e4 0x0+6e4 R E 0x1000
- LOAD +0x0+6e8 0x0+800016e8 0x0+800016e8 0x0+218 0x0+218 RW 0x1000
- DYNAMIC +0x0+748 0x0+80001748 0x0+80001748 0x0+140 0x0+140 RW 0x8
- TLS +0x0+6e8 0x0+800016e8 0x0+800016e8 0x0+60 0x0+a0 R +0x1
+ LOAD +0x0+ 0x0+80000000 0x0+80000000 0x0+720 0x0+720 R E 0x1000
+ LOAD +0x0+720 0x0+80001720 0x0+80001720 0x0+218 0x0+218 RW 0x1000
+ DYNAMIC +0x0+780 0x0+80001780 0x0+80001780 0x0+140 0x0+140 RW 0x8
+ TLS +0x0+720 0x0+80001720 0x0+80001720 0x0+60 0x0+a0 R +0x20
Section to Segment mapping:
Segment Sections...
@@ -56,101 +55,100 @@ Program Headers:
04 +.tbss .dynamic *
05 +.tdata .tbss *
-Relocation section '.rela.dyn' at offset 0x[0-9a-z]+ contains 4 entries:
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-[0-9a-z]+ +0+10+38 R_390_TLS_TPOFF +0+ sG3 \+ 0
-[0-9a-z]+ +0+30+38 R_390_TLS_TPOFF +0+ sG2 \+ 0
-[0-9a-z]+ +0+60+38 R_390_TLS_TPOFF +0+ sG6 \+ 0
-[0-9a-z]+ +0+70+38 R_390_TLS_TPOFF +0+ sG1 \+ 0
+[0-9a-f]+ +0+10+38 R_390_TLS_TPOFF +0+ sG3 \+ 0
+[0-9a-f]+ +0+30+38 R_390_TLS_TPOFF +0+ sG2 \+ 0
+[0-9a-f]+ +0+60+38 R_390_TLS_TPOFF +0+ sG6 \+ 0
+[0-9a-f]+ +0+70+38 R_390_TLS_TPOFF +0+ sG1 \+ 0
Relocation section '.rela.plt' at offset 0x40+ contains 1 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-[0-9a-z]+ +0+40+b R_390_JMP_SLOT +0+80+438 __tls_get_offset \+ 0
+[0-9a-f]+ +0+40+b R_390_JMP_SLOT +0+80+438 __tls_get_offset \+ 0
Symbol table '.dynsym' contains 11 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: 0+ +0 TLS +GLOBAL DEFAULT +UND sG3
- +2: [0-9a-z]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +3: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
- +4: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_offset
- +5: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +6: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
- +7: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
- +8: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +9: [0-9a-z]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +10: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG3
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_offset
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
-Symbol table '.symtab' contains 71 entries:
+Symbol table '.symtab' contains 70 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND
- +1: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +1
- +2: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +2
- +3: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +3
- +4: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +4
- +5: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +5
- +6: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +6
- +7: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +7
- +8: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +8
- +9: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +9
- +10: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +10
- +11: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +11
- +12: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +12
- +13: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +13
- +14: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +14
- +15: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +15
- +16: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +16
- +17: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +17
- +18: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +18
- +19: 0+20 +0 TLS +LOCAL +DEFAULT +10 sl1
- +20: 0+24 +0 TLS +LOCAL +DEFAULT +10 sl2
- +21: 0+28 +0 TLS +LOCAL +DEFAULT +10 sl3
- +22: 0+2c +0 TLS +LOCAL +DEFAULT +10 sl4
- +23: 0+30 +0 TLS +LOCAL +DEFAULT +10 sl5
- +24: 0+34 +0 TLS +LOCAL +DEFAULT +10 sl6
- +25: 0+38 +0 TLS +LOCAL +DEFAULT +10 sl7
- +26: 0+3c +0 TLS +LOCAL +DEFAULT +10 sl8
- +27: 0+80 +0 TLS +LOCAL +DEFAULT +11 bl1
- +28: 0+84 +0 TLS +LOCAL +DEFAULT +11 bl2
- +29: 0+88 +0 TLS +LOCAL +DEFAULT +11 bl3
- +30: 0+8c +0 TLS +LOCAL +DEFAULT +11 bl4
- +31: 0+90 +0 TLS +LOCAL +DEFAULT +11 bl5
- +32: 0+94 +0 TLS +LOCAL +DEFAULT +11 bl6
- +33: 0+98 +0 TLS +LOCAL +DEFAULT +11 bl7
- +34: 0+9c +0 TLS +LOCAL +DEFAULT +11 bl8
- +35: 0+ +0 TLS +GLOBAL DEFAULT +UND sG3
- +36: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
- +37: 0+7c +0 TLS +GLOBAL DEFAULT +11 bg8
- +38: 0+74 +0 TLS +GLOBAL DEFAULT +11 bg6
- +39: 0+68 +0 TLS +GLOBAL DEFAULT +11 bg3
- +40: [0-9a-z]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +41: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
- +42: 0+48 +0 TLS +GLOBAL HIDDEN +10 sh3
- +43: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
- +44: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
- +45: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
- +46: 0+70 +0 TLS +GLOBAL DEFAULT +11 bg5
- +47: 0+58 +0 TLS +GLOBAL HIDDEN +10 sh7
- +48: 0+5c +0 TLS +GLOBAL HIDDEN +10 sh8
- +49: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_offset
- +50: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
- +51: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +8 _start
- +52: 0+4c +0 TLS +GLOBAL HIDDEN +10 sh4
- +53: 0+78 +0 TLS +GLOBAL DEFAULT +11 bg7
- +54: 0+50 +0 TLS +GLOBAL HIDDEN +10 sh5
- +55: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +56: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
- +57: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +8 fn2
- +58: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2
- +59: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
- +60: 0+40 +0 TLS +GLOBAL HIDDEN +10 sh1
- +61: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6
- +62: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7
- +63: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +64: [0-9a-z]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +65: 0+80+190+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +66: 0+44 +0 TLS +GLOBAL HIDDEN +10 sh2
- +67: 0+54 +0 TLS +GLOBAL HIDDEN +10 sh6
- +68: 0+64 +0 TLS +GLOBAL DEFAULT +11 bg2
- +69: 0+60 +0 TLS +GLOBAL DEFAULT +11 bg1
- +70: 0+6c +0 TLS +GLOBAL DEFAULT +11 bg4
+ +[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
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +9 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL +DEFAULT +9 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +9 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL +DEFAULT +9 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +9 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL +DEFAULT +9 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL +DEFAULT +9 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL +DEFAULT +9 sl8
+ +[0-9]+: 0+80 +0 TLS +LOCAL +DEFAULT +10 bl1
+ +[0-9]+: 0+84 +0 TLS +LOCAL +DEFAULT +10 bl2
+ +[0-9]+: 0+88 +0 TLS +LOCAL +DEFAULT +10 bl3
+ +[0-9]+: 0+8c +0 TLS +LOCAL +DEFAULT +10 bl4
+ +[0-9]+: 0+90 +0 TLS +LOCAL +DEFAULT +10 bl5
+ +[0-9]+: 0+94 +0 TLS +LOCAL +DEFAULT +10 bl6
+ +[0-9]+: 0+98 +0 TLS +LOCAL +DEFAULT +10 bl7
+ +[0-9]+: 0+9c +0 TLS +LOCAL +DEFAULT +10 bl8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG3
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
+ +[0-9]+: 0+7c +0 TLS +GLOBAL DEFAULT +10 bg8
+ +[0-9]+: 0+74 +0 TLS +GLOBAL DEFAULT +10 bg6
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +10 bg3
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
+ +[0-9]+: 0+48 +0 TLS +GLOBAL HIDDEN +9 sh3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
+ +[0-9]+: 0+70 +0 TLS +GLOBAL DEFAULT +10 bg5
+ +[0-9]+: 0+58 +0 TLS +GLOBAL HIDDEN +9 sh7
+ +[0-9]+: 0+5c +0 TLS +GLOBAL HIDDEN +9 sh8
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +8 _start
+ +[0-9]+: 0+4c +0 TLS +GLOBAL HIDDEN +9 sh4
+ +[0-9]+: 0+78 +0 TLS +GLOBAL DEFAULT +10 bg7
+ +[0-9]+: 0+50 +0 TLS +GLOBAL HIDDEN +9 sh5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +8 fn2
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
+ +[0-9]+: 0+40 +0 TLS +GLOBAL HIDDEN +9 sh1
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+44 +0 TLS +GLOBAL HIDDEN +9 sh2
+ +[0-9]+: 0+54 +0 TLS +GLOBAL HIDDEN +9 sh6
+ +[0-9]+: 0+64 +0 TLS +GLOBAL DEFAULT +10 bg2
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +10 bg1
+ +[0-9]+: 0+6c +0 TLS +GLOBAL DEFAULT +10 bg4
diff --git a/ld/testsuite/ld-s390/tlsbin_64.sd b/ld/testsuite/ld-s390/tlsbin_64.sd
index 873c4f9..6618e45 100644
--- a/ld/testsuite/ld-s390/tlsbin_64.sd
+++ b/ld/testsuite/ld-s390/tlsbin_64.sd
@@ -8,11 +8,11 @@
.*: file format elf64-s390
Contents of section .got:
- 80001888 [0-9a-f]+ [0-9a-f]+ 00000000 00000000 .*
- 80001898 00000000 00000000 [0-9a-f]+ [0-9a-f]+ .*
- 800018a8 ffffffff ffffff88 00000000 00000000 .*
- 800018b8 00000000 00000000 ffffffff ffffff68 .*
- 800018c8 ffffffff ffffffa8 00000000 00000000 .*
- 800018d8 00000000 00000000 00000000 00000000 .*
- 800018e8 00000000 00000000 00000000 00000000 .*
- 800018f8 00000000 00000000 .*
+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 [0-9a-f]+ [0-9a-f]+ .*
+ [0-9a-f]+ ffffffff ffffff88 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 ffffffff ffffff68 .*
+ [0-9a-f]+ ffffffff ffffffa8 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 .*
diff --git a/ld/testsuite/ld-s390/tlsbin_64.td b/ld/testsuite/ld-s390/tlsbin_64.td
index 0101b6f..dfa7e8d 100644
--- a/ld/testsuite/ld-s390/tlsbin_64.td
+++ b/ld/testsuite/ld-s390/tlsbin_64.td
@@ -8,9 +8,9 @@
.*: file format elf64-s390
Contents of section .tdata:
- 800016e8 00000011 00000012 00000013 00000014 .*
- 800016f8 00000015 00000016 00000017 00000018 .*
- 80001708 00000041 00000042 00000043 00000044 .*
- 80001718 00000045 00000046 00000047 00000048 .*
- 80001728 00000101 00000102 00000103 00000104 .*
- 80001738 00000105 00000106 00000107 00000108 .*
+ [0-9a-f]+ 00000011 00000012 00000013 00000014 .*
+ [0-9a-f]+ 00000015 00000016 00000017 00000018 .*
+ [0-9a-f]+ 00000041 00000042 00000043 00000044 .*
+ [0-9a-f]+ 00000045 00000046 00000047 00000048 .*
+ [0-9a-f]+ 00000101 00000102 00000103 00000104 .*
+ [0-9a-f]+ 00000105 00000106 00000107 00000108 .*
diff --git a/ld/testsuite/ld-s390/tlsbinpic.s b/ld/testsuite/ld-s390/tlsbinpic.s
index 9779c05..e52e3a4 100644
--- a/ld/testsuite/ld-s390/tlsbinpic.s
+++ b/ld/testsuite/ld-s390/tlsbinpic.s
@@ -1,4 +1,5 @@
.section ".tdata", "awT", @progbits
+ .balign 32
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
@@ -30,6 +31,7 @@ sh8: .long 264
.text
.globl fn2
.type fn2,@function
+ .balign 64
fn2:
/* Function prolog */
stm %r6,%r14,24(%r15)
diff --git a/ld/testsuite/ld-s390/tlsbinpic_64.s b/ld/testsuite/ld-s390/tlsbinpic_64.s
index eaeff73..eeda6ca 100644
--- a/ld/testsuite/ld-s390/tlsbinpic_64.s
+++ b/ld/testsuite/ld-s390/tlsbinpic_64.s
@@ -1,4 +1,5 @@
.section ".tdata", "awT", @progbits
+ .balign 32
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
@@ -30,6 +31,7 @@ sh8: .long 264
.text
.globl fn2
.type fn2,@function
+ .balign 64
fn2:
/* Function prolog */
stmg %r6,%r14,48(%r15)
diff --git a/ld/testsuite/ld-s390/tlspic.dd b/ld/testsuite/ld-s390/tlspic.dd
index 71add02..6e9da5d 100644
--- a/ld/testsuite/ld-s390/tlspic.dd
+++ b/ld/testsuite/ld-s390/tlspic.dd
@@ -9,153 +9,181 @@
Disassembly of section .text:
-0+4bc <fn1>:
+0+[0-9a-f]+ <fn1>:
# function prolog
- +4bc: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
- +4c0: a7 d5 00 30 bras %r13,520 <fn1\+0x64>
+ +[0-9a-f]+: 90 6e f0 18 stm %r6,%r14,24\(%r15\)
+ +[0-9a-f]+: a7 d5 00 30 bras %r13,[0-9a-f]+ <fn1\+0x64>
# _GLOBAL_OFFSET_TABLE_-.LT1
- +4c4: 00 00 12 78 .long 0x00001278
+ +[0-9a-f]+: [0-9a-f ]+ .long 0x[0-9a-f]+
# __tls_get_addr@plt-.LT1
- +4c8: ff ff ff d8 .long 0xffffffd8
+ +[0-9a-f]+: [0-9a-f ]+ .long 0x[0-9a-f]+
# sg1@tlsgd
- +4cc: 00 00 00 38 .long 0x00000038
+ +[0-9a-f]+: 00 00 00 38 .long 0x00000038
# sg2@tlsgd
- +4d0: 00 00 00 48 .long 0x00000048
+ +[0-9a-f]+: 00 00 00 48 .long 0x00000048
# sl1@tlsgd
- +4d4: 00 00 00 10 .long 0x00000010
+ +[0-9a-f]+: 00 00 00 10 .long 0x00000010
# sl2@tlsgd
- +4d8: 00 00 00 18 .long 0x00000018
+ +[0-9a-f]+: 00 00 00 18 .long 0x00000018
# sh1@tlsgd
- +4dc: 00 00 00 4c .long 0x0000004c
+ +[0-9a-f]+: 00 00 00 4c .long 0x0000004c
# sh2@tlsgd
- +4e0: 00 00 00 54 .long 0x00000054
+ +[0-9a-f]+: 00 00 00 54 .long 0x00000054
# sH1@tlsgd
- +4e4: 00 00 00 28 .long 0x00000028
+ +[0-9a-f]+: 00 00 00 28 .long 0x00000028
# sH2@tlsgd
- +4e8: 00 00 00 30 .long 0x00000030
+ +[0-9a-f]+: 00 00 00 30 .long 0x00000030
# sl1@tlsldm
- +4ec: 00 00 00 20 .long 0x00000020
+ +[0-9a-f]+: 00 00 00 20 .long 0x00000020
# sl1@dtpoff
- +4f0: 00 00 00 20 .long 0x00000020
+ +[0-9a-f]+: 00 00 00 20 .long 0x00000020
# sl2@dtpoff
- +4f4: 00 00 00 24 .long 0x00000024
+ +[0-9a-f]+: 00 00 00 24 .long 0x00000024
# sh1@tlsldm
- +4f8: 00 00 00 20 .long 0x00000020
+ +[0-9a-f]+: 00 00 00 20 .long 0x00000020
# sh1@dtpoff
- +4fc: 00 00 00 40 .long 0x00000040
+ +[0-9a-f]+: 00 00 00 40 .long 0x00000040
# sh2@dtpoff
- +500: 00 00 00 44 .long 0x00000044
+ +[0-9a-f]+: 00 00 00 44 .long 0x00000044
# sH1@tlsldm
- +504: 00 00 00 20 .long 0x00000020
+ +[0-9a-f]+: 00 00 00 20 .long 0x00000020
# sH1@dtpoff
- +508: 00 00 00 60 .long 0x00000060
+ +[0-9a-f]+: 00 00 00 60 .long 0x00000060
# sH2@dtpoff
- +50c: 00 00 00 64 .long 0x00000064
+ +[0-9a-f]+: 00 00 00 64 .long 0x00000064
# sg2@gotntpoff
- +510: 00 00 00 48 .long 0x00000048
+ +[0-9a-f]+: 00 00 00 48 .long 0x00000048
# sl2@gotntpoff
- +514: 00 00 00 18 .long 0x00000018
+ +[0-9a-f]+: 00 00 00 18 .long 0x00000018
# sh2@gotntpoff
- +518: 00 00 00 54 .long 0x00000054
+ +[0-9a-f]+: 00 00 00 54 .long 0x00000054
# sH2@gotntpoff
- +51c: 00 00 00 30 .long 0x00000030
+ +[0-9a-f]+: 00 00 00 30 .long 0x00000030
# function prolog
- +520: 18 ef lr %r14,%r15
- +522: 58 c0 d0 00 l %r12,0\(%r13\)
- +526: a7 fa ff a0 ahi %r15,-96
- +52a: 41 cc d0 00 la %r12,0\(%r12,%r13\)
- +52e: 50 e0 e0 00 st %r14,0\(%r14\)
+ +[0-9a-f]+: 18 ef lr %r14,%r15
+ +[0-9a-f]+: 58 c0 d0 00 l %r12,0\(%r13\)
+ +[0-9a-f]+: a7 fa ff a0 ahi %r15,-96
+ +[0-9a-f]+: 41 cc d0 00 la %r12,0\(%r12,%r13\)
+ +[0-9a-f]+: 50 e0 e0 00 st %r14,0\(%r14\)
# Extract TCB and load branch offset
- +532: b2 4f 00 90 ear %r9,%a0
- +536: 58 70 d0 04 l %r7,4\(%r13\)
+ +[0-9a-f]+: b2 4f 00 90 ear %r9,%a0
+ +[0-9a-f]+: 58 70 d0 04 l %r7,4\(%r13\)
# GD
- +53a: 58 20 d0 08 l %r2,8\(%r13\)
- +53e: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
- +542: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 08 l %r2,8\(%r13\)
+ +[0-9a-f]+: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE because variable is referenced through IE too
- +546: 58 20 d0 0c l %r2,12\(%r13\)
- +54a: 58 22 c0 00 l %r2,0\(%r2,%r12\)
- +54e: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 0c l %r2,12\(%r13\)
+ +[0-9a-f]+: 58 22 c0 00 l %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD against local variable
- +552: 58 20 d0 10 l %r2,16\(%r13\)
- +556: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
- +55a: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 10 l %r2,16\(%r13\)
+ +[0-9a-f]+: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE against local variable referenced through IE too
- +55e: 58 20 d0 14 l %r2,20\(%r13\)
- +562: 58 22 c0 00 l %r2,0\(%r2,%r12\)
- +566: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 14 l %r2,20\(%r13\)
+ +[0-9a-f]+: 58 22 c0 00 l %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD against hidden and local variable
- +56a: 58 20 d0 18 l %r2,24\(%r13\)
- +56e: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
- +572: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 18 l %r2,24\(%r13\)
+ +[0-9a-f]+: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE against hidden and local variable referenced through
# IE too
- +576: 58 20 d0 1c l %r2,28\(%r13\)
- +57a: 58 22 c0 00 l %r2,0\(%r2,%r12\)
- +57e: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 1c l %r2,28\(%r13\)
+ +[0-9a-f]+: 58 22 c0 00 l %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD against hidden but not local variable
- +582: 58 20 d0 20 l %r2,32\(%r13\)
- +586: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
- +58a: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 20 l %r2,32\(%r13\)
+ +[0-9a-f]+: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE against hidden but not local variable referenced through
# IE too
- +58e: 58 20 d0 24 l %r2,36\(%r13\)
- +592: 58 22 c0 00 l %r2,0\(%r2,%r12\)
- +596: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 20 d0 24 l %r2,36\(%r13\)
+ +[0-9a-f]+: 58 22 c0 00 l %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# LD
- +59a: 58 20 d0 28 l %r2,40\(%r13\)
- +59e: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
- +5a2: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +5a6: 58 40 d0 2c l %r4,44\(%r13\)
- +5aa: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +5ae: 58 40 d0 30 l %r4,48\(%r13\)
- +5b2: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 20 d0 28 l %r2,40\(%r13\)
+ +[0-9a-f]+: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 40 d0 2c l %r4,44\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 40 d0 30 l %r4,48\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# LD against hidden and local variables
- +5b6: 58 20 d0 34 l %r2,52\(%r13\)
- +5ba: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
- +5be: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +5c2: 58 40 d0 38 l %r4,56\(%r13\)
- +5c6: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +5ca: 58 40 d0 34 l %r4,52\(%r13\)
- +5ce: 41 55 30 00 la %r5,0\(%r5,%r3\)
+ +[0-9a-f]+: 58 20 d0 34 l %r2,52\(%r13\)
+ +[0-9a-f]+: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 40 d0 38 l %r4,56\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 40 d0 34 l %r4,52\(%r13\)
+ +[0-9a-f]+: 41 55 30 00 la %r5,0\(%r5,%r3\)
# LD against hidden but not local variables
- +5d2: 58 20 d0 40 l %r2,64\(%r13\)
- +5d6: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
- +5da: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +5de: 58 30 d0 44 l %r3,68\(%r13\)
- +5e2: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +5e6: 58 40 d0 48 l %r4,72\(%r13\)
- +5ea: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 20 d0 40 l %r2,64\(%r13\)
+ +[0-9a-f]+: 4d e7 d0 00 bas %r14,0\(%r7,%r13\)
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: 58 30 d0 44 l %r3,68\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 40 d0 48 l %r4,72\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# IE against global var
- +5ee: 58 30 d0 4c l %r3,76\(%r13\)
- +5f2: 58 33 c0 00 l %r3,0\(%r3,%r12\)
- +5f6: 41 33 30 00 la %r3,0\(%r3,%r3\)
+ +[0-9a-f]+: 58 30 d0 4c l %r3,76\(%r13\)
+ +[0-9a-f]+: 58 33 c0 00 l %r3,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 33 30 00 la %r3,0\(%r3,%r3\)
# IE against local var
- +5fa: 58 30 d0 50 l %r3,80\(%r13\)
- +5fe: 58 43 c0 00 l %r4,0\(%r3,%r12\)
- +602: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 30 d0 50 l %r3,80\(%r13\)
+ +[0-9a-f]+: 58 43 c0 00 l %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# IE against hidden and local var
- +606: 58 30 d0 54 l %r3,84\(%r13\)
- +60a: 58 43 c0 00 l %r4,0\(%r3,%r12\)
- +60e: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 30 d0 54 l %r3,84\(%r13\)
+ +[0-9a-f]+: 58 43 c0 00 l %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# IE against hidden but not local var
- +612: 58 30 d0 58 l %r3,88\(%r13\)
- +616: 58 43 c0 00 l %r4,0\(%r3,%r12\)
- +61a: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: 58 30 d0 58 l %r3,88\(%r13\)
+ +[0-9a-f]+: 58 43 c0 00 l %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# IE against global var with small got access (no optimization)
- +61e: 58 30 c0 34 l %r3,52\(%r12\)
- +622: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 c0 34 l %r3,52\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against local var with small got access (no optimization)
- +626: 58 30 c0 1c l %r3,28\(%r12\)
- +62a: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 c0 1c l %r3,28\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against hidden and local var with small got access
# (no optimization)
- +62e: 58 30 c0 40 l %r3,64\(%r12\)
- +632: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 c0 40 l %r3,64\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against hidden but not local var with small got access
# (no optimization)
- +636: 58 30 c0 44 l %r3,68\(%r12\)
- +63a: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: 58 30 c0 44 l %r3,68\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# function prolog
- +63e: 98 6e f0 78 lm %r6,%r14,120\(%r15\)
- +642: 07 fe br %r14
+ +[0-9a-f]+: 98 6e f0 78 lm %r6,%r14,120\(%r15\)
+ +[0-9a-f]+: 07 fe br %r14
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
diff --git a/ld/testsuite/ld-s390/tlspic.rd b/ld/testsuite/ld-s390/tlspic.rd
index 6c7468b..4764023 100644
--- a/ld/testsuite/ld-s390/tlspic.rd
+++ b/ld/testsuite/ld-s390/tlspic.rd
@@ -5,7 +5,7 @@
#readelf: -Ssrl
#target: s390-*-*
-There are 18 section headers, starting at offset 0x[0-9a-f]+:
+There are 17 section headers, starting at offset 0x[0-9a-f]+:
Section Headers:
\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
@@ -16,32 +16,31 @@ Section Headers:
\[ 4\] .rela.dyn +.*
\[ 5\] .rela.plt +.*
\[ 6\] .plt +.*
- \[ 7\] .text +PROGBITS +0+4bc 0+4bc 0+188 00 AX 0 +0 4
- \[ 8\] .data +.*
- \[ 9\] .tdata +PROGBITS +0+1644 0+644 0+60 00 WAT 0 +0 1
- \[10\] .tbss +NOBITS +0+16a4 0+6a4 0+20 00 WAT 0 +0 1
- \[11\] .dynamic +DYNAMIC +0+16a4 0+6a4 0+98 08 WA 3 +0 4
- \[12\] .got +PROGBITS +0+173c 0+73c 0+58 04 WA 0 +0 4
- \[13\] .sbss +.*
- \[14\] .bss +.*
- \[15\] .shstrtab +.*
- \[16\] .symtab +.*
- \[17\] .strtab +.*
+ \[ 7\] .text +PROGBITS +.*
+ \[ 8\] .tdata +PROGBITS +0+1600 0+600 0+60 00 WAT 0 +0 32
+ \[ 9\] .tbss +NOBITS +0+1660 0+660 0+20 00 WAT 0 +0 1
+ \[10\] .dynamic +DYNAMIC +0+1660 0+660 0+98 08 WA 3 +0 4
+ \[11\] .got +PROGBITS +0+16f8 0+6f8 0+58 04 WA 0 +0 4
+ \[12\] .data +.*
+ \[13\] .bss +.*
+ \[14\] .shstrtab +.*
+ \[15\] .symtab +.*
+ \[16\] .strtab +.*
Key to Flags:
.*
.*
.*
Elf file type is DYN \(Shared object file\)
-Entry point 0x4bc
+Entry point 0x[0-9a-f]+
There are 4 program headers, starting at offset [0-9]+
Program Headers:
Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz Flg Align
LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x1000
- LOAD +0x0+644 0x0+1644 0x0+1644 0x00150 0x00150 RW 0x1000
- DYNAMIC +0x0+6a4 0x0+16a4 0x0+16a4 0x0+98 0x0+98 RW 0x4
- TLS +0x0+644 0x0+1644 0x0+1644 0x0+60 0x0+80 R +0x1
+ LOAD +0x0+600 0x0+1600 0x0+1600 0x00150 0x00150 RW 0x1000
+ DYNAMIC +0x0+660 0x0+1660 0x0+1660 0x0+98 0x0+98 RW 0x4
+ TLS +0x0+600 0x0+1600 0x0+1600 0x0+60 0x0+80 R +0x20
Section to Segment mapping:
Segment Sections...
@@ -50,7 +49,7 @@ Program Headers:
+02 +.tbss .dynamic
+03 +.tdata .tbss
-Relocation section '.rela.dyn' at offset 0x3c8 contains 14 entries:
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
Offset +Info +Type +Sym.Value Sym. Name \+ Addend
[0-9a-f]+ 0+36 R_390_TLS_DTPMOD +0+
[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+24
@@ -62,104 +61,94 @@ Relocation section '.rela.dyn' at offset 0x3c8 contains 14 entries:
[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+70
[0-9a-f]+ 0+36 R_390_TLS_DTPMOD +0+
[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+44
-[0-9a-f]+ 0+1338 R_390_TLS_TPOFF +0+10 +sg5 \+ 0
-[0-9a-f]+ 0+1536 R_390_TLS_DTPMOD 0+ +sg1 \+ 0
-[0-9a-f]+ 0+1537 R_390_TLS_DTPOFF 0+ +sg1 \+ 0
-[0-9a-f]+ 0+1838 R_390_TLS_TPOFF +0+4 +sg2 \+ 0
+[0-9a-f]+ 0+a38 R_390_TLS_TPOFF +0+10 +sg5 \+ 0
+[0-9a-f]+ 0+c36 R_390_TLS_DTPMOD 0+ +sg1 \+ 0
+[0-9a-f]+ 0+c37 R_390_TLS_DTPOFF 0+ +sg1 \+ 0
+[0-9a-f]+ 0+f38 R_390_TLS_TPOFF +0+4 +sg2 \+ 0
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset +Info +Type +Sym.Value Sym. Name \+ Addend
-[0-9a-f]+ 0+140b R_390_JMP_SLOT +0+ +__tls_get_offset \+ 0
+[0-9a-f]+ 0+b0b R_390_JMP_SLOT +0+ +__tls_get_offset \+ 0
-Symbol table '.dynsym' contains 30 entries:
+Symbol table '.dynsym' contains 21 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13
- +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14
- +15: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +16: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +17: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +18: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +19: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +20: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_offset
- +21: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +22: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
- +23: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +24: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +25: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +26: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +27: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +28: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +29: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND
+ +[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 +12
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
-Symbol table '.symtab' contains 57 entries:
+Symbol table '.symtab' contains 56 entries:
+Num: +Value Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13
- +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14
- +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15
- +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16
- +17: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17
- +18: 0+20 +0 TLS +LOCAL DEFAULT +9 sl1
- +19: 0+24 +0 TLS +LOCAL DEFAULT +9 sl2
- +20: 0+28 +0 TLS +LOCAL DEFAULT +9 sl3
- +21: 0+2c +0 TLS +LOCAL DEFAULT +9 sl4
- +22: 0+30 +0 TLS +LOCAL DEFAULT +9 sl5
- +23: 0+34 +0 TLS +LOCAL DEFAULT +9 sl6
- +24: 0+38 +0 TLS +LOCAL DEFAULT +9 sl7
- +25: 0+3c +0 TLS +LOCAL DEFAULT +9 sl8
- +26: 0+60 +0 TLS +LOCAL HIDDEN +10 sH1
- +27: 0+48 +0 TLS +LOCAL HIDDEN +9 sh3
- +28: 0+64 +0 TLS +LOCAL HIDDEN +10 sH2
- +29: 0+78 +0 TLS +LOCAL HIDDEN +10 sH7
- +30: 0+58 +0 TLS +LOCAL HIDDEN +9 sh7
- +31: 0+5c +0 TLS +LOCAL HIDDEN +9 sh8
- +32: 0+6c +0 TLS +LOCAL HIDDEN +10 sH4
- +33: 0+4c +0 TLS +LOCAL HIDDEN +9 sh4
- +34: 0+68 +0 TLS +LOCAL HIDDEN +10 sH3
- +35: 0+50 +0 TLS +LOCAL HIDDEN +9 sh5
- +36: 0+70 +0 TLS +LOCAL HIDDEN +10 sH5
- +37: 0+74 +0 TLS +LOCAL HIDDEN +10 sH6
- +38: 0+7c +0 TLS +LOCAL HIDDEN +10 sH8
- +39: 0+40 +0 TLS +LOCAL HIDDEN +9 sh1
- +40: 0+44 +0 TLS +LOCAL HIDDEN +9 sh2
- +41: 0+54 +0 TLS +LOCAL HIDDEN +9 sh6
- +42: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +43: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +44: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +45: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +46: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +47: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_offset
- +48: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +49: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
- +50: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +51: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +52: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +53: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +54: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +55: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +56: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[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
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16
+ +[0-9]+: 0+20 +0 TLS +LOCAL DEFAULT +8 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL DEFAULT +8 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL DEFAULT +8 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL DEFAULT +8 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL DEFAULT +8 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL DEFAULT +8 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL DEFAULT +8 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL DEFAULT +8 sl8
+ +[0-9]+: 0+60 +0 TLS +LOCAL HIDDEN +9 sH1
+ +[0-9]+: 0+48 +0 TLS +LOCAL HIDDEN +8 sh3
+ +[0-9]+: 0+64 +0 TLS +LOCAL HIDDEN +9 sH2
+ +[0-9]+: 0+78 +0 TLS +LOCAL HIDDEN +9 sH7
+ +[0-9]+: 0+58 +0 TLS +LOCAL HIDDEN +8 sh7
+ +[0-9]+: 0+5c +0 TLS +LOCAL HIDDEN +8 sh8
+ +[0-9]+: 0+6c +0 TLS +LOCAL HIDDEN +9 sH4
+ +[0-9]+: 0+4c +0 TLS +LOCAL HIDDEN +8 sh4
+ +[0-9]+: 0+68 +0 TLS +LOCAL HIDDEN +9 sH3
+ +[0-9]+: 0+50 +0 TLS +LOCAL HIDDEN +8 sh5
+ +[0-9]+: 0+70 +0 TLS +LOCAL HIDDEN +9 sH5
+ +[0-9]+: 0+74 +0 TLS +LOCAL HIDDEN +9 sH6
+ +[0-9]+: 0+7c +0 TLS +LOCAL HIDDEN +9 sH8
+ +[0-9]+: 0+40 +0 TLS +LOCAL HIDDEN +8 sh1
+ +[0-9]+: 0+44 +0 TLS +LOCAL HIDDEN +8 sh2
+ +[0-9]+: 0+54 +0 TLS +LOCAL HIDDEN +8 sh6
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
diff --git a/ld/testsuite/ld-s390/tlspic.sd b/ld/testsuite/ld-s390/tlspic.sd
index 04763dc..6e32dea 100644
--- a/ld/testsuite/ld-s390/tlspic.sd
+++ b/ld/testsuite/ld-s390/tlspic.sd
@@ -8,9 +8,9 @@
.*: +file format elf32-s390
Contents of section .got:
- 173c [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .*
- 174c 00000000 00000020 00000000 00000000 .*
- 175c 00000000 00000000 00000000 00000060 .*
- 176c 00000000 00000000 00000000 00000000 .*
- 177c 00000000 00000000 00000000 00000000 .*
- 178c 00000040 00000000 +.*
+ [0-9a-f]+ [0-9a-f]+ 00000000 00000000 [0-9a-f]+ .*
+ [0-9a-f]+ 00000000 00000020 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000060 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000040 00000000 +.*
diff --git a/ld/testsuite/ld-s390/tlspic.td b/ld/testsuite/ld-s390/tlspic.td
index 161de76..265dbe2 100644
--- a/ld/testsuite/ld-s390/tlspic.td
+++ b/ld/testsuite/ld-s390/tlspic.td
@@ -8,9 +8,9 @@
.*: +file format elf32-s390
Contents of section .tdata:
- 1644 00000011 00000012 00000013 00000014 .*
- 1654 00000015 00000016 00000017 00000018 .*
- 1664 00000041 00000042 00000043 00000044 .*
- 1674 00000045 00000046 00000047 00000048 .*
- 1684 00000101 00000102 00000103 00000104 .*
- 1694 00000105 00000106 00000107 00000108 .*
+ [0-9a-f]+ 00000011 00000012 00000013 00000014 .*
+ [0-9a-f]+ 00000015 00000016 00000017 00000018 .*
+ [0-9a-f]+ 00000041 00000042 00000043 00000044 .*
+ [0-9a-f]+ 00000045 00000046 00000047 00000048 .*
+ [0-9a-f]+ 00000101 00000102 00000103 00000104 .*
+ [0-9a-f]+ 00000105 00000106 00000107 00000108 .*
diff --git a/ld/testsuite/ld-s390/tlspic1.s b/ld/testsuite/ld-s390/tlspic1.s
index e24d129..28b9c3a 100644
--- a/ld/testsuite/ld-s390/tlspic1.s
+++ b/ld/testsuite/ld-s390/tlspic1.s
@@ -1,4 +1,5 @@
.section ".tdata", "awT", @progbits
+ .balign 32
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
@@ -29,6 +30,7 @@ sh8: .long 264
.text
.globl fn1
.type fn1,@function
+ .balign 64
fn1:
/* Funtion prolog */
stm %r6,%r14,24(%r15)
diff --git a/ld/testsuite/ld-s390/tlspic1_64.s b/ld/testsuite/ld-s390/tlspic1_64.s
index 350b51d..4e50008 100644
--- a/ld/testsuite/ld-s390/tlspic1_64.s
+++ b/ld/testsuite/ld-s390/tlspic1_64.s
@@ -1,4 +1,5 @@
.section ".tdata", "awT", @progbits
+ .balign 32
.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
@@ -29,6 +30,7 @@ sh8: .long 264
.text
.globl fn1
.type fn1,@function
+ .balign 64
fn1:
/* Funtion prolog */
stmg %r6,%r14,48(%r15)
diff --git a/ld/testsuite/ld-s390/tlspic_64.dd b/ld/testsuite/ld-s390/tlspic_64.dd
index 423cdf9..fea1671 100644
--- a/ld/testsuite/ld-s390/tlspic_64.dd
+++ b/ld/testsuite/ld-s390/tlspic_64.dd
@@ -9,186 +9,194 @@
Disassembly of section .text:
-0+790 <fn1>:
+0+[0-9a-f]+ <fn1>:
# function prolog
- +790: eb 6e f0 30 00 24 stmg %r6,%r14,48\(%r15\)
- +796: a7 d5 00 56 bras %r13,842 <fn1\+0xb2>
+ +[0-9a-f]+: eb 6e f0 30 00 24 stmg %r6,%r14,48\(%r15\)
+ +[0-9a-f]+: a7 d5 00 56 bras %r13,[0-9a-f]+ <fn1\+0xb2>
# sg1@tlsgd
- +79a: 00 00 00 00 .long 0x00000000
- +79e: 00 00 00 70 .long 0x00000070
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 70 .long 0x00000070
# sg2@tlsgd
- +7a2: 00 00 00 00 .long 0x00000000
- +7a6: 00 00 00 90 .long 0x00000090
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 90 .long 0x00000090
# sl1@tlsgd
- +7aa: 00 00 00 00 .long 0x00000000
- +7ae: 00 00 00 20 .long 0x00000020
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 20 .long 0x00000020
# sl2@tlsgd
- +7b2: 00 00 00 00 .long 0x00000000
- +7b6: 00 00 00 30 .long 0x00000030
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 30 .long 0x00000030
# sh1@tlsgd
- +7ba: 00 00 00 00 .long 0x00000000
- +7be: 00 00 00 98 .long 0x00000098
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 98 .long 0x00000098
# sh2@tlsgd
- +7c2: 00 00 00 00 .long 0x00000000
- +7c6: 00 00 00 a8 .long 0x000000a8
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 a8 .long 0x000000a8
# sH1@tlsgd
- +7ca: 00 00 00 00 .long 0x00000000
- +7ce: 00 00 00 50 .long 0x00000050
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 50 .long 0x00000050
# sH2@tlsgd
- +7d2: 00 00 00 00 .long 0x00000000
- +7d6: 00 00 00 60 .long 0x00000060
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 60 .long 0x00000060
# sl1@tlsldm
- +7da: 00 00 00 00 .long 0x00000000
- +7de: 00 00 00 40 .long 0x00000040
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 40 .long 0x00000040
# sl1@dtpoff
- +7e2: 00 00 00 00 .long 0x00000000
- +7e6: 00 00 00 20 .long 0x00000020
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 20 .long 0x00000020
# sl2@dtpoff
- +7ea: 00 00 00 00 .long 0x00000000
- +7ee: 00 00 00 24 .long 0x00000024
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 24 .long 0x00000024
# sh1@tlsldm
- +7f2: 00 00 00 00 .long 0x00000000
- +7f6: 00 00 00 40 .long 0x00000040
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 40 .long 0x00000040
# sh1@dtpoff
- +7fa: 00 00 00 00 .long 0x00000000
- +7fe: 00 00 00 40 .long 0x00000040
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 40 .long 0x00000040
# sh2@dtpoff
- +802: 00 00 00 00 .long 0x00000000
- +806: 00 00 00 44 .long 0x00000044
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 44 .long 0x00000044
# sH1@tlsldm
- +80a: 00 00 00 00 .long 0x00000000
- +80e: 00 00 00 40 .long 0x00000040
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 40 .long 0x00000040
# sH1@dtpoff
- +812: 00 00 00 00 .long 0x00000000
- +816: 00 00 00 60 .long 0x00000060
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 60 .long 0x00000060
# sH2@dtpoff
- +81a: 00 00 00 00 .long 0x00000000
- +81e: 00 00 00 64 .long 0x00000064
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 64 .long 0x00000064
# sg2@gotntpoff
- +822: 00 00 00 00 .long 0x00000000
- +826: 00 00 00 90 .long 0x00000090
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 90 .long 0x00000090
# sl2@gotntpoff
- +82a: 00 00 00 00 .long 0x00000000
- +82e: 00 00 00 30 .long 0x00000030
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 30 .long 0x00000030
# sh2@gotntpoff
- +832: 00 00 00 00 .long 0x00000000
- +836: 00 00 00 a8 .long 0x000000a8
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 a8 .long 0x000000a8
# sH2@gotntpoff
- +83a: 00 00 00 00 .long 0x00000000
- +83e: 00 00 00 60 .long 0x00000060
+ +[0-9a-f]+: 00 00 00 00 .long 0x00000000
+ +[0-9a-f]+: 00 00 00 60 .long 0x00000060
# function prolog
- +842: b9 04 00 ef lgr %r14,%r15
- +846: c0 c0 00 00 09 a5 larl %r12,1b90 <_GLOBAL_OFFSET_TABLE_>
- +84c: a7 fb ff 60 aghi %r15,-160
- +850: e3 e0 e0 00 00 24 stg %r14,0\(%r14\)
+ +[0-9a-f]+: b9 04 00 ef lgr %r14,%r15
+ +[0-9a-f]+: c0 c0 [0-9a-f ]+ larl %r12,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_>
+ +[0-9a-f]+: a7 fb ff 60 aghi %r15,-160
+ +[0-9a-f]+: e3 e0 e0 00 00 24 stg %r14,0\(%r14\)
# extract TCB
- +856: b2 4f 00 90 ear %r9,%a0
- +85a: eb 94 00 20 00 0d sllg %r9,%r4,32
- +860: b2 4f 00 91 ear %r9,%a1
+ +[0-9a-f]+: b2 4f 00 90 ear %r9,%a0
+ +[0-9a-f]+: eb 94 00 20 00 0d sllg %r9,%r4,32
+ +[0-9a-f]+: b2 4f 00 91 ear %r9,%a1
# GD
- +864: e3 20 d0 00 00 04 lg %r2,0\(%r13\)
- +86a: c0 e5 ff ff ff 83 brasl %r14,770 <sH8\+0x6f4>
- +870: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 00 00 04 lg %r2,0\(%r13\)
+ +[0-9a-f]+: c0 e5 [0-9a-f ]+ brasl %r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE because variable is referenced through IE too
- +874: e3 20 d0 08 00 04 lg %r2,8\(%r13\)
- +87a: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
- +880: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 08 00 04 lg %r2,8\(%r13\)
+ +[0-9a-f]+: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD against local variable
- +884: e3 20 d0 10 00 04 lg %r2,16\(%r13\)
- +88a: c0 e5 ff ff ff 73 brasl %r14,770 <sH8\+0x6f4>
- +890: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 10 00 04 lg %r2,16\(%r13\)
+ +[0-9a-f]+: c0 e5 [0-9a-f ]+ brasl %r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE against local variable referenced through IE too
- +894: e3 20 d0 18 00 04 lg %r2,24\(%r13\)
- +89a: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
- +8a0: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 18 00 04 lg %r2,24\(%r13\)
+ +[0-9a-f]+: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD against hidden and local variable
- +8a4: e3 20 d0 20 00 04 lg %r2,32\(%r13\)
- +8aa: c0 e5 ff ff ff 63 brasl %r14,770 <sH8\+0x6f4>
- +8b0: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 20 00 04 lg %r2,32\(%r13\)
+ +[0-9a-f]+: c0 e5 [0-9a-f ]+ brasl %r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE against hidden and local variable referenced through
# IE too
- +8b4: e3 20 d0 28 00 04 lg %r2,40\(%r13\)
- +8ba: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
- +8c0: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 28 00 04 lg %r2,40\(%r13\)
+ +[0-9a-f]+: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD against hidden but not local variable
- +8c4: e3 20 d0 30 00 04 lg %r2,48\(%r13\)
- +8ca: c0 e5 ff ff ff 53 brasl %r14,770 <sH8\+0x6f4>
- +8d0: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 30 00 04 lg %r2,48\(%r13\)
+ +[0-9a-f]+: c0 e5 [0-9a-f ]+ brasl %r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# GD -> IE against hidden but not local variable referenced through
# IE too
- +8d4: e3 20 d0 38 00 04 lg %r2,56\(%r13\)
- +8da: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
- +8e0: 41 22 90 00 la %r2,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 20 d0 38 00 04 lg %r2,56\(%r13\)
+ +[0-9a-f]+: e3 22 c0 00 00 04 lg %r2,0\(%r2,%r12\)
+ +[0-9a-f]+: 41 22 90 00 la %r2,0\(%r2,%r9\)
# LD
- +8e4: e3 20 d0 40 00 04 lg %r2,64\(%r13\)
- +8ea: c0 e5 ff ff ff 43 brasl %r14,770 <sH8\+0x6f4>
- +8f0: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +8f4: e3 40 d0 48 00 04 lg %r4,72\(%r13\)
- +8fa: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +8fe: e3 40 d0 50 00 04 lg %r4,80\(%r13\)
- +904: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 20 d0 40 00 04 lg %r2,64\(%r13\)
+ +[0-9a-f]+: c0 e5 [0-9a-f ]+ brasl %r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 40 d0 48 00 04 lg %r4,72\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 40 d0 50 00 04 lg %r4,80\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# LD against hidden and local variables
- +908: e3 20 d0 58 00 04 lg %r2,88\(%r13\)
- +90e: c0 e5 ff ff ff 31 brasl %r14,770 <sH8\+0x6f4>
- +914: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +918: e3 40 d0 60 00 04 lg %r4,96\(%r13\)
- +91e: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +922: e3 40 d0 68 00 04 lg %r4,104\(%r13\)
- +928: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 20 d0 58 00 04 lg %r2,88\(%r13\)
+ +[0-9a-f]+: c0 e5 [0-9a-f ]+ brasl %r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 40 d0 60 00 04 lg %r4,96\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 40 d0 68 00 04 lg %r4,104\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# LD against hidden but not local variables
- +92c: e3 20 d0 70 00 04 lg %r2,112\(%r13\)
- +932: c0 e5 ff ff ff 1f brasl %r14,770 <sH8\+0x6f4>
- +938: 41 32 90 00 la %r3,0\(%r2,%r9\)
- +93c: e3 40 d0 78 00 04 lg %r4,120\(%r13\)
- +942: 41 54 30 00 la %r5,0\(%r4,%r3\)
- +946: e3 40 d0 80 00 04 lg %r4,128\(%r13\)
- +94c: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 20 d0 70 00 04 lg %r2,112\(%r13\)
+ +[0-9a-f]+: c0 e5 [0-9a-f ]+ brasl %r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+: 41 32 90 00 la %r3,0\(%r2,%r9\)
+ +[0-9a-f]+: e3 40 d0 78 00 04 lg %r4,120\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
+ +[0-9a-f]+: e3 40 d0 80 00 04 lg %r4,128\(%r13\)
+ +[0-9a-f]+: 41 54 30 00 la %r5,0\(%r4,%r3\)
# IE against global var
- +950: e3 30 d0 88 00 04 lg %r3,136\(%r13\)
- +956: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
- +95c: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 d0 88 00 04 lg %r3,136\(%r13\)
+ +[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against local var
- +960: e3 30 d0 90 00 04 lg %r3,144\(%r13\)
- +966: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
- +96c: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 90 00 04 lg %r3,144\(%r13\)
+ +[0-9a-f]+: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against hidden and local var
- +970: e3 30 d0 98 00 04 lg %r3,152\(%r13\)
- +976: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
- +97c: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 98 00 04 lg %r3,152\(%r13\)
+ +[0-9a-f]+: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against hidden but not local var
- +980: e3 30 d0 a0 00 04 lg %r3,160\(%r13\)
- +986: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
- +98c: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: e3 30 d0 a0 00 04 lg %r3,160\(%r13\)
+ +[0-9a-f]+: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against global var with larl got access
- +990: c0 30 00 00 09 34 larl %r3,1bf8 <\_GLOBAL\_OFFSET\_TABLE\_\+0x68>
- +996: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
- +99c: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x68>
+ +[0-9a-f]+: e3 33 c0 00 00 04 lg %r3,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against local var with larl got access
- +9a0: c0 30 00 00 09 14 larl %r3,1bc8 <\_GLOBAL\_OFFSET\_TABLE\_\+0x38>
- +9a6: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
- +9ac: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x38>
+ +[0-9a-f]+: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against hidden and local var with larl got access
- +9b0: c0 30 00 00 09 30 larl %r3,1c10 <\_GLOBAL\_OFFSET\_TABLE\_\+0x80>
- +9b6: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
- +9bc: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x80>
+ +[0-9a-f]+: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against hidden but not local var with larl got access
- +9c0: c0 30 00 00 09 2c larl %r3,1c18 <\_GLOBAL\_OFFSET\_TABLE\_\+0x88>
- +9c6: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
- +9cc: 41 54 90 00 la %r5,0\(%r4,%r9\)
+ +[0-9a-f]+: c0 30 [0-9a-f ]+ larl %r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x88>
+ +[0-9a-f]+: e3 43 c0 00 00 04 lg %r4,0\(%r3,%r12\)
+ +[0-9a-f]+: 41 54 90 00 la %r5,0\(%r4,%r9\)
# IE against global var with small got access (no optimization)
- +9d0: e3 30 c0 68 00 04 lg %r3,104\(%r12\)
- +9d6: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 c0 68 00 04 lg %r3,104\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against local var with small got access (no optimization)
- +9da: e3 30 c0 38 00 04 lg %r3,56\(%r12\)
- +9e0: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 c0 38 00 04 lg %r3,56\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against hidden and local var with small got access
# (no optimization)
- +9e4: e3 30 c0 80 00 04 lg %r3,128\(%r12\)
- +9ea: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 c0 80 00 04 lg %r3,128\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# IE against hidden but not local var with small got access
# (no optimization)
- +9ee: e3 30 c0 88 00 04 lg %r3,136\(%r12\)
- +9f4: 41 33 90 00 la %r3,0\(%r3,%r9\)
+ +[0-9a-f]+: e3 30 c0 88 00 04 lg %r3,136\(%r12\)
+ +[0-9a-f]+: 41 33 90 00 la %r3,0\(%r3,%r9\)
# function epilog
- +9f8: eb 6e f0 d0 00 04 lmg %r6,%r14,208\(%r15\)
- +9fe: 07 fe br %r14
+ +[0-9a-f]+: eb 6e f0 d0 00 04 lmg %r6,%r14,208\(%r15\)
+ +[0-9a-f]+: 07 fe br %r14
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
+ +[0-9a-f]+: 07 07 bcr 0,%r7
diff --git a/ld/testsuite/ld-s390/tlspic_64.rd b/ld/testsuite/ld-s390/tlspic_64.rd
index e37a62a..144903d 100644
--- a/ld/testsuite/ld-s390/tlspic_64.rd
+++ b/ld/testsuite/ld-s390/tlspic_64.rd
@@ -5,7 +5,7 @@
#readelf: -WSsrl
#target: s390x-*-*
-There are 18 section headers, starting at offset 0x[0-9a-f]+:
+There are 17 section headers, starting at offset 0x[0-9a-f]+:
Section Headers:
\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
@@ -16,32 +16,31 @@ Section Headers:
\[ 4\] .rela.dyn +.*
\[ 5\] .rela.plt +.*
\[ 6\] .plt +.*
- \[ 7\] .text +PROGBITS +0+790 0+790 0+270 00 +AX +0 +0 +4
- \[ 8\] .data +.*
- \[ 9\] .tdata +PROGBITS +0+1a00 0+a00 0+60 00 WAT +0 +0 +1
- \[10\] .tbss +NOBITS +0+1a60 0+a60 0+20 00 WAT +0 +0 +1
- \[11\] .dynamic +DYNAMIC +0+1a60 0+a60 0+130 10 +WA +3 +0 +8
- \[12\] .got +PROGBITS +0+1b90 0+b90 0+b0 08 +WA +0 +0 +8
- \[13\] .sbss +.*
- \[14\] .bss +.*
- \[15\] .shstrtab +.*
- \[16\] .symtab +.*
- \[17\] .strtab +.*
+ \[ 7\] .text +PROGBITS +.*
+ \[ 8\] .tdata +PROGBITS +0+1900 0+900 0+60 00 WAT +0 +0 +32
+ \[ 9\] .tbss +NOBITS +0+1960 0+960 0+20 00 WAT +0 +0 +1
+ \[10\] .dynamic +DYNAMIC +0+1960 0+960 0+130 10 +WA +3 +0 +8
+ \[11\] .got +PROGBITS +0+1a90 0+a90 0+b0 08 +WA +0 +0 +8
+ \[12\] .data +.*
+ \[13\] .bss +.*
+ \[14\] .shstrtab +.*
+ \[15\] .symtab +.*
+ \[16\] .strtab +.*
Key to Flags:
.*
.*
.*
Elf file type is DYN \(Shared object file\)
-Entry point 0x790
+Entry point 0x[0-9a-f]+
There are 4 program headers, starting at offset [0-9]+
Program Headers:
Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x1000
- LOAD +0x0+a00 0x0+1a00 0x0+1a00 0x0+240 0x0+240 RW +0x1000
- DYNAMIC +0x0+a60 0x0+1a60 0x0+1a60 0x0+130 0x0+130 RW +0x8
- TLS +0x0+a00 0x0+1a00 0x0+1a00 0x0+60 0x0+80 R +0x1
+ LOAD +0x0+900 0x0+1900 0x0+1900 0x0+240 0x0+240 RW +0x1000
+ DYNAMIC +0x0+960 0x0+1960 0x0+1960 0x0+130 0x0+130 RW +0x8
+ TLS +0x0+900 0x0+1900 0x0+1900 0x0+60 0x0+80 R +0x20
Section to Segment mapping:
Segment Sections...
@@ -52,114 +51,104 @@ Program Headers:
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend
-[0-9a-z]+ 0+36 R_390_TLS_DTPMOD +0+
-[0-9a-z]+ 0+38 R_390_TLS_TPOFF +0+24
-[0-9a-z]+ 0+38 R_390_TLS_TPOFF +0+30
-[0-9a-z]+ 0+36 R_390_TLS_DTPMOD +0+
-[0-9a-z]+ 0+36 R_390_TLS_DTPMOD +0+
-[0-9a-z]+ 0+38 R_390_TLS_TPOFF +0+64
-[0-9a-z]+ 0+38 R_390_TLS_TPOFF +0+50
-[0-9a-z]+ 0+38 R_390_TLS_TPOFF +0+70
-[0-9a-z]+ 0+36 R_390_TLS_DTPMOD +0+
-[0-9a-z]+ 0+38 R_390_TLS_TPOFF +0+44
-[0-9a-z]+ 0+130+38 R_390_TLS_TPOFF +0+10 sg5 \+ 0
-[0-9a-z]+ 0+150+36 R_390_TLS_DTPMOD +0+ sg1 \+ 0
-[0-9a-z]+ 0+150+37 R_390_TLS_DTPOFF +0+ sg1 \+ 0
-[0-9a-z]+ 0+180+38 R_390_TLS_TPOFF +0+4 sg2 \+ 0
+[0-9a-f]+ 0+36 R_390_TLS_DTPMOD +0+
+[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+24
+[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+30
+[0-9a-f]+ 0+36 R_390_TLS_DTPMOD +0+
+[0-9a-f]+ 0+36 R_390_TLS_DTPMOD +0+
+[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+64
+[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+50
+[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+70
+[0-9a-f]+ 0+36 R_390_TLS_DTPMOD +0+
+[0-9a-f]+ 0+38 R_390_TLS_TPOFF +0+44
+[0-9a-f]+ 0+a0+38 R_390_TLS_TPOFF +0+10 sg5 \+ 0
+[0-9a-f]+ 0+c0+36 R_390_TLS_DTPMOD +0+ sg1 \+ 0
+[0-9a-f]+ 0+c0+37 R_390_TLS_DTPOFF +0+ sg1 \+ 0
+[0-9a-f]+ 0+f0+38 R_390_TLS_TPOFF +0+4 sg2 \+ 0
-Relocation section '.rela.plt' at offset 0x738 contains 1 entries:
+Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
+Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend
-0+1ba8 0+140+b R_390_JMP_SLOT +0+ __tls_get_offset \+ 0
+[0-9a-f]+ 0+b0+b R_390_JMP_SLOT +0+ __tls_get_offset \+ 0
-Symbol table '.dynsym' contains 30 entries:
+Symbol table '.dynsym' contains 21 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND
- +1: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +1
- +2: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +2
- +3: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +3
- +4: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +4
- +5: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +5
- +6: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +6
- +7: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +7
- +8: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +8
- +9: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +9
- +10: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +10
- +11: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +11
- +12: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +12
- +13: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +13
- +14: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +14
- +15: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +16: [0-9a-z]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +17: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +18: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +19: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +20: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_offset
- +21: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +22: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
- +23: [0-9a-z]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +24: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +25: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +26: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +27: [0-9a-z]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +28: [0-9a-z]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +29: 0+1c40 +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND
+ +[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 +12
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
-Symbol table '.symtab' contains 57 entries:
+Symbol table '.symtab' contains 56 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND
- +1: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +1
- +2: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +2
- +3: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +3
- +4: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +4
- +5: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +5
- +6: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +6
- +7: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +7
- +8: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +8
- +9: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +9
- +10: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +10
- +11: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +11
- +12: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +12
- +13: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +13
- +14: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +14
- +15: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +15
- +16: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +16
- +17: [0-9a-z]+ +0 SECTION LOCAL DEFAULT +17
- +18: 0+20 +0 TLS +LOCAL DEFAULT +9 sl1
- +19: 0+24 +0 TLS +LOCAL DEFAULT +9 sl2
- +20: 0+28 +0 TLS +LOCAL DEFAULT +9 sl3
- +21: 0+2c +0 TLS +LOCAL DEFAULT +9 sl4
- +22: 0+30 +0 TLS +LOCAL DEFAULT +9 sl5
- +23: 0+34 +0 TLS +LOCAL DEFAULT +9 sl6
- +24: 0+38 +0 TLS +LOCAL DEFAULT +9 sl7
- +25: 0+3c +0 TLS +LOCAL DEFAULT +9 sl8
- +26: 0+60 +0 TLS +LOCAL HIDDEN +10 sH1
- +27: 0+48 +0 TLS +LOCAL HIDDEN +9 sh3
- +28: 0+64 +0 TLS +LOCAL HIDDEN +10 sH2
- +29: 0+78 +0 TLS +LOCAL HIDDEN +10 sH7
- +30: 0+58 +0 TLS +LOCAL HIDDEN +9 sh7
- +31: 0+5c +0 TLS +LOCAL HIDDEN +9 sh8
- +32: 0+6c +0 TLS +LOCAL HIDDEN +10 sH4
- +33: 0+4c +0 TLS +LOCAL HIDDEN +9 sh4
- +34: 0+68 +0 TLS +LOCAL HIDDEN +10 sH3
- +35: 0+50 +0 TLS +LOCAL HIDDEN +9 sh5
- +36: 0+70 +0 TLS +LOCAL HIDDEN +10 sH5
- +37: 0+74 +0 TLS +LOCAL HIDDEN +10 sH6
- +38: 0+7c +0 TLS +LOCAL HIDDEN +10 sH8
- +39: 0+40 +0 TLS +LOCAL HIDDEN +9 sh1
- +40: 0+44 +0 TLS +LOCAL HIDDEN +9 sh2
- +41: 0+54 +0 TLS +LOCAL HIDDEN +9 sh6
- +42: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +43: [0-9a-z]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +44: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +45: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +46: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +47: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_offset
- +48: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +49: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
- +50: [0-9a-z]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +51: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +52: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +53: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +54: [0-9a-z]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +55: [0-9a-z]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +56: [0-9a-z]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[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
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16
+ +[0-9]+: 0+20 +0 TLS +LOCAL DEFAULT +8 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL DEFAULT +8 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL DEFAULT +8 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL DEFAULT +8 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL DEFAULT +8 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL DEFAULT +8 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL DEFAULT +8 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL DEFAULT +8 sl8
+ +[0-9]+: 0+60 +0 TLS +LOCAL HIDDEN +9 sH1
+ +[0-9]+: 0+48 +0 TLS +LOCAL HIDDEN +8 sh3
+ +[0-9]+: 0+64 +0 TLS +LOCAL HIDDEN +9 sH2
+ +[0-9]+: 0+78 +0 TLS +LOCAL HIDDEN +9 sH7
+ +[0-9]+: 0+58 +0 TLS +LOCAL HIDDEN +8 sh7
+ +[0-9]+: 0+5c +0 TLS +LOCAL HIDDEN +8 sh8
+ +[0-9]+: 0+6c +0 TLS +LOCAL HIDDEN +9 sH4
+ +[0-9]+: 0+4c +0 TLS +LOCAL HIDDEN +8 sh4
+ +[0-9]+: 0+68 +0 TLS +LOCAL HIDDEN +9 sH3
+ +[0-9]+: 0+50 +0 TLS +LOCAL HIDDEN +8 sh5
+ +[0-9]+: 0+70 +0 TLS +LOCAL HIDDEN +9 sH5
+ +[0-9]+: 0+74 +0 TLS +LOCAL HIDDEN +9 sH6
+ +[0-9]+: 0+7c +0 TLS +LOCAL HIDDEN +9 sH8
+ +[0-9]+: 0+40 +0 TLS +LOCAL HIDDEN +8 sh1
+ +[0-9]+: 0+44 +0 TLS +LOCAL HIDDEN +8 sh2
+ +[0-9]+: 0+54 +0 TLS +LOCAL HIDDEN +8 sh6
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
diff --git a/ld/testsuite/ld-s390/tlspic_64.sd b/ld/testsuite/ld-s390/tlspic_64.sd
index 4e1672d..267416e 100644
--- a/ld/testsuite/ld-s390/tlspic_64.sd
+++ b/ld/testsuite/ld-s390/tlspic_64.sd
@@ -8,14 +8,14 @@
.*: +file format elf64-s390
Contents of section .got:
- 1b90 [0-9a-f]+ [0-9a-f]+ 00000000 00000000 .*
- 1ba0 00000000 00000000 [0-9a-f]+ [0-9a-f]+ .*
- 1bb0 00000000 00000000 00000000 00000020 .*
- 1bc0 00000000 00000000 00000000 00000000 .*
- 1bd0 00000000 00000000 00000000 00000000 .*
- 1be0 00000000 00000000 00000000 00000060 .*
- 1bf0 00000000 00000000 00000000 00000000 .*
- 1c00 00000000 00000000 00000000 00000000 .*
- 1c10 00000000 00000000 00000000 00000000 .*
- 1c20 00000000 00000000 00000000 00000000 .*
- 1c30 00000000 00000040 00000000 00000000 .*
+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 [0-9a-f]+ [0-9a-f]+ .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000020 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000060 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000000 00000000 00000000 .*
+ [0-9a-f]+ 00000000 00000040 00000000 00000000 .*
diff --git a/ld/testsuite/ld-s390/tlspic_64.td b/ld/testsuite/ld-s390/tlspic_64.td
index ba2b934..36623bb 100644
--- a/ld/testsuite/ld-s390/tlspic_64.td
+++ b/ld/testsuite/ld-s390/tlspic_64.td
@@ -8,9 +8,9 @@
.*: +file format elf64-s390
Contents of section .tdata:
- 1a00 00000011 00000012 00000013 00000014 .*
- 1a10 00000015 00000016 00000017 00000018 .*
- 1a20 00000041 00000042 00000043 00000044 .*
- 1a30 00000045 00000046 00000047 00000048 .*
- 1a40 00000101 00000102 00000103 00000104 .*
- 1a50 00000105 00000106 00000107 00000108 .*
+ [0-9a-f]+ 00000011 00000012 00000013 00000014 .*
+ [0-9a-f]+ 00000015 00000016 00000017 00000018 .*
+ [0-9a-f]+ 00000041 00000042 00000043 00000044 .*
+ [0-9a-f]+ 00000045 00000046 00000047 00000048 .*
+ [0-9a-f]+ 00000101 00000102 00000103 00000104 .*
+ [0-9a-f]+ 00000105 00000106 00000107 00000108 .*
diff --git a/ld/testsuite/ld-shared/shared.exp b/ld/testsuite/ld-shared/shared.exp
index a88cd1c..7950bad 100644
--- a/ld/testsuite/ld-shared/shared.exp
+++ b/ld/testsuite/ld-shared/shared.exp
@@ -227,6 +227,7 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o]
setup_xfail "sparc*-*-linux*"
}
setup_xfail "x86_64-*-linux*"
+ setup_xfail "s390x-*-linux*"
shared_test shnp "shared (non PIC, load offset)" \
mainnp.o sh1np.o sh2np.o shared \
"-T $srcdir/$subdir/elf-offset.ld"
diff --git a/ld/testsuite/ld-x86-64/tlsbin.dd b/ld/testsuite/ld-x86-64/tlsbin.dd
index c6aef68..58bb553 100644
--- a/ld/testsuite/ld-x86-64/tlsbin.dd
+++ b/ld/testsuite/ld-x86-64/tlsbin.dd
@@ -24,7 +24,7 @@ Disassembly of section .text:
# GD -> IE because variable is not defined in executable
401004: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
40100b: 00 00 *
- 40100d: 48 03 05 c4 11 10 00[ ]+add 1053124\(%rip\),%rax +# 5021d8 <_GLOBAL_OFFSET_TABLE_\+0x38>
+ 40100d: 48 03 05 d4 03 10 00[ ]+add 1049556\(%rip\),%rax +# 5013e8 <.*>
# -> R_X86_64_TPOFF64 sG1
401014: 90[ ]+nop *
401015: 90[ ]+nop *
@@ -34,7 +34,7 @@ Disassembly of section .text:
# the variable is referenced through IE too
401018: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
40101f: 00 00 *
- 401021: 48 03 05 a0 11 10 00[ ]+add 1053088\(%rip\),%rax +# 5021c8 <_GLOBAL_OFFSET_TABLE_\+0x28>
+ 401021: 48 03 05 b0 03 10 00[ ]+add 1049520\(%rip\),%rax +# 5013d8 <.*>
# -> R_X86_64_TPOFF64 sG2
401028: 90[ ]+nop *
401029: 90[ ]+nop *
@@ -102,7 +102,7 @@ Disassembly of section .text:
4010b3: 00 00 *
4010b5: 90[ ]+nop *
4010b6: 90[ ]+nop *
- 4010b7: 4c 03 0d 0a 11 10 00[ ]+add 1052938\(%rip\),%r9 +# 5021c8 <_GLOBAL_OFFSET_TABLE_\+0x28>
+ 4010b7: 4c 03 0d 1a 03 10 00[ ]+add 1049370\(%rip\),%r9 +# 5013d8 <.*>
# -> R_X86_64_TPOFF64 sG2
4010be: 90[ ]+nop *
4010bf: 90[ ]+nop *
@@ -143,7 +143,7 @@ Disassembly of section .text:
401103: 90[ ]+nop *
# Direct access through %fs
# IE against global var
- 401104: 48 8b 0d b5 10 10 00[ ]+mov 1052853\(%rip\),%rcx +# 5021c0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+ 401104: 48 8b 0d c5 02 10 00[ ]+mov 1049285\(%rip\),%rcx +# 5013d0 <.*>
# -> R_X86_64_TPOFF64 sG5
40110b: 90[ ]+nop *
40110c: 90[ ]+nop *
@@ -186,7 +186,7 @@ Disassembly of section .text:
401147: 00 00 *
401149: 90[ ]+nop *
40114a: 90[ ]+nop *
- 40114b: 4c 03 1d 7e 10 10 00[ ]+add 1052798\(%rip\),%r11 +# 5021d0 <_GLOBAL_OFFSET_TABLE_\+0x30>
+ 40114b: 4c 03 1d 8e 02 10 00[ ]+add 1049230\(%rip\),%r11 +# 5013e0 <.*>
# -> R_X86_64_TPOFF64 sG6
401152: 90[ ]+nop *
401153: 90[ ]+nop *
diff --git a/ld/testsuite/ld-x86-64/tlsbin.rd b/ld/testsuite/ld-x86-64/tlsbin.rd
index 9f163d9..490010f 100644
--- a/ld/testsuite/ld-x86-64/tlsbin.rd
+++ b/ld/testsuite/ld-x86-64/tlsbin.rd
@@ -5,7 +5,7 @@
#readelf: -WSsrl
#target: x86_64-*-*
-There are 18 section headers, starting at offset 0x[0-9a-f]+:
+There are 19 section headers, starting at offset 0x[0-9a-f]+:
Section Headers:
\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
@@ -18,15 +18,16 @@ Section Headers:
\[ 6\] .rela.plt +.*
\[ 7\] .plt +.*
\[ 8\] .text +PROGBITS +0+401000 0+1000 0+22a 00 +AX +0 +0 +4096
- \[ 9\] .data +.*
- \[10\] .tdata +PROGBITS +0+502000 0+2000 0+60 00 WAT +0 +0 +1
- \[11\] .tbss +NOBITS +0+502060 0+2060 0+40 00 WAT +0 +0 +1
- \[12\] .dynamic +DYNAMIC +0+502060 0+2060 0+140 10 +WA +4 +0 +8
- \[13\] .got +PROGBITS +0+5021a0 0+21a0 0+40 08 +WA +0 +0 +8
- \[14\] .bss +.*
- \[15\] .shstrtab +.*
- \[16\] .symtab +.*
- \[17\] .strtab +.*
+ \[ 9\] .tdata +PROGBITS +0+50122a 0+122a 0+60 00 WAT +0 +0 +1
+ \[10\] .tbss +NOBITS +0+50128a 0+128a 0+40 00 WAT +0 +0 +1
+ \[11\] .dynamic +DYNAMIC +0+501290 0+1290 0+140 10 +WA +4 +0 +8
+ \[12\] .got +PROGBITS +0+5013d0 0+13d0 0+20 08 +WA +0 +0 +8
+ \[13\] .got.plt +PROGBITS +0+5013f0 0+13f0 0+20 08 +WA +0 +0 +8
+ \[14\] .data +.*
+ \[15\] .bss +.*
+ \[16\] .shstrtab +.*
+ \[17\] .symtab +.*
+ \[18\] .strtab +.*
Key to Flags:
.*
.*
@@ -42,25 +43,25 @@ Program Headers:
INTERP +0x0+190 0x0+400190 0x0+400190 0x0+f 0x0+f R +0x1
.*Requesting program interpreter.*
LOAD +0x0+ 0x0+400000 0x0+400000 0x0+122a 0x0+122a R E 0x100000
- LOAD +0x0+2000 0x0+502000 0x0+502000 0x0+1e0 0x0+1e0 RW 0x100000
- DYNAMIC +0x0+2060 0x0+502060 0x0+502060 0x0+140 0x0+140 RW 0x8
- TLS +0x0+2000 0x0+502000 0x0+502000 0x0+60 0x0+a0 R +0x1
+ LOAD +0x0+122a 0x0+50122a 0x0+50122a 0x0+dd6 0x0+dd6 RW 0x100000
+ DYNAMIC +0x0+1290 0x0+501290 0x0+501290 0x0+140 0x0+140 RW 0x8
+ TLS +0x0+122a 0x0+50122a 0x0+50122a 0x0+60 0x0+a0 R +0x1
Section to Segment mapping:
Segment Sections...
00 *
01 +.interp *
02 +.interp .hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text *
- 03 +.tdata .tbss .dynamic .got *
- 04 +.tbss .dynamic *
+ 03 +.tdata .tbss .dynamic .got .got.plt *
+ 04 +.dynamic *
05 +.tdata .tbss *
Relocation section '.rela.dyn' at offset 0x358 contains 4 entries:
+Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend
-0+5021c0 0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
-0+5021c8 0+300000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0
-0+5021d0 0+600000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
-0+5021d8 0+700000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0
+0+5013d0 0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
+0+5013d8 0+300000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0
+0+5013e0 0+600000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
+0+5013e8 0+700000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0
Relocation section '.rela.plt' at offset 0x3b8 contains 1 entries:
+Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend
@@ -68,87 +69,88 @@ Relocation section '.rela.plt' at offset 0x3b8 contains 1 entries:
Symbol table '.dynsym' contains 11 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
- +2: 0+502060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +3: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
- +4: 0+[0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_addr
- +5: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +6: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
- +7: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
- +8: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +9: 0+5021a0 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +10: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
+ +[0-9]+: 0+501290 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
+ +[0-9]+: 0+[0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_addr
+ +[0-9]+: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
+ +[0-9]+: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: 0+5013f0 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: 0+[0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
-Symbol table '.symtab' contains 70 entries:
+Symbol table '.symtab' contains 71 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 *
- +17: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17 *
- +18: 0+20 +0 TLS +LOCAL DEFAULT +10 sl1
- +19: 0+24 +0 TLS +LOCAL DEFAULT +10 sl2
- +20: 0+28 +0 TLS +LOCAL DEFAULT +10 sl3
- +21: 0+2c +0 TLS +LOCAL DEFAULT +10 sl4
- +22: 0+30 +0 TLS +LOCAL DEFAULT +10 sl5
- +23: 0+34 +0 TLS +LOCAL DEFAULT +10 sl6
- +24: 0+38 +0 TLS +LOCAL DEFAULT +10 sl7
- +25: 0+3c +0 TLS +LOCAL DEFAULT +10 sl8
- +26: 0+80 +0 TLS +LOCAL DEFAULT +11 bl1
- +27: 0+84 +0 TLS +LOCAL DEFAULT +11 bl2
- +28: 0+88 +0 TLS +LOCAL DEFAULT +11 bl3
- +29: 0+8c +0 TLS +LOCAL DEFAULT +11 bl4
- +30: 0+90 +0 TLS +LOCAL DEFAULT +11 bl5
- +31: 0+94 +0 TLS +LOCAL DEFAULT +11 bl6
- +32: 0+98 +0 TLS +LOCAL DEFAULT +11 bl7
- +33: 0+9c +0 TLS +LOCAL DEFAULT +11 bl8
- +34: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
- +35: 0+7c +0 TLS +GLOBAL DEFAULT +11 bg8
- +36: 0+74 +0 TLS +GLOBAL DEFAULT +11 bg6
- +37: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
- +38: 0+68 +0 TLS +GLOBAL DEFAULT +11 bg3
- +39: 0+502060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +40: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
- +41: 0+48 +0 TLS +GLOBAL HIDDEN +10 sh3
- +42: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
- +43: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
- +44: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
- +45: 0+70 +0 TLS +GLOBAL DEFAULT +11 bg5
- +46: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_addr
- +47: 0+58 +0 TLS +GLOBAL HIDDEN +10 sh7
- +48: 0+5c +0 TLS +GLOBAL HIDDEN +10 sh8
- +49: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
- +50: 0+40113c +0 FUNC +GLOBAL DEFAULT +8 _start
- +51: 0+4c +0 TLS +GLOBAL HIDDEN +10 sh4
- +52: 0+78 +0 TLS +GLOBAL DEFAULT +11 bg7
- +53: 0+50 +0 TLS +GLOBAL HIDDEN +10 sh5
- +54: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +55: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
- +56: 0+401000 +0 FUNC +GLOBAL DEFAULT +8 fn2
- +57: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2
- +58: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
- +59: 0+40 +0 TLS +GLOBAL HIDDEN +10 sh1
- +60: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6
- +61: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7
- +62: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +63: 0+5021a0 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +64: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
- +65: 0+44 +0 TLS +GLOBAL HIDDEN +10 sh2
- +66: 0+54 +0 TLS +GLOBAL HIDDEN +10 sh6
- +67: 0+64 +0 TLS +GLOBAL DEFAULT +11 bg2
- +68: 0+60 +0 TLS +GLOBAL DEFAULT +11 bg1
- +69: 0+6c +0 TLS +GLOBAL DEFAULT +11 bg4
+ +[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 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +18 *
+ +[0-9]+: 0+20 +0 TLS +LOCAL DEFAULT +9 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL DEFAULT +9 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL DEFAULT +9 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL DEFAULT +9 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL DEFAULT +9 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL DEFAULT +9 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL DEFAULT +9 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL DEFAULT +9 sl8
+ +[0-9]+: 0+80 +0 TLS +LOCAL DEFAULT +10 bl1
+ +[0-9]+: 0+84 +0 TLS +LOCAL DEFAULT +10 bl2
+ +[0-9]+: 0+88 +0 TLS +LOCAL DEFAULT +10 bl3
+ +[0-9]+: 0+8c +0 TLS +LOCAL DEFAULT +10 bl4
+ +[0-9]+: 0+90 +0 TLS +LOCAL DEFAULT +10 bl5
+ +[0-9]+: 0+94 +0 TLS +LOCAL DEFAULT +10 bl6
+ +[0-9]+: 0+98 +0 TLS +LOCAL DEFAULT +10 bl7
+ +[0-9]+: 0+9c +0 TLS +LOCAL DEFAULT +10 bl8
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
+ +[0-9]+: 0+7c +0 TLS +GLOBAL DEFAULT +10 bg8
+ +[0-9]+: 0+74 +0 TLS +GLOBAL DEFAULT +10 bg6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG5
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +10 bg3
+ +[0-9]+: 0+501290 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
+ +[0-9]+: 0+48 +0 TLS +GLOBAL HIDDEN +9 sh3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG2
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
+ +[0-9]+: 0+70 +0 TLS +GLOBAL DEFAULT +10 bg5
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT UND __tls_get_addr
+ +[0-9]+: 0+58 +0 TLS +GLOBAL HIDDEN +9 sh7
+ +[0-9]+: 0+5c +0 TLS +GLOBAL HIDDEN +9 sh8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
+ +[0-9]+: 0+40113c +0 FUNC +GLOBAL DEFAULT +8 _start
+ +[0-9]+: 0+4c +0 TLS +GLOBAL HIDDEN +9 sh4
+ +[0-9]+: 0+78 +0 TLS +GLOBAL DEFAULT +10 bg7
+ +[0-9]+: 0+50 +0 TLS +GLOBAL HIDDEN +9 sh5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG6
+ +[0-9]+: 0+401000 +0 FUNC +GLOBAL DEFAULT +8 fn2
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT UND sG1
+ +[0-9]+: 0+40 +0 TLS +GLOBAL HIDDEN +9 sh1
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: 0+5013f0 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+44 +0 TLS +GLOBAL HIDDEN +9 sh2
+ +[0-9]+: 0+54 +0 TLS +GLOBAL HIDDEN +9 sh6
+ +[0-9]+: 0+64 +0 TLS +GLOBAL DEFAULT +10 bg2
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +10 bg1
+ +[0-9]+: 0+6c +0 TLS +GLOBAL DEFAULT +10 bg4
diff --git a/ld/testsuite/ld-x86-64/tlsbin.sd b/ld/testsuite/ld-x86-64/tlsbin.sd
index d378325..8095b59 100644
--- a/ld/testsuite/ld-x86-64/tlsbin.sd
+++ b/ld/testsuite/ld-x86-64/tlsbin.sd
@@ -8,7 +8,5 @@
.*: +file format elf64-x86-64
Contents of section .got:
- 5021a0 [0-9a-f]+ [0-9a-f]+ 00000000 00000000 .*
- 5021b0 00000000 00000000 [0-9a-f]+ [0-9a-f]+ .*
- 5021c0 00000000 00000000 00000000 00000000 .*
- 5021d0 00000000 00000000 00000000 00000000 .*
+ 5013d0 00000000 00000000 00000000 00000000 .*
+ 5013e0 00000000 00000000 00000000 00000000 .*
diff --git a/ld/testsuite/ld-x86-64/tlsbin.td b/ld/testsuite/ld-x86-64/tlsbin.td
index f2ba1b4..e0d7598 100644
--- a/ld/testsuite/ld-x86-64/tlsbin.td
+++ b/ld/testsuite/ld-x86-64/tlsbin.td
@@ -8,9 +8,9 @@
.*: +file format elf64-x86-64
Contents of section .tdata:
- 502000 11000000 12000000 13000000 14000000 .*
- 502010 15000000 16000000 17000000 18000000 .*
- 502020 41000000 42000000 43000000 44000000 .*
- 502030 45000000 46000000 47000000 48000000 .*
- 502040 01010000 02010000 03010000 04010000 .*
- 502050 05010000 06010000 07010000 08010000 .*
+ 50122a 11000000 12000000 13000000 14000000 .*
+ 50123a 15000000 16000000 17000000 18000000 .*
+ 50124a 41000000 42000000 43000000 44000000 .*
+ 50125a 45000000 46000000 47000000 48000000 .*
+ 50126a 01010000 02010000 03010000 04010000 .*
+ 50127a 05010000 06010000 07010000 08010000 .*
diff --git a/ld/testsuite/ld-x86-64/tlspic.dd b/ld/testsuite/ld-x86-64/tlspic.dd
index 69ccdfd..f5139dc 100644
--- a/ld/testsuite/ld-x86-64/tlspic.dd
+++ b/ld/testsuite/ld-x86-64/tlspic.dd
@@ -17,12 +17,12 @@ Disassembly of section .text:
+1006: 90[ ]+nop *
+1007: 90[ ]+nop *
# GD
- +1008: 66 48 8d 3d f0 11 10[ ]+lea 1053168\(%rip\),%rdi +# 102200 <_GLOBAL_OFFSET_TABLE_\+0x70>
+ +1008: 66 48 8d 3d 80 03 10[ ]+lea 1049472\(%rip\),%rdi +# 101390 <.*>
+100f: 00 *
# -> R_X86_64_DTPMOD64 sg1
+1010: 66[ ]+data16
+1011: 66[ ]+data16
- +1012: 48 e8 68 f6 ff ff[ ]+rex64 callq [0-9a-f]+ <.*>
+ +1012: 48 e8 88 f5 ff ff[ ]+rex64 callq [0-9a-f]+ <.*>
# -> R_X86_64_JUMP_SLOT __tls_get_addr
+1018: 90[ ]+nop *
+1019: 90[ ]+nop *
@@ -31,19 +31,19 @@ Disassembly of section .text:
# GD -> IE because variable is referenced through IE too
+101c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
+1023: 00 00 *
- +1025: 48 03 05 f4 11 10 00[ ]+add 1053172\(%rip\),%rax +# 102220 <_GLOBAL_OFFSET_TABLE_\+0x90>
+ +1025: 48 03 05 84 03 10 00[ ]+add 1049476\(%rip\),%rax +# 1013b0 <.*>
# -> R_X86_64_TPOFF64 sg2
+102c: 90[ ]+nop *
+102d: 90[ ]+nop *
+102e: 90[ ]+nop *
+102f: 90[ ]+nop *
# GD against local variable
- +1030: 66 48 8d 3d 78 11 10[ ]+lea 1053048\(%rip\),%rdi +# 1021b0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+ +1030: 66 48 8d 3d 08 03 10[ ]+lea 1049352\(%rip\),%rdi +# 101340 <.*>
+1037: 00 *
# -> R_X86_64_DTPMOD64 [0 0x2000000000000000]
+1038: 66[ ]+data16
+1039: 66[ ]+data16
- +103a: 48 e8 40 f6 ff ff[ ]+rex64 callq [0-9a-f]+ <.*>
+ +103a: 48 e8 60 f5 ff ff[ ]+rex64 callq [0-9a-f]+ <.*>
# -> R_X86_64_JUMP_SLOT __tls_get_addr
+1040: 90[ ]+nop *
+1041: 90[ ]+nop *
@@ -52,19 +52,19 @@ Disassembly of section .text:
# GD -> IE against local variable referenced through IE too
+1044: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
+104b: 00 00 *
- +104d: 48 03 05 6c 11 10 00[ ]+add 1053036\(%rip\),%rax +# 1021c0 <_GLOBAL_OFFSET_TABLE_\+0x30>
+ +104d: 48 03 05 fc 02 10 00[ ]+add 1049340\(%rip\),%rax +# 101350 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x24
+1054: 90[ ]+nop *
+1055: 90[ ]+nop *
+1056: 90[ ]+nop *
+1057: 90[ ]+nop *
# GD against hidden and local variable
- +1058: 66 48 8d 3d c8 11 10[ ]+lea 1053128\(%rip\),%rdi +# 102228 <_GLOBAL_OFFSET_TABLE_\+0x98>
+ +1058: 66 48 8d 3d 58 03 10[ ]+lea 1049432\(%rip\),%rdi +# 1013b8 <.*>
+105f: 00 *
# -> R_X86_64_DTPMOD64 [0 0x4000000000000000]
+1060: 66[ ]+data16
+1061: 66[ ]+data16
- +1062: 48 e8 18 f6 ff ff[ ]+rex64 callq [0-9a-f]+ <.*>
+ +1062: 48 e8 38 f5 ff ff[ ]+rex64 callq [0-9a-f]+ <.*>
# -> R_X86_64_JUMP_SLOT __tls_get_addr
+1068: 90[ ]+nop *
+1069: 90[ ]+nop *
@@ -73,19 +73,19 @@ Disassembly of section .text:
# GD -> IE against hidden and local variable referenced through IE too
+106c: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
+1073: 00 00 *
- +1075: 48 03 05 bc 11 10 00[ ]+add 1053116\(%rip\),%rax +# 102238 <_GLOBAL_OFFSET_TABLE_\+0xa8>
+ +1075: 48 03 05 4c 03 10 00[ ]+add 1049420\(%rip\),%rax +# 1013c8 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x44
+107c: 90[ ]+nop *
+107d: 90[ ]+nop *
+107e: 90[ ]+nop *
+107f: 90[ ]+nop *
# GD against hidden but not local variable
- +1080: 66 48 8d 3d 58 11 10[ ]+lea 1053016\(%rip\),%rdi +# 1021e0 <_GLOBAL_OFFSET_TABLE_\+0x50>
+ +1080: 66 48 8d 3d e8 02 10[ ]+lea 1049320\(%rip\),%rdi +# 101370 <.*>
+1087: 00 *
# -> R_X86_64_DTPMOD64 [0 0x6000000000000000]
+1088: 66[ ]+data16
+1089: 66[ ]+data16
- +108a: 48 e8 f0 f5 ff ff[ ]+rex64 callq [0-9a-f]+ <.*>
+ +108a: 48 e8 10 f5 ff ff[ ]+rex64 callq [0-9a-f]+ <.*>
# -> R_X86_64_JUMP_SLOT __tls_get_addr
+1090: 90[ ]+nop *
+1091: 90[ ]+nop *
@@ -94,16 +94,16 @@ Disassembly of section .text:
# GD -> IE against hidden but not local variable referenced through IE too
+1094: 64 48 8b 04 25 00 00[ ]+mov %fs:0x0,%rax
+109b: 00 00 *
- +109d: 48 03 05 4c 11 10 00[ ]+add 1053004\(%rip\),%rax +# 1021f0 <_GLOBAL_OFFSET_TABLE_\+0x60>
+ +109d: 48 03 05 dc 02 10 00[ ]+add 1049308\(%rip\),%rax +# 101380 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x64
+10a4: 90[ ]+nop *
+10a5: 90[ ]+nop *
+10a6: 90[ ]+nop *
+10a7: 90[ ]+nop *
# LD
- +10a8: 48 8d 3d 21 11 10 00[ ]+lea 1052961\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40>
+ +10a8: 48 8d 3d b1 02 10 00[ ]+lea 1049265\(%rip\),%rdi +# 101360 <.*>
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
- +10af: e8 cc f5 ff ff[ ]+callq [0-9a-f]+ <.*>
+ +10af: e8 ec f4 ff ff[ ]+callq [0-9a-f]+ <.*>
# -> R_X86_64_JUMP_SLOT __tls_get_addr
+10b4: 90[ ]+nop *
+10b5: 90[ ]+nop *
@@ -116,9 +116,9 @@ Disassembly of section .text:
+10c8: 90[ ]+nop *
+10c9: 90[ ]+nop *
# LD against hidden and local variables
- +10ca: 48 8d 3d ff 10 10 00[ ]+lea 1052927\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40>
+ +10ca: 48 8d 3d 8f 02 10 00[ ]+lea 1049231\(%rip\),%rdi +# 101360 <.*>
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
- +10d1: e8 aa f5 ff ff[ ]+callq [0-9a-f]+ <.*>
+ +10d1: e8 ca f4 ff ff[ ]+callq [0-9a-f]+ <.*>
# -> R_X86_64_JUMP_SLOT __tls_get_addr
+10d6: 90[ ]+nop *
+10d7: 90[ ]+nop *
@@ -131,9 +131,9 @@ Disassembly of section .text:
+10ea: 90[ ]+nop *
+10eb: 90[ ]+nop *
# LD against hidden but not local variables
- +10ec: 48 8d 3d dd 10 10 00[ ]+lea 1052893\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40>
+ +10ec: 48 8d 3d 6d 02 10 00[ ]+lea 1049197\(%rip\),%rdi +# 101360 <.*>
# -> R_X86_64_DTPMOD64 [0 0x000000000000000]
- +10f3: e8 88 f5 ff ff[ ]+callq [0-9a-f]+ <.*>
+ +10f3: e8 a8 f4 ff ff[ ]+callq [0-9a-f]+ <.*>
# -> R_X86_64_JUMP_SLOT __tls_get_addr
+10f8: 90[ ]+nop *
+10f9: 90[ ]+nop *
@@ -148,7 +148,7 @@ Disassembly of section .text:
+1113: 00 00 *
+1115: 90[ ]+nop *
+1116: 90[ ]+nop *
- +1117: 48 03 0d 02 11 10 00[ ]+add 1052930\(%rip\),%rcx +# 102220 <_GLOBAL_OFFSET_TABLE_\+0x90>
+ +1117: 48 03 0d 92 02 10 00[ ]+add 1049234\(%rip\),%rcx +# 1013b0 <.*>
# -> R_X86_64_TPOFF64 sg2
+111e: 90[ ]+nop *
+111f: 90[ ]+nop *
@@ -159,7 +159,7 @@ Disassembly of section .text:
+1129: 00 00 *
+112b: 90[ ]+nop *
+112c: 90[ ]+nop *
- +112d: 4c 03 35 8c 10 10 00[ ]+add 1052812\(%rip\),%r14 +# 1021c0 <_GLOBAL_OFFSET_TABLE_\+0x30>
+ +112d: 4c 03 35 1c 02 10 00[ ]+add 1049116\(%rip\),%r14 +# 101350 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x24
+1134: 90[ ]+nop *
+1135: 90[ ]+nop *
@@ -170,7 +170,7 @@ Disassembly of section .text:
+113f: 00 00 *
+1141: 90[ ]+nop *
+1142: 90[ ]+nop *
- +1143: 48 03 0d ee 10 10 00[ ]+add 1052910\(%rip\),%rcx +# 102238 <_GLOBAL_OFFSET_TABLE_\+0xa8>
+ +1143: 48 03 0d 7e 02 10 00[ ]+add 1049214\(%rip\),%rcx +# 1013c8 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x44
+114a: 90[ ]+nop *
+114b: 90[ ]+nop *
@@ -181,7 +181,7 @@ Disassembly of section .text:
+1155: 00 00 *
+1157: 90[ ]+nop *
+1158: 90[ ]+nop *
- +1159: 48 03 0d 90 10 10 00[ ]+add 1052816\(%rip\),%rcx +# 1021f0 <_GLOBAL_OFFSET_TABLE_\+0x60>
+ +1159: 48 03 0d 20 02 10 00[ ]+add 1049120\(%rip\),%rcx +# 101380 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x64
+1160: 90[ ]+nop *
+1161: 90[ ]+nop *
@@ -189,7 +189,7 @@ Disassembly of section .text:
+1163: 90[ ]+nop *
# Direct access through %fs
# IE against global var
- +1164: 48 8b 0d 8d 10 10 00[ ]+mov 1052813\(%rip\),%rcx +# 1021f8 <_GLOBAL_OFFSET_TABLE_\+0x68>
+ +1164: 48 8b 0d 1d 02 10 00[ ]+mov 1049117\(%rip\),%rcx +# 101388 <.*>
# -> R_X86_64_TPOFF64 sg5
+116b: 90[ ]+nop *
+116c: 90[ ]+nop *
@@ -199,7 +199,7 @@ Disassembly of section .text:
+1173: 90[ ]+nop *
+1174: 90[ ]+nop *
# IE against local var
- +1175: 4c 8b 15 4c 10 10 00[ ]+mov 1052748\(%rip\),%r10 +# 1021c8 <_GLOBAL_OFFSET_TABLE_\+0x38>
+ +1175: 4c 8b 15 dc 01 10 00[ ]+mov 1049052\(%rip\),%r10 +# 101358 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x30
+117c: 90[ ]+nop *
+117d: 90[ ]+nop *
@@ -209,7 +209,7 @@ Disassembly of section .text:
+1184: 90[ ]+nop *
+1185: 90[ ]+nop *
# IE against hidden and local var
- +1186: 48 8b 15 83 10 10 00[ ]+mov 1052803\(%rip\),%rdx +# 102210 <_GLOBAL_OFFSET_TABLE_\+0x80>
+ +1186: 48 8b 15 13 02 10 00[ ]+mov 1049107\(%rip\),%rdx +# 1013a0 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x50
+118d: 90[ ]+nop *
+118e: 90[ ]+nop *
@@ -219,7 +219,7 @@ Disassembly of section .text:
+1195: 90[ ]+nop *
+1196: 90[ ]+nop *
# IE against hidden but not local var
- +1197: 48 8b 0d 7a 10 10 00[ ]+mov 1052794\(%rip\),%rcx +# 102218 <_GLOBAL_OFFSET_TABLE_\+0x88>
+ +1197: 48 8b 0d 0a 02 10 00[ ]+mov 1049098\(%rip\),%rcx +# 1013a8 <.*>
# -> R_X86_64_TPOFF64 *ABS*+0x70
+119e: 90[ ]+nop *
+119f: 90[ ]+nop *
diff --git a/ld/testsuite/ld-x86-64/tlspic.rd b/ld/testsuite/ld-x86-64/tlspic.rd
index d8190db..029fa68 100644
--- a/ld/testsuite/ld-x86-64/tlspic.rd
+++ b/ld/testsuite/ld-x86-64/tlspic.rd
@@ -5,7 +5,7 @@
#readelf: -WSsrl
#target: x86_64-*-*
-There are 17 section headers, starting at offset 0x[0-9a-f]+:
+There are 18 section headers, starting at offset 0x[0-9a-f]+:
Section Headers:
\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
@@ -17,15 +17,16 @@ Section Headers:
\[ 5\] .rela.plt +.*
\[ 6\] .plt +.*
\[ 7\] .text +PROGBITS +0+1000 0+1000 0+1ac 00 +AX +0 +0 4096
- \[ 8\] .data +.*
- \[ 9\] .tdata +PROGBITS +0+102000 0+2000 0+60 00 WAT +0 +0 +1
- \[10\] .tbss +NOBITS +0+102060 0+2060 0+20 00 WAT +0 +0 +1
- \[11\] .dynamic +DYNAMIC +0+102060 0+2060 0+130 10 +WA +3 +0 +8
- \[12\] .got +PROGBITS +0+102190 0+2190 0+b0 08 +WA +0 +0 +8
- \[13\] .bss +.*
- \[14\] .shstrtab +.*
- \[15\] .symtab +.*
- \[16\] .strtab +.*
+ \[ 8\] .tdata +PROGBITS +0+1011ac 0+11ac 0+60 00 WAT +0 +0 +1
+ \[ 9\] .tbss +NOBITS +0+10120c 0+120c 0+20 00 WAT +0 +0 +1
+ \[10\] .dynamic +DYNAMIC +0+101210 0+1210 0+130 10 +WA +3 +0 +8
+ \[11\] .got +PROGBITS +0+101340 0+1340 0+90 08 +WA +0 +0 +8
+ \[12\] .got.plt +PROGBITS +0+1013d0 0+13d0 0+20 08 +WA +0 +0 +8
+ \[13\] .data +.*
+ \[14\] .bss +.*
+ \[15\] .shstrtab +.*
+ \[16\] .symtab +.*
+ \[17\] .strtab +.*
Key to Flags:
.*
.*
@@ -38,125 +39,118 @@ There are 4 program headers, starting at offset [0-9]+
Program Headers:
Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x100000
- LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+240 0x0+240 RW +0x100000
- DYNAMIC +0x0+2060 0x0+102060 0x0+102060 0x0+130 0x0+130 RW +0x8
- TLS +0x0+2000 0x0+102000 0x0+102000 0x0+60 0x0+80 R +0x1
+ LOAD +0x0+11ac 0x0+1011ac 0x0+1011ac 0x0+e54 0x0+e54 RW +0x100000
+ DYNAMIC +0x0+1210 0x0+101210 0x0+101210 0x0+130 0x0+130 RW +0x8
+ TLS +0x0+11ac 0x0+1011ac 0x0+1011ac 0x0+60 0x0+80 R +0x1
Section to Segment mapping:
Segment Sections...
00 +.hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text *
- 01 +.tdata .tbss .dynamic .got *
- 02 +.tbss .dynamic *
+ 01 +.tdata .tbss .dynamic .got .got.plt *
+ 02 +.dynamic *
03 +.tdata .tbss *
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+1021b0 0+10 R_X86_64_DTPMOD64 +0+
-0+1021c0 0+12 R_X86_64_TPOFF64 +0+24
-0+1021c8 0+12 R_X86_64_TPOFF64 +0+30
-0+1021d0 0+10 R_X86_64_DTPMOD64 +0+
-0+1021e0 0+10 R_X86_64_DTPMOD64 +0+
-0+1021f0 0+12 R_X86_64_TPOFF64 +0+64
-0+102210 0+12 R_X86_64_TPOFF64 +0+50
-0+102218 0+12 R_X86_64_TPOFF64 +0+70
-0+102228 0+10 R_X86_64_DTPMOD64 +0+
-0+102238 0+12 R_X86_64_TPOFF64 +0+44
-0+1021f8 0+1200000012 R_X86_64_TPOFF64 +0+10 sg5 \+ 0
-0+102200 0+1400000010 R_X86_64_DTPMOD64 +0+ sg1 \+ 0
-0+102208 0+1400000011 R_X86_64_DTPOFF64 +0+ sg1 \+ 0
-0+102220 0+1700000012 R_X86_64_TPOFF64 +0+4 sg2 \+ 0
+0+101340 0+10 R_X86_64_DTPMOD64 +0+
+0+101350 0+12 R_X86_64_TPOFF64 +0+24
+0+101358 0+12 R_X86_64_TPOFF64 +0+30
+0+101360 0+10 R_X86_64_DTPMOD64 +0+
+0+101370 0+10 R_X86_64_DTPMOD64 +0+
+0+101380 0+12 R_X86_64_TPOFF64 +0+64
+0+1013a0 0+12 R_X86_64_TPOFF64 +0+50
+0+1013a8 0+12 R_X86_64_TPOFF64 +0+70
+0+1013b8 0+10 R_X86_64_DTPMOD64 +0+
+0+1013c8 0+12 R_X86_64_TPOFF64 +0+44
+0+101388 0+a00000012 R_X86_64_TPOFF64 +0+10 sg5 \+ 0
+0+101390 0+c00000010 R_X86_64_DTPMOD64 +0+ sg1 \+ 0
+0+101398 0+c00000011 R_X86_64_DTPOFF64 +0+ sg1 \+ 0
+0+1013b0 0+f00000012 R_X86_64_TPOFF64 +0+4 sg2 \+ 0
-Relocation section '.rela.plt' at offset 0x658 contains 1 entries:
+Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
+Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend
-0+[0-9a-f]+ 0+1300000007 R_X86_64_JUMP_SLOT +0+ __tls_get_addr \+ 0
+0+[0-9a-f]+ 0+b00000007 R_X86_64_JUMP_SLOT +0+ __tls_get_addr \+ 0
-Symbol table '.dynsym' contains 29 entries:
+Symbol table '.dynsym' contains 21 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 *
- +14: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +15: 0+102060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +16: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +17: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +18: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +19: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_addr
- +20: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +21: 0+1000 +0 FUNC +GLOBAL DEFAULT +7 fn1
- +22: 0+102240 +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +23: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +24: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +25: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +26: 0+102240 +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +27: 0+102190 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +28: 0+102240 +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[0-9]+: 0+ +0 NOTYPE LOCAL DEFAULT UND *
+ +[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 +13 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: 0+101210 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_addr
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: 0+1000 +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: 0+1013d0 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
-Symbol table '.symtab' contains 56 entries:
+Symbol table '.symtab' contains 57 entries:
+Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE LOCAL DEFAULT UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 *
- +17: 0+20 +0 TLS +LOCAL DEFAULT +9 sl1
- +18: 0+24 +0 TLS +LOCAL DEFAULT +9 sl2
- +19: 0+28 +0 TLS +LOCAL DEFAULT +9 sl3
- +20: 0+2c +0 TLS +LOCAL DEFAULT +9 sl4
- +21: 0+30 +0 TLS +LOCAL DEFAULT +9 sl5
- +22: 0+34 +0 TLS +LOCAL DEFAULT +9 sl6
- +23: 0+38 +0 TLS +LOCAL DEFAULT +9 sl7
- +24: 0+3c +0 TLS +LOCAL DEFAULT +9 sl8
- +25: 0+60 +0 TLS +LOCAL HIDDEN +10 sH1
- +26: 0+48 +0 TLS +LOCAL HIDDEN +9 sh3
- +27: 0+64 +0 TLS +LOCAL HIDDEN +10 sH2
- +28: 0+78 +0 TLS +LOCAL HIDDEN +10 sH7
- +29: 0+58 +0 TLS +LOCAL HIDDEN +9 sh7
- +30: 0+5c +0 TLS +LOCAL HIDDEN +9 sh8
- +31: 0+6c +0 TLS +LOCAL HIDDEN +10 sH4
- +32: 0+4c +0 TLS +LOCAL HIDDEN +9 sh4
- +33: 0+68 +0 TLS +LOCAL HIDDEN +10 sH3
- +34: 0+50 +0 TLS +LOCAL HIDDEN +9 sh5
- +35: 0+70 +0 TLS +LOCAL HIDDEN +10 sH5
- +36: 0+74 +0 TLS +LOCAL HIDDEN +10 sH6
- +37: 0+7c +0 TLS +LOCAL HIDDEN +10 sH8
- +38: 0+40 +0 TLS +LOCAL HIDDEN +9 sh1
- +39: 0+44 +0 TLS +LOCAL HIDDEN +9 sh2
- +40: 0+54 +0 TLS +LOCAL HIDDEN +9 sh6
- +41: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +42: 0+102060 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
- +43: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +44: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +45: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +46: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_addr
- +47: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +48: 0+1000 +0 FUNC +GLOBAL DEFAULT +7 fn1
- +49: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
- +50: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +51: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +52: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +53: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
- +54: 0+102190 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- +55: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
+ +[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 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +14 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +16 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +17 *
+ +[0-9]+: 0+20 +0 TLS +LOCAL DEFAULT +8 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL DEFAULT +8 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL DEFAULT +8 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL DEFAULT +8 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL DEFAULT +8 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL DEFAULT +8 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL DEFAULT +8 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL DEFAULT +8 sl8
+ +[0-9]+: 0+60 +0 TLS +LOCAL HIDDEN +9 sH1
+ +[0-9]+: 0+48 +0 TLS +LOCAL HIDDEN +8 sh3
+ +[0-9]+: 0+64 +0 TLS +LOCAL HIDDEN +9 sH2
+ +[0-9]+: 0+78 +0 TLS +LOCAL HIDDEN +9 sH7
+ +[0-9]+: 0+58 +0 TLS +LOCAL HIDDEN +8 sh7
+ +[0-9]+: 0+5c +0 TLS +LOCAL HIDDEN +8 sh8
+ +[0-9]+: 0+6c +0 TLS +LOCAL HIDDEN +9 sH4
+ +[0-9]+: 0+4c +0 TLS +LOCAL HIDDEN +8 sh4
+ +[0-9]+: 0+68 +0 TLS +LOCAL HIDDEN +9 sH3
+ +[0-9]+: 0+50 +0 TLS +LOCAL HIDDEN +8 sh5
+ +[0-9]+: 0+70 +0 TLS +LOCAL HIDDEN +9 sH5
+ +[0-9]+: 0+74 +0 TLS +LOCAL HIDDEN +9 sH6
+ +[0-9]+: 0+7c +0 TLS +LOCAL HIDDEN +9 sH8
+ +[0-9]+: 0+40 +0 TLS +LOCAL HIDDEN +8 sh1
+ +[0-9]+: 0+44 +0 TLS +LOCAL HIDDEN +8 sh2
+ +[0-9]+: 0+54 +0 TLS +LOCAL HIDDEN +8 sh6
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: 0+101210 +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 NOTYPE GLOBAL DEFAULT UND __tls_get_addr
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: 0+1000 +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata
+ +[0-9]+: 0+1013d0 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end
diff --git a/ld/testsuite/ld-x86-64/tlspic.sd b/ld/testsuite/ld-x86-64/tlspic.sd
index a79ebad..831f0e5 100644
--- a/ld/testsuite/ld-x86-64/tlspic.sd
+++ b/ld/testsuite/ld-x86-64/tlspic.sd
@@ -8,14 +8,12 @@
.*: +file format elf64-x86-64
Contents of section .got:
- 102190 [0-9a-f]+ [0-9a-f]+ 00000000 00000000 .*
- 1021a0 00000000 00000000 [0-9a-f]+ [0-9a-f]+ .*
- 1021b0 00000000 00000000 20000000 00000000 .*
- 1021c0 00000000 00000000 00000000 00000000 .*
- 1021d0 00000000 00000000 00000000 00000000 .*
- 1021e0 00000000 00000000 60000000 00000000 .*
- 1021f0 00000000 00000000 00000000 00000000 .*
- 102200 00000000 00000000 00000000 00000000 .*
- 102210 00000000 00000000 00000000 00000000 .*
- 102220 00000000 00000000 00000000 00000000 .*
- 102230 40000000 00000000 00000000 00000000 .*
+ 101340 00000000 00000000 20000000 00000000 .*
+ 101350 00000000 00000000 00000000 00000000 .*
+ 101360 00000000 00000000 00000000 00000000 .*
+ 101370 00000000 00000000 60000000 00000000 .*
+ 101380 00000000 00000000 00000000 00000000 .*
+ 101390 00000000 00000000 00000000 00000000 .*
+ 1013a0 00000000 00000000 00000000 00000000 .*
+ 1013b0 00000000 00000000 00000000 00000000 .*
+ 1013c0 40000000 00000000 00000000 00000000 .*
diff --git a/ld/testsuite/ld-x86-64/tlspic.td b/ld/testsuite/ld-x86-64/tlspic.td
index 18ec846..d3df20c 100644
--- a/ld/testsuite/ld-x86-64/tlspic.td
+++ b/ld/testsuite/ld-x86-64/tlspic.td
@@ -8,9 +8,9 @@
.*: +file format elf64-x86-64
Contents of section .tdata:
- 102000 11000000 12000000 13000000 14000000 .*
- 102010 15000000 16000000 17000000 18000000 .*
- 102020 41000000 42000000 43000000 44000000 .*
- 102030 45000000 46000000 47000000 48000000 .*
- 102040 01010000 02010000 03010000 04010000 .*
- 102050 05010000 06010000 07010000 08010000 .*
+ 1011ac 11000000 12000000 13000000 14000000 .*
+ 1011bc 15000000 16000000 17000000 18000000 .*
+ 1011cc 41000000 42000000 43000000 44000000 .*
+ 1011dc 45000000 46000000 47000000 48000000 .*
+ 1011ec 01010000 02010000 03010000 04010000 .*
+ 1011fc 05010000 06010000 07010000 08010000 .*