Submitted By: Zack Winkles Date: 2004-03-03 Initial Package Version: 2.15.90.0.1 Origin: Fedora Description: Enable the -z relro option. 2004-01-19 Jakub Jelinek bfd/ * elflink.h (elf_bfd_final_link): Don't output STT_SECTION symbol into .dynsym if elf_section_data (sec)->dynindx <= 0. Adjust counting of last_local. * elflink.c (_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.h (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/ * 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. * scripttempl/elf.sc: 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-elfvsb/elfvsb.exp: XFAIL non-PIC load offset tests on s390x. * ld-shared/shared.exp: Likewise. diff -Naur binutils-2.15.90.0.1.orig/bfd/elf-bfd.h binutils-2.15.90.0.1/bfd/elf-bfd.h --- binutils-2.15.90.0.1.orig/bfd/elf-bfd.h 2004-03-03 15:24:33.000000000 -0500 +++ binutils-2.15.90.0.1/bfd/elf-bfd.h 2004-03-03 21:16:17.031624696 -0500 @@ -1225,6 +1225,9 @@ /* Segment flags for the PT_GNU_STACK segment. */ unsigned int stack_flags; + /* Should the PT_GNU_RELRO segment be emitted? */ + bfd_boolean relro; + /* Symbol version definitions in external objects. */ Elf_Internal_Verdef *verdef; diff -Naur binutils-2.15.90.0.1.orig/bfd/elf.c binutils-2.15.90.0.1/bfd/elf.c --- binutils-2.15.90.0.1.orig/bfd/elf.c 2004-03-03 15:24:33.000000000 -0500 +++ binutils-2.15.90.0.1/bfd/elf.c 2004-03-03 21:16:16.991630776 -0500 @@ -968,6 +968,7 @@ 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); @@ -2292,6 +2293,9 @@ 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. */ @@ -3502,6 +3506,21 @@ 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; @@ -4036,6 +4055,37 @@ 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; + } + } } } @@ -4123,6 +4173,12 @@ ++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 -Naur binutils-2.15.90.0.1.orig/bfd/elf32-i386.c binutils-2.15.90.0.1/bfd/elf32-i386.c --- binutils-2.15.90.0.1.orig/bfd/elf32-i386.c 2004-01-14 16:07:43.000000000 -0500 +++ binutils-2.15.90.0.1/bfd/elf32-i386.c 2004-03-03 21:16:16.000000000 -0500 @@ -2269,24 +2269,29 @@ 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; @@ -2707,12 +2712,15 @@ 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 @@ -2769,7 +2777,11 @@ 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++; @@ -2831,7 +2843,10 @@ 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; @@ -3167,7 +3182,8 @@ 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: @@ -3253,6 +3269,10 @@ 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 -Naur binutils-2.15.90.0.1.orig/bfd/elf64-x86-64.c binutils-2.15.90.0.1/bfd/elf64-x86-64.c --- binutils-2.15.90.0.1.orig/bfd/elf64-x86-64.c 2004-01-14 16:07:43.000000000 -0500 +++ binutils-2.15.90.0.1/bfd/elf64-x86-64.c 2004-03-03 21:16:17.029625000 -0500 @@ -1919,9 +1919,11 @@ 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; @@ -2667,7 +2669,8 @@ 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: @@ -2758,6 +2761,10 @@ 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 -Naur binutils-2.15.90.0.1.orig/bfd/elflink.c binutils-2.15.90.0.1/bfd/elflink.c --- binutils-2.15.90.0.1.orig/bfd/elflink.c 2004-03-03 15:24:33.000000000 -0500 +++ binutils-2.15.90.0.1/bfd/elflink.c 2004-03-03 21:16:17.036623936 -0500 @@ -613,8 +613,36 @@ { 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) diff -Naur binutils-2.15.90.0.1.orig/bfd/elflink.h binutils-2.15.90.0.1/bfd/elflink.h --- binutils-2.15.90.0.1.orig/bfd/elflink.h 2004-03-03 15:24:33.000000000 -0500 +++ binutils-2.15.90.0.1/bfd/elflink.h 2004-03-03 21:16:17.011627736 -0500 @@ -1654,6 +1654,7 @@ 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) @@ -3386,15 +3387,17 @@ int indx; Elf_External_Sym *dest; + if (elf_section_data (s)->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 + elf_section_data (s)->dynindx; + if (last_local < elf_section_data (s)->dynindx) + last_local = elf_section_data (s)->dynindx; elf_swap_symbol_out (abfd, &sym, dest, 0); } - - last_local = bfd_count_sections (abfd); } /* Write out the local dynsyms. */ diff -Naur binutils-2.15.90.0.1.orig/binutils/readelf.c binutils-2.15.90.0.1/binutils/readelf.c --- binutils-2.15.90.0.1.orig/binutils/readelf.c 2004-03-03 15:24:34.000000000 -0500 +++ binutils-2.15.90.0.1/binutils/readelf.c 2004-03-03 21:16:16.000000000 -0500 @@ -2144,6 +2144,7 @@ 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 -Naur binutils-2.15.90.0.1.orig/include/bfdlink.h binutils-2.15.90.0.1/include/bfdlink.h --- binutils-2.15.90.0.1.orig/include/bfdlink.h 2004-01-14 16:07:51.000000000 -0500 +++ binutils-2.15.90.0.1/include/bfdlink.h 2004-03-03 21:16:17.000000000 -0500 @@ -302,6 +302,9 @@ 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 static binaries the default is GENERATE_ERROR. When producing dynamic binaries the default is IGNORE. The @@ -386,6 +389,9 @@ /* 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 -Naur binutils-2.15.90.0.1.orig/include/elf/common.h binutils-2.15.90.0.1/include/elf/common.h --- binutils-2.15.90.0.1.orig/include/elf/common.h 2004-03-03 15:24:34.000000000 -0500 +++ binutils-2.15.90.0.1/include/elf/common.h 2004-03-03 21:16:17.000000000 -0500 @@ -287,8 +287,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 -Naur binutils-2.15.90.0.1.orig/ld/emulparams/elf32ppc.sh binutils-2.15.90.0.1/ld/emulparams/elf32ppc.sh --- binutils-2.15.90.0.1.orig/ld/emulparams/elf32ppc.sh 2004-03-03 15:24:34.000000000 -0500 +++ binutils-2.15.90.0.1/ld/emulparams/elf32ppc.sh 2004-03-03 21:16:17.039623480 -0500 @@ -15,7 +15,7 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/emulparams/elf64_s390.sh binutils-2.15.90.0.1/ld/emulparams/elf64_s390.sh --- binutils-2.15.90.0.1.orig/ld/emulparams/elf64_s390.sh 2004-01-14 16:07:52.000000000 -0500 +++ binutils-2.15.90.0.1/ld/emulparams/elf64_s390.sh 2004-03-03 21:16:17.000000000 -0500 @@ -3,6 +3,7 @@ OUTPUT_FORMAT="elf64-s390" TEXT_START_ADDR=0x80000000 MAXPAGESIZE=0x1000 +COMMONPAGESIZE=0x1000 NONPAGED_TEXT_START_ADDR=0x80000000 ARCH="s390:64-bit" MACHINE= diff -Naur binutils-2.15.90.0.1.orig/ld/emulparams/elf_i386.sh binutils-2.15.90.0.1/ld/emulparams/elf_i386.sh --- binutils-2.15.90.0.1.orig/ld/emulparams/elf_i386.sh 2004-01-14 16:07:52.000000000 -0500 +++ binutils-2.15.90.0.1/ld/emulparams/elf_i386.sh 2004-03-03 21:16:17.000000000 -0500 @@ -11,3 +11,4 @@ GENERATE_SHLIB_SCRIPT=yes GENERATE_PIE_SCRIPT=yes NO_SMALL_DATA=yes +SEPARATE_GOTPLT=12 diff -Naur binutils-2.15.90.0.1.orig/ld/emulparams/elf_s390.sh binutils-2.15.90.0.1/ld/emulparams/elf_s390.sh --- binutils-2.15.90.0.1.orig/ld/emulparams/elf_s390.sh 2004-01-14 16:07:52.000000000 -0500 +++ binutils-2.15.90.0.1/ld/emulparams/elf_s390.sh 2004-03-03 21:16:17.000000000 -0500 @@ -2,6 +2,7 @@ OUTPUT_FORMAT="elf32-s390" TEXT_START_ADDR=0x00400000 MAXPAGESIZE=0x1000 +COMMONPAGESIZE=0x1000 NONPAGED_TEXT_START_ADDR=0x00400000 ARCH="s390:31-bit" MACHINE= diff -Naur binutils-2.15.90.0.1.orig/ld/emulparams/elf_x86_64.sh binutils-2.15.90.0.1/ld/emulparams/elf_x86_64.sh --- binutils-2.15.90.0.1.orig/ld/emulparams/elf_x86_64.sh 2004-01-14 16:07:52.000000000 -0500 +++ binutils-2.15.90.0.1/ld/emulparams/elf_x86_64.sh 2004-03-03 21:16:17.000000000 -0500 @@ -12,6 +12,7 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/emultempl/elf32.em binutils-2.15.90.0.1/ld/emultempl/elf32.em --- binutils-2.15.90.0.1.orig/ld/emultempl/elf32.em 2004-03-03 20:19:22.000000000 -0500 +++ binutils-2.15.90.0.1/ld/emultempl/elf32.em 2004-03-03 21:16:17.041623176 -0500 @@ -1646,6 +1646,10 @@ 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 @@ -1693,8 +1697,10 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/ldexp.c binutils-2.15.90.0.1/ld/ldexp.c --- binutils-2.15.90.0.1.orig/ld/ldexp.c 2004-03-03 15:24:34.000000000 -0500 +++ binutils-2.15.90.0.1/ld/ldexp.c 2004-03-03 21:16:17.045622568 -0500 @@ -101,6 +101,7 @@ { 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 @@ 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 @@ && 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 @@ exp_data_seg.phase = exp_dataseg_align_seen; exp_data_seg.base = result.value; exp_data_seg.pagesize = other.value; + exp_data_seg.relro_end = 0; } } else if (other.value < maxpage) diff -Naur binutils-2.15.90.0.1.orig/ld/ldexp.h binutils-2.15.90.0.1/ld/ldexp.h --- binutils-2.15.90.0.1.orig/ld/ldexp.h 2004-01-14 16:07:52.000000000 -0500 +++ binutils-2.15.90.0.1/ld/ldexp.h 2004-03-03 21:16:17.046622416 -0500 @@ -95,10 +95,12 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/ldgram.y binutils-2.15.90.0.1/ld/ldgram.y --- binutils-2.15.90.0.1.orig/ld/ldgram.y 2004-03-03 20:19:22.872655000 -0500 +++ binutils-2.15.90.0.1/ld/ldgram.y 2004-03-03 21:16:17.044622720 -0500 @@ -128,7 +128,7 @@ %token END %left '(' %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_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 -Naur binutils-2.15.90.0.1.orig/ld/ldlang.c binutils-2.15.90.0.1/ld/ldlang.c --- binutils-2.15.90.0.1.orig/ld/ldlang.c 2004-03-03 20:19:22.877654000 -0500 +++ binutils-2.15.90.0.1/ld/ldlang.c 2004-03-03 21:16:17.050621808 -0500 @@ -3380,7 +3380,19 @@ exp_data_seg.phase = exp_dataseg_none; result = lang_size_sections_1 (s, output_section_statement, prev, fill, dot, relax, check_regions); - if (exp_data_seg.phase == exp_dataseg_end_seen) + if (exp_data_seg.phase == exp_dataseg_end_seen + && link_info.relro && exp_data_seg.relro_end) + { + /* If DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END pair was seen, try + to put exp_data_seg.relro on a (common) page boundary. */ + + exp_data_seg.phase = exp_dataseg_relro_adjust; + result = lang_size_sections_1 (s, output_section_statement, prev, fill, + dot, relax, check_regions); + link_info.relro_start = exp_data_seg.base; + link_info.relro_end = exp_data_seg.relro_end; + } + else if (exp_data_seg.phase == exp_dataseg_end_seen) { /* If DATA_SEGMENT_ALIGN DATA_SEGMENT_END pair was seen, check whether a page could be saved in the data segment. */ diff -Naur binutils-2.15.90.0.1.orig/ld/ldlex.l binutils-2.15.90.0.1/ld/ldlex.l --- binutils-2.15.90.0.1.orig/ld/ldlex.l 2004-03-03 20:19:22.879654000 -0500 +++ binutils-2.15.90.0.1/ld/ldlex.l 2004-03-03 21:16:17.043622872 -0500 @@ -254,6 +254,7 @@ "LENGTH" { RTOKEN(LENGTH);} "ALIGN" { RTOKEN(ALIGN_K);} "DATA_SEGMENT_ALIGN" { RTOKEN(DATA_SEGMENT_ALIGN);} +"DATA_SEGMENT_RELRO_END" { RTOKEN(DATA_SEGMENT_RELRO_END);} "DATA_SEGMENT_END" { RTOKEN(DATA_SEGMENT_END);} "ADDR" { RTOKEN(ADDR);} "LOADADDR" { RTOKEN(LOADADDR);} diff -Naur binutils-2.15.90.0.1.orig/ld/ldmain.c binutils-2.15.90.0.1/ld/ldmain.c --- binutils-2.15.90.0.1.orig/ld/ldmain.c 2004-03-03 15:24:34.000000000 -0500 +++ binutils-2.15.90.0.1/ld/ldmain.c 2004-03-03 21:16:17.047622264 -0500 @@ -299,6 +299,7 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/scripttempl/elf.sc binutils-2.15.90.0.1/ld/scripttempl/elf.sc --- binutils-2.15.90.0.1.orig/ld/scripttempl/elf.sc 2004-03-03 20:19:22.000000000 -0500 +++ binutils-2.15.90.0.1/ld/scripttempl/elf.sc 2004-03-03 21:16:17.000000000 -0500 @@ -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. @@ -75,16 +81,31 @@ test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE="" test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE="" 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 +136,10 @@ .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 +235,8 @@ .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.*}) } @@ -292,6 +318,14 @@ ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}} ${CREATE_PIE+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}} + /* Exception handling */ + .eh_frame ${RELOCATING-0} : ONLY_IF_RW { KEEP (*(.eh_frame)) } + .gcc_except_table ${RELOCATING-0} : ONLY_IF_RW { *(.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 @@ -309,6 +343,20 @@ .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+${SEPARATE_GOTPLT+${GOT}}} + ${NO_SMALL_DATA+${SEPARATE_GOTPLT+${GOTPLT}}} + ${RELOCATING+${DATA_SEGMENT_RELRO_END}} + ${NO_SMALL_DATA+${SEPARATE_GOTPLT-${GOT}}} + + ${DATA_PLT+${PLT}} + .data ${RELOCATING-0} : { ${RELOCATING+${DATA_START_SYMBOLS}} @@ -316,19 +364,10 @@ ${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} : ONLY_IF_RW { KEEP (*(.eh_frame)) } - .gcc_except_table ${RELOCATING-0} : ONLY_IF_RW { *(.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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-elfvsb/elfvsb.exp binutils-2.15.90.0.1/ld/testsuite/ld-elfvsb/elfvsb.exp --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-elfvsb/elfvsb.exp 2004-01-14 16:07:53.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-elfvsb/elfvsb.exp 2004-03-03 21:16:17.073618312 -0500 @@ -289,6 +289,7 @@ || [ string match $visibility "protected_weak" ] || [ string match $visibility "normal" ] } { setup_xfail "powerpc-*-linux*" + setup_xfail "s390x-*-linux*" } if { ![ string match $visibility "hidden_undef" ] && ![ string match $visibility "protected_undef" ] } { diff -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/combreloc.d binutils-2.15.90.0.1/ld/testsuite/ld-i386/combreloc.d --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/combreloc.d 2002-10-10 12:16:57.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/combreloc.d 2004-03-03 21:16:17.058620592 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsbin.dd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsbin.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsbin.dd 2004-03-03 15:24:34.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsbin.dd 2004-03-03 21:16:17.056620896 -0500 @@ -25,14 +25,14 @@ 8049004: 50[ ]+push %eax 8049005: e8 00 00 00 00[ ]+call 804900a 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 @@ # 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 @@ # 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 @@ # 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsbin.rd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsbin.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsbin.rd 2002-09-27 11:33:09.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsbin.rd 2004-03-03 21:16:17.054621200 -0500 @@ -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 @@ \[ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsbin.sd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsbin.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsbin.sd 2002-09-27 11:33:09.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsbin.sd 2004-03-03 21:16:17.056620896 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsbinpic.s binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsbinpic.s --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsbinpic.s 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsbinpic.s 2004-03-03 21:16:17.054621200 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsnopic.dd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsnopic.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsnopic.dd 2002-09-27 11:33:09.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsnopic.dd 2004-03-03 21:16:17.058620592 -0500 @@ -16,14 +16,14 @@ 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 @@ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsnopic.rd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsnopic.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsnopic.rd 2002-12-16 15:22:53.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsnopic.rd 2004-03-03 21:16:17.057620744 -0500 @@ -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 @@ \[ 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 @@ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsnopic.sd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsnopic.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsnopic.sd 2002-09-27 11:33:09.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsnopic.sd 2004-03-03 21:16:17.059620440 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsnopic1.s binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsnopic1.s --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlsnopic1.s 2002-09-27 11:33:09.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlsnopic1.s 2004-03-03 21:16:17.057620744 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlspic.dd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlspic.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlspic.dd 2002-09-27 11:33:09.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlspic.dd 2004-03-03 21:16:17.053621352 -0500 @@ -16,13 +16,13 @@ [0-9a-f]+: 50[ ]+push %eax [0-9a-f]+: e8 00 00 00 00[ ]+call [0-9a-f]+ [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]+ <.*0x[0-9a-f]+> # ->R_386_JUMP_SLOT ___tls_get_addr @@ -32,7 +32,7 @@ [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 @@ [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 @@ [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]+ <.*0x[0-9a-f]+> # ->R_386_JUMP_SLOT ___tls_get_addr @@ -65,7 +65,7 @@ [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 @@ [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 @@ [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]+ <.*0x[0-9a-f]+> # ->R_386_JUMP_SLOT ___tls_get_addr @@ -98,7 +98,7 @@ [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 @@ [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 @@ [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]+ <.*0x[0-9a-f]+> # ->R_386_JUMP_SLOT ___tls_get_addr @@ -131,7 +131,7 @@ [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 @@ [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 @@ [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]+ <.*0x[0-9a-f]+> # ->R_386_JUMP_SLOT ___tls_get_addr @@ -171,7 +171,7 @@ [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]+ <.*0x[0-9a-f]+> # ->R_386_JUMP_SLOT ___tls_get_addr @@ -188,7 +188,7 @@ [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]+ <.*0x[0-9a-f]+> # ->R_386_JUMP_SLOT ___tls_get_addr @@ -203,10 +203,10 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 @@ [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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlspic.rd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlspic.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlspic.rd 2002-09-27 11:33:09.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlspic.rd 2004-03-03 21:16:17.051621656 -0500 @@ -17,15 +17,16 @@ \[ 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 @@ 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 @@ [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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlspic.sd binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlspic.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-i386/tlspic.sd 2002-09-27 11:33:09.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-i386/tlspic.sd 2004-03-03 21:16:17.053621352 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin.dd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin.dd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin.dd 2004-03-03 21:16:17.071618616 -0500 @@ -18,168 +18,176 @@ Disassembly of section .text: -0+4002e4 : +0+[0-9a-f]+ : # function prolog - +4002e4: 90 6e f0 18 stm %r6,%r14,24\(%r15\) - +4002e8: a7 d5 00 24 bras %r13,400330 + +[0-9a-f]+: 90 6e f0 18 stm %r6,%r14,24\(%r15\) + +[0-9a-f]+: a7 d5 00 24 bras %r13,[0-9a-f]+ # _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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin.rd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin.rd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin.rd 2004-03-03 21:16:17.069618920 -0500 @@ -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 @@ \[ 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 @@ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin.sd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin.sd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin.sd 2004-03-03 21:16:17.071618616 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin.td binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin.td --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin.td 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin.td 2004-03-03 21:16:17.071618616 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin_64.dd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin_64.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin_64.dd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin_64.dd 2004-03-03 21:16:17.077617704 -0500 @@ -18,196 +18,206 @@ Disassembly of section .text: -0+80000458 : +0+[0-9a-f]+ : # function prolog - +80000458: eb 6e f0 30 00 24 stmg %r6,%r14,48\(%r15\) - +8000045e: a7 d5 00 3e bras %r13,800004da + +[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]+ # 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 - +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]+ + +[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 - +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]+ + +[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 - +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]+ + +[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 - +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 - +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]+ + +[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]+ + +[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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin_64.rd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin_64.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin_64.rd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin_64.rd 2004-03-03 21:16:17.075618008 -0500 @@ -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 @@ \[ 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 @@ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin_64.sd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin_64.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin_64.sd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin_64.sd 2004-03-03 21:16:17.078617552 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin_64.td binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin_64.td --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbin_64.td 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbin_64.td 2004-03-03 21:16:17.078617552 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbinpic.s binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbinpic.s --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbinpic.s 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbinpic.s 2004-03-03 21:16:17.068619072 -0500 @@ -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 @@ .text .globl fn2 .type fn2,@function + .balign 64 fn2: /* Function prolog */ stm %r6,%r14,24(%r15) diff -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbinpic_64.s binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbinpic_64.s --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlsbinpic_64.s 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlsbinpic_64.s 2004-03-03 21:16:17.074618160 -0500 @@ -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 @@ .text .globl fn2 .type fn2,@function + .balign 64 fn2: /* Function prolog */ stmg %r6,%r14,48(%r15) diff -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic.dd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic.dd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic.dd 2004-03-03 21:16:17.070618768 -0500 @@ -9,153 +9,181 @@ Disassembly of section .text: -0+4bc : +0+[0-9a-f]+ : # function prolog - +4bc: 90 6e f0 18 stm %r6,%r14,24\(%r15\) - +4c0: a7 d5 00 30 bras %r13,520 + +[0-9a-f]+: 90 6e f0 18 stm %r6,%r14,24\(%r15\) + +[0-9a-f]+: a7 d5 00 30 bras %r13,[0-9a-f]+ # _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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic.rd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic.rd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic.rd 2004-03-03 21:16:17.069618920 -0500 @@ -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 @@ \[ 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 @@ +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 @@ [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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic.sd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic.sd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic.sd 2004-03-03 21:16:17.072618464 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic.td binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic.td --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic.td 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic.td 2004-03-03 21:16:17.072618464 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic1.s binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic1.s --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic1.s 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic1.s 2004-03-03 21:16:17.067619224 -0500 @@ -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 @@ .text .globl fn1 .type fn1,@function + .balign 64 fn1: /* Funtion prolog */ stm %r6,%r14,24(%r15) diff -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic1_64.s binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic1_64.s --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic1_64.s 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic1_64.s 2004-03-03 21:16:17.073618312 -0500 @@ -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 @@ .text .globl fn1 .type fn1,@function + .balign 64 fn1: /* Funtion prolog */ stmg %r6,%r14,48(%r15) diff -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic_64.dd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic_64.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic_64.dd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic_64.dd 2004-03-03 21:16:17.076617856 -0500 @@ -9,186 +9,194 @@ Disassembly of section .text: -0+790 : +0+[0-9a-f]+ : # function prolog - +790: eb 6e f0 30 00 24 stmg %r6,%r14,48\(%r15\) - +796: a7 d5 00 56 bras %r13,842 + +[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]+ # 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 - +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 - +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 - +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 - +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 - +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 - +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 - +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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic_64.rd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic_64.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic_64.rd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic_64.rd 2004-03-03 21:16:17.075618008 -0500 @@ -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 @@ \[ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic_64.sd binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic_64.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic_64.sd 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic_64.sd 2004-03-03 21:16:17.078617552 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic_64.td binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic_64.td --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-s390/tlspic_64.td 2003-03-19 12:19:17.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-s390/tlspic_64.td 2004-03-03 21:16:17.078617552 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-shared/shared.exp binutils-2.15.90.0.1/ld/testsuite/ld-shared/shared.exp --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-shared/shared.exp 2004-01-14 16:07:54.000000000 -0500 +++ binutils-2.15.90.0.1/ld/testsuite/ld-shared/shared.exp 2004-03-03 21:16:17.073618312 -0500 @@ -221,6 +221,7 @@ setup_xfail "hppa*-*-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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlsbin.dd binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlsbin.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlsbin.dd 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlsbin.dd 2004-03-03 21:16:17.063619832 -0500 @@ -24,7 +24,7 @@ # 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 @@ # 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 @@ 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 @@ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlsbin.rd binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlsbin.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlsbin.rd 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlsbin.rd 2004-03-03 21:16:17.067619224 -0500 @@ -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 @@ \[ 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 @@ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlsbin.sd binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlsbin.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlsbin.sd 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlsbin.sd 2004-03-03 21:16:17.064619680 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlsbin.td binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlsbin.td --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlsbin.td 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlsbin.td 2004-03-03 21:16:17.065619528 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlspic.dd binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlspic.dd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlspic.dd 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlspic.dd 2004-03-03 21:16:17.060620288 -0500 @@ -17,12 +17,12 @@ +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 @@ # 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 @@ # 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 @@ # 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 @@ # 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 @@ +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 @@ +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 @@ +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 @@ +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 @@ +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 @@ +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 @@ +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 @@ +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 @@ +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 @@ +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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlspic.rd binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlspic.rd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlspic.rd 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlspic.rd 2004-03-03 21:16:17.059620440 -0500 @@ -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 @@ \[ 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 @@ 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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlspic.sd binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlspic.sd --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlspic.sd 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlspic.sd 2004-03-03 21:16:17.064619680 -0500 @@ -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 -Naur binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlspic.td binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlspic.td --- binutils-2.15.90.0.1.orig/ld/testsuite/ld-x86-64/tlspic.td 2002-10-02 13:17:20.000000000 -0400 +++ binutils-2.15.90.0.1/ld/testsuite/ld-x86-64/tlspic.td 2004-03-03 21:16:17.064619680 -0500 @@ -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 .*