diff options
author | Jakub Jelinek <jakub@redhat.com> | 2004-05-11 17:08:38 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2004-05-11 17:08:38 +0000 |
commit | 8c37241be3b1baf394090269b4b67babceb83d61 (patch) | |
tree | 83cc2b841784fdfedf486e1d40f8352833c1622c | |
parent | 42edda508ef24ada777099d51f200a3b674a1724 (diff) | |
download | fsf-binutils-gdb-8c37241be3b1baf394090269b4b67babceb83d61.zip fsf-binutils-gdb-8c37241be3b1baf394090269b4b67babceb83d61.tar.gz fsf-binutils-gdb-8c37241be3b1baf394090269b4b67babceb83d61.tar.bz2 |
bfd/
* 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.
include/
* 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.
binutils/
* readelf.c (get_segment_type): Handle PT_GNU_RELRO.
ld/
* 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.
ld/testsuite/
* 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.
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; @@ -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 @@ -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) @@ -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. */ @@ -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 .* |