This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] -z relro + .dynsym STT_SECTION


On Thu, May 06, 2004 at 08:35:02PM +0930, Alan Modra wrote:
> On Wed, May 05, 2004 at 06:59:36PM -0400, Hans-Peter Nilsson wrote:
> > And while I'm here, please people, please avoid changing the
> > default output or output of common options for binutils
> > programs.  Make changes depend on some new non-default option.
> 
> Sometimes, I think a change to default output is worth the pain of
> updating the testsuite.
> 
> Incidentally, if we ever implement Roland's suggestion,
> http://sources.redhat.com/ml/binutils/2003-04/msg00435.html
> to do away with dynamic section symbols, we'll be up for a lot more
> pain than HJ's fix..  In fact, it's probably the thought of all the
> testsuite changes that has stopped anyone making the change.  Besides
> reducing symbols, doing without section symbols would also allow
> removal of unused sections at a later stage in the link process.

Well, killing (some) STT_SECTION symbols in .dynsym is what I did some
months ago already together with -z relro.
And yes, testsuite changes was the main showstopper for not trying to
put this into CVS for the last 5-6 months.
As I haven't found spare time to do the conditional .got reshuffling
based on .got/.s* size, I have updated testsuite on a bunch of arches
(i386, x86-64, s390{,x}, ppc{,64}, ia64) for the -z relro patch.
See http://sources.redhat.com/ml/binutils/2004-01/msg00300.html
and previous thread for the older versions of the patch.

Ok to commit?

2004-05-06  Jakub Jelinek  <jakub@redhat.com>

bfd/
	* elflink.c (elf_bfd_final_link): Don't output STT_SECTION symbol
	into .dynsym if elf_section_data (sec)->dynindx <= 0.
	Adjust counting of last_local.
	(_bfd_elf_link_renumber_dynsyms): Don't assign dynindx to sections
	other than SHT_PROGBITS/SHT_NOBITS and neither for .got/.got.plt/.plt
	created by the linker nor !SHF_ALLOC.

	* elf32-i386.c (elf_i386_finish_dynamic_sections): Point
	DT_PLTGOT to the start of the .got.plt section instead of the
	.got output section.  Set sh_entsize for .got section in addition
	to .got.plt.
	(elf_i386_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
	is at sgot->output_section->vma.
	* elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Point
	DT_PLTGOT to the start of the .got.plt section instead of the
	.got output section.
	(elf64_x86_64_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
	is at sgot->output_section->vma.  Set sh_entsize for .got section
	in addition to .got.plt.
	* elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_RELRO.
	(bfd_section_from_phdr): Likewise.
	(map_sections_to_segments): Likewise.
	(assign_file_positions_for_segments): Likewise.
	(get_program_header_size): Likewise.
	* elflink.c (bfd_elf_size_dynamic_sections): Set
	elf_tdata (output_bfd)->relro from info->relro.
	* elf-bfd.h (struct elf_obj_tdata): Add relro field.
include/
	* bfdlink.h (struct bfd_link_info): Add relro, relro_start and
	relro_end fields.
	* elf/common.h (PT_GNU_EH_FRAME, PT_GNU_STACK): Add comments.
	(PT_GNU_RELRO): Define.
binutils/
	* readelf.c (get_segment_type): Handle PT_GNU_RELRO.
ld/
	* genscripts.sh: Generate -z combreloc -z now -z relro scripts
	for binaries, -shared and -pie.
	* emulparams/elf_i386.sh (SEPARATE_GOTPLT): Set.
	* emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Set.
	* emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS): Rename to...
	(OTHER_RELRO_SECTIONS): ... this.
	* ldlex.l (DATA_SEGMENT_RELRO_END): Add.
	* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle
	-z relro and -z norelro.
	(gld${EMULATION_NAME}_list_options): Add it to usage.
	(gld${EMULATION_NAME}_get_script): Return -z combreloc -z now
	-z relro scripts when appropriate.
	* scripttempl/elf.sc: Unset SEPARATE_GOTPLT if RELRO_NOW is set.
	Create separate .got.plt section if SEPARATE_GOTPLT.
	Move sections which are only written during relocation handling
	to the beginning of RW segment.  If NO_SMALL_DATA, move .got
	before .data.  Add DATA_SEGMENT_RELRO_END directive.
	Include OTHER_RELRO_SECTIONS.
	* ldgram.y (DATA_SEGMENT_RELRO_END): Add.
	* ldexp.c (exp_print_token): Handle DATA_SEGMENT_RELRO_END.
	(fold_unary): Likewise.
	(fold_binary): Handle -z relro.
	* ldexp.h (struct exp_data_seg): Add exp_dataseg_relro_seen and
	exp_dataseg_relro_adjust phases.  Add relro_end field.
	* ldmain.c (main): Initialize link_info.relro to FALSE.
	* ldlang.c (lang_size_sections): Handle -z relro.
ld/testsuite/
	* ld-i386/tlspic.rd: Adjust for section reordering changes
	and removal of unneeded STT_SECTION symbols from .dynsym.
	* ld-i386/tlspic.dd: Likewise.
	* ld-i386/tlspic.sd: Likewise.
	* ld-i386/tlsbin.rd: Likewise.
	* ld-i386/tlsbinpic.s: Likewise.
	* ld-i386/tlsbin.dd: Likewise.
	* ld-i386/tlsbin.sd: Likewise.
	* ld-i386/tlsnopic.rd: Likewise.
	* ld-i386/tlsnopic1.s: Likewise.
	* ld-i386/combreloc.d: Likewise.
	* ld-i386/tlsnopic.dd: Likewise.
	* ld-i386/tlsnopic.sd: Likewise.
	* ld-x86-64/tlspic.rd: Likewise.
	* ld-x86-64/tlspic.dd: Likewise.
	* ld-x86-64/tlsbin.dd: Likewise.
	* ld-x86-64/tlspic.sd: Likewise.
	* ld-x86-64/tlsbin.sd: Likewise.
	* ld-x86-64/tlspic.td: Likewise.
	* ld-x86-64/tlsbin.td: Likewise.
	* ld-x86-64/tlsbin.rd: Likewise.
	* ld-s390/tlspic1.s: Likewise.
	* ld-s390/tlsbinpic.s: Likewise.
	* ld-s390/tlspic.rd: Likewise.
	* ld-s390/tlsbin.rd: Likewise.
	* ld-s390/tlspic.dd: Likewise.
	* ld-s390/tlsbin.dd: Likewise.
	* ld-s390/tlsbin.sd: Likewise.
	* ld-s390/tlsbin.td: Likewise.
	* ld-s390/tlspic.sd: Likewise.
	* ld-s390/tlspic.td: Likewise.
	* ld-s390/tlspic1_64.s: Likewise.
	* ld-s390/tlsbinpic_64.s: Likewise.
	* ld-s390/tlspic_64.rd: Likewise.
	* ld-s390/tlsbin_64.rd: Likewise.
	* ld-s390/tlspic_64.dd: Likewise.
	* ld-s390/tlsbin_64.dd: Likewise.
	* ld-s390/tlspic_64.sd: Likewise.
	* ld-s390/tlspic_64.td: Likewise.
	* ld-s390/tlsbin_64.td: Likewise.
	* ld-s390/tlsbin_64.sd: Likewise.
	* ld-powerpc/tlsexe32.r: Likewise.
	* ld-powerpc/tlsso32.r: Likewise.
	* ld-powerpc/tlsso32.d: Likewise.
	* ld-powerpc/tlsso32.g: Likewise.
	* ld-powerpc/tlsso32.t: Likewise.
	* ld-powerpc/tlsexe.r: Likewise.
	* ld-powerpc/tlsso.r: Likewise.
	* ld-powerpc/tlsso.g: Likewise.
	* ld-powerpc/tlsexetoc.r: Likewise.
	* ld-powerpc/tlstocso.r: Likewise.
	* ld-powerpc/tlstocso.g: Likewise.
	* ld-ia64/tlspic.rd: Likewise.
	* ld-ia64/tlspic.dd: Likewise.
	* ld-ia64/tlspic.sd: Likewise.
	* ld-ia64/tlspic.td: Likewise.
	* ld-ia64/tlsbin.rd: Likewise.
	* ld-ia64/tlsbin.sd: Likewise.
	* ld-ia64/tlsbin.td: Likewise.
	* ld-elfvsb/elfvsb.exp: XFAIL non-PIC load offset tests on s390x.
	* ld-shared/shared.exp: Likewise.

--- ld/emulparams/elf64_s390.sh.jj	2004-05-05 14:55:02.171237009 +0200
+++ ld/emulparams/elf64_s390.sh	2004-05-06 14:08:34.054898850 +0200
@@ -3,6 +3,7 @@ ELFSIZE=64
 OUTPUT_FORMAT="elf64-s390"
 TEXT_START_ADDR=0x80000000
 MAXPAGESIZE=0x1000
+COMMONPAGESIZE=0x1000
 NONPAGED_TEXT_START_ADDR=0x80000000
 ARCH="s390:64-bit"
 MACHINE=
--- ld/emulparams/elf_x86_64.sh.jj	2004-05-05 14:55:02.167237725 +0200
+++ ld/emulparams/elf_x86_64.sh	2004-05-06 14:08:34.053899029 +0200
@@ -12,6 +12,7 @@ TEMPLATE_NAME=elf32
 GENERATE_SHLIB_SCRIPT=yes
 GENERATE_PIE_SCRIPT=yes
 NO_SMALL_DATA=yes
+SEPARATE_GOTPLT=24
 
 if [ "x${host}" = "x${target}" ]; then
   case " $EMULATION_LIBPATH " in
--- ld/emulparams/elf_s390.sh.jj	2004-05-05 14:55:02.174236471 +0200
+++ ld/emulparams/elf_s390.sh	2004-05-06 14:08:34.054898850 +0200
@@ -2,6 +2,7 @@ SCRIPT_NAME=elf
 OUTPUT_FORMAT="elf32-s390"
 TEXT_START_ADDR=0x00400000
 MAXPAGESIZE=0x1000
+COMMONPAGESIZE=0x1000
 NONPAGED_TEXT_START_ADDR=0x00400000
 ARCH="s390:31-bit"
 MACHINE=
--- ld/emulparams/elf32ppc.sh.jj	2004-05-05 14:55:02.163238442 +0200
+++ ld/emulparams/elf32ppc.sh	2004-05-06 14:08:34.052899209 +0200
@@ -15,7 +15,7 @@ MACHINE=
 BSS_PLT=
 EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);'
 OTHER_BSS_END_SYMBOLS='__end = .;'
-OTHER_READWRITE_SECTIONS="
+OTHER_RELRO_SECTIONS="
   .fixup        ${RELOCATING-0} : { *(.fixup) }
   .got1         ${RELOCATING-0} : { *(.got1) }
   .got2         ${RELOCATING-0} : { *(.got2) }
--- ld/emulparams/elf_i386.sh.jj	2004-05-05 14:55:02.160238980 +0200
+++ ld/emulparams/elf_i386.sh	2004-05-06 14:08:34.052899209 +0200
@@ -11,3 +11,4 @@ TEMPLATE_NAME=elf32
 GENERATE_SHLIB_SCRIPT=yes
 GENERATE_PIE_SCRIPT=yes
 NO_SMALL_DATA=yes
+SEPARATE_GOTPLT=12
--- ld/ldgram.y.jj	2004-05-05 14:55:02.188233963 +0200
+++ ld/ldgram.y	2004-05-06 14:08:34.057898313 +0200
@@ -128,7 +128,7 @@ static int error_index;
 %token END
 %left <token> '('
 %token <token> ALIGN_K BLOCK BIND QUAD SQUAD LONG SHORT BYTE
-%token SECTIONS PHDRS SORT DATA_SEGMENT_ALIGN DATA_SEGMENT_END
+%token SECTIONS PHDRS SORT DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END DATA_SEGMENT_END
 %token '{' '}'
 %token SIZEOF_HEADERS OUTPUT_FORMAT FORCE_COMMON_ALLOCATION OUTPUT_ARCH
 %token INHIBIT_COMMON_ALLOCATION
@@ -808,6 +808,8 @@ exp	:
 			{ $$ = exp_binop(ALIGN_K,$3,$5); }
 	|	DATA_SEGMENT_ALIGN '(' exp ',' exp ')'
 			{ $$ = exp_binop (DATA_SEGMENT_ALIGN, $3, $5); }
+	|	DATA_SEGMENT_RELRO_END '(' exp ')'
+			{ $$ = exp_unop(DATA_SEGMENT_RELRO_END, $3); }
 	|	DATA_SEGMENT_END '(' exp ')'
 			{ $$ = exp_unop(DATA_SEGMENT_END, $3); }
 	|	BLOCK '(' exp ')'
--- ld/ldlang.c.jj	2004-05-05 14:55:02.192233246 +0200
+++ ld/ldlang.c	2004-05-06 14:08:34.060897775 +0200
@@ -3297,7 +3297,19 @@ lang_size_sections
   exp_data_seg.phase = exp_dataseg_none;
   result = lang_size_sections_1 (s, output_section_statement, prev, fill,
 				 dot, relax, check_regions);
-  if (exp_data_seg.phase == exp_dataseg_end_seen)
+  if (exp_data_seg.phase == exp_dataseg_end_seen
+      && link_info.relro && exp_data_seg.relro_end)
+    {
+      /* If DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END pair was seen, try
+	 to put exp_data_seg.relro on a (common) page boundary.  */
+
+      exp_data_seg.phase = exp_dataseg_relro_adjust;
+      result = lang_size_sections_1 (s, output_section_statement, prev, fill,
+				     dot, relax, check_regions);
+      link_info.relro_start = exp_data_seg.base;
+      link_info.relro_end = exp_data_seg.relro_end;
+    }
+  else if (exp_data_seg.phase == exp_dataseg_end_seen)
     {
       /* If DATA_SEGMENT_ALIGN DATA_SEGMENT_END pair was seen, check whether
 	 a page could be saved in the data segment.  */
--- ld/scripttempl/elf.sc.jj	2004-05-05 14:55:02.178235754 +0200
+++ ld/scripttempl/elf.sc	2004-05-06 14:08:34.055898671 +0200
@@ -10,6 +10,8 @@
 #	OTHER_TEXT_SECTIONS - these get put in .text when relocating
 #	OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
 #		(e.g., .PARISC.global)
+#	OTHER_RELRO_SECTIONS - other than .data.rel.ro ...
+#		(e.g. PPC32 .fixup, .got[12])
 #	OTHER_BSS_SECTIONS - other than .bss .sbss ...
 #	OTHER_SECTIONS - at the end
 #	EXECUTABLE_SYMBOLS - symbols that must be defined for an
@@ -37,6 +39,10 @@
 # 	combination of .fini sections.
 #	STACK_ADDR - start of a .stack section.
 #	OTHER_END_SYMBOLS - symbols to place right at the end of the script.
+#	SEPARATE_GOTPLT - if set, .got.plt should be separate output section,
+#		so that .got can be in the RELRO area.  It should be set to
+#		the number of bytes in the beginning of .got.plt which can be
+#		in the RELRO area as well.
 #
 # When adding sections, do note that the names of some sections are used
 # when specifying the start address of the next.
@@ -74,17 +80,33 @@ test -z "${ALIGNMENT}" && ALIGNMENT="${E
 test "$LD_FLAG" = "N" && DATA_ADDR=.
 test -n "$CREATE_SHLIB$CREATE_PIE" && test -n "$SHLIB_DATA_ADDR" && COMMONPAGESIZE=""
 test -z "$CREATE_SHLIB$CREATE_PIE" && test -n "$DATA_ADDR" && COMMONPAGESIZE=""
+test -n "$RELRO_NOW" && unset SEPARATE_GOTPLT
 DATA_SEGMENT_ALIGN="ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1))"
+DATA_SEGMENT_RELRO_END=""
+DATA_SEGMENT_RELRO_GOTPLT_END=""
 DATA_SEGMENT_END=""
 if test -n "${COMMONPAGESIZE}"; then
   DATA_SEGMENT_ALIGN="ALIGN (${SEGMENT_SIZE}) - ((${MAXPAGESIZE} - .) & (${MAXPAGESIZE} - 1)); . = DATA_SEGMENT_ALIGN (${MAXPAGESIZE}, ${COMMONPAGESIZE})"
   DATA_SEGMENT_END=". = DATA_SEGMENT_END (.);"
+  if test -n "${SEPARATE_GOTPLT}"; then
+    DATA_SEGMENT_RELRO_GOTPLT_END=". = DATA_SEGMENT_RELRO_END (. + ${SEPARATE_GOTPLT});"
+  else
+    DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (.);"
+  fi
 fi
 INTERP=".interp       ${RELOCATING-0} : { *(.interp) }"
 PLT=".plt          ${RELOCATING-0} : { *(.plt) }"
-test -z "$GOT" && GOT=".got          ${RELOCATING-0} : { *(.got.plt) *(.got) }"
+if test -z "$GOT"; then
+  if test -z "$SEPARATE_GOTPLT"; then
+    GOT=".got          ${RELOCATING-0} : { *(.got.plt) *(.got) }"
+  else
+    GOT=".got          ${RELOCATING-0} : { *(.got) }"
+    GOTPLT=".got.plt      ${RELOCATING-0} : { ${RELOCATING+${DATA_SEGMENT_RELRO_GOTPLT_END}} *(.got.plt) }"
+  fi
+fi
 DYNAMIC=".dynamic      ${RELOCATING-0} : { *(.dynamic) }"
 RODATA=".rodata       ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.* .gnu.linkonce.r.*}) }"
+DATARELRO=".data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }"
 STACKNOTE="/DISCARD/ : { *(.note.GNU-stack) }"
 if test -z "${NO_SMALL_DATA}"; then
   SBSS=".sbss         ${RELOCATING-0} :
@@ -115,7 +137,10 @@ if test -z "${NO_SMALL_DATA}"; then
   .rela.sdata2  ${RELOCATING-0} : { *(.rela.sdata2${RELOCATING+ .rela.sdata2.* .rela.gnu.linkonce.s2.*}) }"
   REL_SBSS2=".rel.sbss2    ${RELOCATING-0} : { *(.rel.sbss2${RELOCATING+ .rel.sbss2.* .rel.gnu.linkonce.sb2.*}) }
   .rela.sbss2   ${RELOCATING-0} : { *(.rela.sbss2${RELOCATING+ .rela.sbss2.* .rela.gnu.linkonce.sb2.*}) }"
+else
+  NO_SMALL_DATA=" "
 fi
+test -n "$SEPARATE_GOTPLT" && SEPARATE_GOTPLT=" "
 CTOR=".ctors        ${CONSTRUCTING-0} : 
   {
     ${CONSTRUCTING+${CTOR_START}}
@@ -211,6 +236,8 @@ eval $COMBRELOCCAT <<EOF
   .rel.rodata   ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.* .rel.gnu.linkonce.r.*}) }
   .rela.rodata  ${RELOCATING-0} : { *(.rela.rodata${RELOCATING+ .rela.rodata.* .rela.gnu.linkonce.r.*}) }
   ${OTHER_READONLY_RELOC_SECTIONS}
+  .rel.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }
+  .rela.data.rel.ro ${RELOCATING-0} : { *(.rel.data.rel.ro${RELOCATING+*}) }
   .rel.data     ${RELOCATING-0} : { *(.rel.data${RELOCATING+ .rel.data.* .rel.gnu.linkonce.d.*}) }
   .rela.data    ${RELOCATING-0} : { *(.rela.data${RELOCATING+ .rela.data.* .rela.gnu.linkonce.d.*}) }
   .rel.tdata	${RELOCATING-0} : { *(.rel.tdata${RELOCATING+ .rel.tdata.* .rel.gnu.linkonce.td.*}) }
@@ -291,6 +318,14 @@ cat <<EOF
   ${CREATE_SHLIB+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
   ${CREATE_PIE+${RELOCATING+. = ${SHLIB_DATA_ADDR-${DATA_SEGMENT_ALIGN}};}}
 
+  /* Exception handling  */
+  .eh_frame     ${RELOCATING-0} : { KEEP (*(.eh_frame)) }
+  .gcc_except_table ${RELOCATING-0} : { *(.gcc_except_table) }
+
+  /* Thread Local Storage sections  */
+  .tdata	${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
+  .tbss		${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
+
   /* Ensure the __preinit_array_start label is properly aligned.  We
      could instead move the label definition inside the section, but
      the linker would then create the section even if it turns out to
@@ -308,6 +343,21 @@ cat <<EOF
   .fini_array   ${RELOCATING-0} : { *(.fini_array) }
   ${RELOCATING+${CREATE_SHLIB-PROVIDE (__fini_array_end = .);}}
 
+  ${RELOCATING+${CTOR}}
+  ${RELOCATING+${DTOR}}
+  .jcr          ${RELOCATING-0} : { KEEP (*(.jcr)) }
+
+  ${RELOCATING+${DATARELRO}}
+  ${OTHER_RELRO_SECTIONS}
+  ${TEXT_DYNAMIC-${DYNAMIC}}
+  ${NO_SMALL_DATA+${RELRO_NOW+${GOT}}}
+  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOT}}}}
+  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT+${GOTPLT}}}}
+  ${RELOCATING+${DATA_SEGMENT_RELRO_END}}
+  ${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}}}}
+
+  ${DATA_PLT+${PLT}}
+
   .data         ${RELOCATING-0} :
   {
     ${RELOCATING+${DATA_START_SYMBOLS}}
@@ -316,19 +366,10 @@ cat <<EOF
     ${CONSTRUCTING+SORT(CONSTRUCTORS)}
   }
   .data1        ${RELOCATING-0} : { *(.data1) }
-  .tdata	${RELOCATING-0} : { *(.tdata${RELOCATING+ .tdata.* .gnu.linkonce.td.*}) }
-  .tbss		${RELOCATING-0} : { *(.tbss${RELOCATING+ .tbss.* .gnu.linkonce.tb.*})${RELOCATING+ *(.tcommon)} }
-  .eh_frame     ${RELOCATING-0} : { KEEP (*(.eh_frame)) }
-  .gcc_except_table ${RELOCATING-0} : { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
   ${WRITABLE_RODATA+${RODATA}}
   ${OTHER_READWRITE_SECTIONS}
-  ${TEXT_DYNAMIC-${DYNAMIC}}
-  ${RELOCATING+${CTOR}}
-  ${RELOCATING+${DTOR}}
-  .jcr          ${RELOCATING-0} : { KEEP (*(.jcr)) }
-  ${DATA_PLT+${PLT}}
   ${RELOCATING+${OTHER_GOT_SYMBOLS}}
-  ${GOT}
+  ${NO_SMALL_DATA-${GOT}}
   ${OTHER_GOT_SECTIONS}
   ${CREATE_SHLIB+${SDATA2}}
   ${CREATE_SHLIB+${SBSS2}}
--- ld/ldexp.c.jj	2004-05-05 14:55:02.205230916 +0200
+++ ld/ldexp.c	2004-05-06 14:08:34.063897238 +0200
@@ -101,6 +101,7 @@ exp_print_token (token_code_type code, i
     { MAX_K, "MAX_K" },
     { REL, "relocatable" },
     { DATA_SEGMENT_ALIGN, "DATA_SEGMENT_ALIGN" },
+    { DATA_SEGMENT_RELRO_END, "DATA_SEGMENT_RELRO_END" },
     { DATA_SEGMENT_END, "DATA_SEGMENT_END" }
   };
   unsigned int idx;
@@ -264,14 +265,36 @@ fold_unary (etree_type *tree,
 	    result.valid_p = FALSE;
 	  break;
 
+	case DATA_SEGMENT_RELRO_END:
+	  if (allocation_done != lang_first_phase_enum
+	      && (exp_data_seg.phase == exp_dataseg_align_seen
+		  || exp_data_seg.phase == exp_dataseg_adjust
+		  || exp_data_seg.phase == exp_dataseg_relro_adjust
+		  || allocation_done != lang_allocating_phase_enum))
+	    {
+	      if (exp_data_seg.phase == exp_dataseg_align_seen
+		  || exp_data_seg.phase == exp_dataseg_relro_adjust)
+		exp_data_seg.relro_end
+		  = result.value + current_section->bfd_section->vma;
+	      if (exp_data_seg.phase == exp_dataseg_align_seen)
+		exp_data_seg.phase = exp_dataseg_relro_seen;
+	      result.value = dot - current_section->bfd_section->vma;
+	    }
+	  else
+	    result.valid_p = FALSE;
+	  break;
+
 	case DATA_SEGMENT_END:
 	  if (allocation_done != lang_first_phase_enum
 	      && current_section == abs_output_section
 	      && (exp_data_seg.phase == exp_dataseg_align_seen
+		  || exp_data_seg.phase == exp_dataseg_relro_seen
 		  || exp_data_seg.phase == exp_dataseg_adjust
+		  || exp_data_seg.phase == exp_dataseg_relro_adjust
 		  || allocation_done != lang_allocating_phase_enum))
 	    {
-	      if (exp_data_seg.phase == exp_dataseg_align_seen)
+	      if (exp_data_seg.phase == exp_dataseg_align_seen
+		  || exp_data_seg.phase == exp_dataseg_relro_seen)
 		{
 		  exp_data_seg.phase = exp_dataseg_end_seen;
 		  exp_data_seg.end = result.value;
@@ -392,12 +415,23 @@ fold_binary (etree_type *tree,
 		  && current_section == abs_output_section
 		  && (exp_data_seg.phase == exp_dataseg_none
 		      || exp_data_seg.phase == exp_dataseg_adjust
+		      || exp_data_seg.phase == exp_dataseg_relro_adjust
 		      || allocation_done != lang_allocating_phase_enum))
 		{
 		  bfd_vma maxpage = result.value;
 
 		  result.value = align_n (dot, maxpage);
-		  if (exp_data_seg.phase != exp_dataseg_adjust)
+		  if (exp_data_seg.phase == exp_dataseg_relro_adjust)
+		    {
+		      /* Attempt to align DATA_SEGMENT_RELRO_END at
+			 a common page boundary.  */
+		      bfd_vma relro;
+
+		      relro = exp_data_seg.relro_end - exp_data_seg.base;
+		      result.value += -relro & (other.value - 1);
+		      exp_data_seg.base = result.value;
+		    }
+		  else if (exp_data_seg.phase != exp_dataseg_adjust)
 		    {
 		      result.value += dot & (maxpage - 1);
 		      if (allocation_done == lang_allocating_phase_enum)
@@ -405,6 +439,7 @@ fold_binary (etree_type *tree,
 			  exp_data_seg.phase = exp_dataseg_align_seen;
 			  exp_data_seg.base = result.value;
 			  exp_data_seg.pagesize = other.value;
+			  exp_data_seg.relro_end = 0;
 			}
 		    }
 		  else if (other.value < maxpage)
--- ld/ldlex.l.jj	2004-05-05 14:55:02.198232171 +0200
+++ ld/ldlex.l	2004-05-06 14:08:34.061897596 +0200
@@ -249,6 +249,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([
 <BOTH,SCRIPT>"LENGTH"		{ RTOKEN(LENGTH);}
 <EXPRESSION,BOTH,SCRIPT>"ALIGN"			{ RTOKEN(ALIGN_K);}
 <EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_ALIGN"	{ RTOKEN(DATA_SEGMENT_ALIGN);}
+<EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_RELRO_END"	{ RTOKEN(DATA_SEGMENT_RELRO_END);}
 <EXPRESSION,BOTH,SCRIPT>"DATA_SEGMENT_END"	{ RTOKEN(DATA_SEGMENT_END);}
 <EXPRESSION,BOTH,SCRIPT>"ADDR"			{ RTOKEN(ADDR);}
 <EXPRESSION,BOTH,SCRIPT>"LOADADDR"		{ RTOKEN(LOADADDR);}
--- ld/ldexp.h.jj	2004-05-05 14:55:02.195232708 +0200
+++ ld/ldexp.h	2004-05-06 14:08:34.060897775 +0200
@@ -95,10 +95,12 @@ extern struct exp_data_seg {
   enum {
     exp_dataseg_none,
     exp_dataseg_align_seen,
+    exp_dataseg_relro_seen,
     exp_dataseg_end_seen,
+    exp_dataseg_relro_adjust,
     exp_dataseg_adjust
   } phase;
-  bfd_vma base, end, pagesize;
+  bfd_vma base, relro_end, end, pagesize;
 } exp_data_seg;
 
 typedef struct _fill_type fill_type;
--- ld/genscripts.sh.jj	2004-05-05 14:55:02.181235217 +0200
+++ ld/genscripts.sh	2004-05-06 14:08:34.056898492 +0200
@@ -283,7 +283,16 @@ if test -n "$GENERATE_COMBRELOC_SCRIPT";
     . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
   ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xc
   rm -f ${COMBRELOC}
+  LD_FLAG=w
+  RELRO_NOW=" "
+  COMBRELOC=ldscripts/${EMULATION_NAME}.xw.tmp
+  ( echo "/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */"
+    . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
+    . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
+  ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xw
+  rm -f ${COMBRELOC}
   COMBRELOC=
+  unset RELRO_NOW
 fi
 
 if test -n "$GENERATE_SHLIB_SCRIPT"; then
@@ -299,13 +308,22 @@ if test -n "$GENERATE_SHLIB_SCRIPT"; the
   if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
     LD_FLAG=cshared
     DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
-    COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp
+    COMBRELOC=ldscripts/${EMULATION_NAME}.xsc.tmp
     ( echo "/* Script for --shared -z combreloc: shared library, combine & sort relocs */"
       . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
       . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
     ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xsc
     rm -f ${COMBRELOC}
+    LD_FLAG=wshared
+    RELRO_NOW=" "
+    COMBRELOC=ldscripts/${EMULATION_NAME}.xsw.tmp
+    ( echo "/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */"
+      . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
+      . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
+    ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xsw
+    rm -f ${COMBRELOC}
     COMBRELOC=
+    unset RELRO_NOW
   fi
   unset CREATE_SHLIB
 fi
@@ -323,13 +341,22 @@ if test -n "$GENERATE_PIE_SCRIPT"; then
   if test -n "$GENERATE_COMBRELOC_SCRIPT"; then
     LD_FLAG=cpie
     DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}}
-    COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp
+    COMBRELOC=ldscripts/${EMULATION_NAME}.xdc.tmp
     ( echo "/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */"
       . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
       . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
     ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xdc
     rm -f ${COMBRELOC}
+    LD_FLAG=wpie
+    RELRO_NOW=" "
+    COMBRELOC=ldscripts/${EMULATION_NAME}.xdw.tmp
+    ( echo "/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */"
+      . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME}
+      . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc
+    ) | sed -e '/^ *$/d;s/[ 	]*$//' > ldscripts/${EMULATION_NAME}.xdw
+    rm -f ${COMBRELOC}
     COMBRELOC=
+    unset RELRO_NOW
   fi
   unset CREATE_PIE
 fi
--- ld/ldmain.c.jj	2004-05-05 14:55:02.184234679 +0200
+++ ld/ldmain.c	2004-05-06 14:08:34.057898313 +0200
@@ -303,6 +303,7 @@ main (int argc, char **argv)
   link_info.new_dtags = FALSE;
   link_info.combreloc = TRUE;
   link_info.eh_frame_hdr = FALSE;
+  link_info.relro = FALSE;
   link_info.strip_discarded = TRUE;
   link_info.strip = strip_none;
   link_info.discard = discard_sec_merge;
--- ld/emultempl/elf32.em.jj	2004-05-05 14:55:02.202231454 +0200
+++ ld/emultempl/elf32.em	2004-05-06 14:08:34.062897417 +0200
@@ -1458,6 +1458,10 @@ sed $sc ldscripts/${EMULATION_NAME}.xn  
 fi
 if test -n "$GENERATE_PIE_SCRIPT" ; then
 if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
+echo '  ; else if (link_info.pie && link_info.combreloc' >> e${EMULATION_NAME}.c
+echo '             && link_info.relro' >> e${EMULATION_NAME}.c
+echo '             && (link_info.flags & DT_BIND_NOW)) return' >> e${EMULATION_NAME}.c
+sed $sc ldscripts/${EMULATION_NAME}.xdw                >> e${EMULATION_NAME}.c
 echo '  ; else if (link_info.pie && link_info.combreloc) return' >> e${EMULATION_NAME}.c
 sed $sc ldscripts/${EMULATION_NAME}.xdc                >> e${EMULATION_NAME}.c
 fi
@@ -1466,6 +1470,10 @@ sed $sc ldscripts/${EMULATION_NAME}.xd  
 fi
 if test -n "$GENERATE_SHLIB_SCRIPT" ; then
 if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
+echo '  ; else if (link_info.shared && link_info.combreloc' >> e${EMULATION_NAME}.c
+echo '             && link_info.relro' >> e${EMULATION_NAME}.c
+echo '             && (link_info.flags & DT_BIND_NOW)) return' >> e${EMULATION_NAME}.c
+sed $sc ldscripts/${EMULATION_NAME}.xsw                >> e${EMULATION_NAME}.c
 echo '  ; else if (link_info.shared && link_info.combreloc) return' >> e${EMULATION_NAME}.c
 sed $sc ldscripts/${EMULATION_NAME}.xsc                >> e${EMULATION_NAME}.c
 fi
@@ -1473,6 +1481,9 @@ echo '  ; else if (link_info.shared) ret
 sed $sc ldscripts/${EMULATION_NAME}.xs                 >> e${EMULATION_NAME}.c
 fi
 if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
+echo '  ; else if (link_info.combreloc && link_info.relro' >> e${EMULATION_NAME}.c
+echo '             && (link_info.flags & DT_BIND_NOW)) return' >> e${EMULATION_NAME}.c
+sed $sc ldscripts/${EMULATION_NAME}.xw                 >> e${EMULATION_NAME}.c
 echo '  ; else if (link_info.combreloc) return'        >> e${EMULATION_NAME}.c
 sed $sc ldscripts/${EMULATION_NAME}.xc                 >> e${EMULATION_NAME}.c
 fi
@@ -1504,6 +1515,9 @@ fi
 if test -n "$GENERATE_PIE_SCRIPT" ; then
 if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
 cat >>e${EMULATION_NAME}.c <<EOF
+  else if (link_info.pie && link_info.combreloc
+	   && link_info.relro && (link_info.flags & DT_BIND_NOW))
+    return "ldscripts/${EMULATION_NAME}.xdw";
   else if (link_info.pie && link_info.combreloc)
     return "ldscripts/${EMULATION_NAME}.xdc";
 EOF
@@ -1516,6 +1530,9 @@ fi
 if test -n "$GENERATE_SHLIB_SCRIPT" ; then
 if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
 cat >>e${EMULATION_NAME}.c <<EOF
+  else if (link_info.shared && link_info.combreloc
+	   && link_info.relro && (link_info.flags & DT_BIND_NOW))
+    return "ldscripts/${EMULATION_NAME}.xsw";
   else if (link_info.shared && link_info.combreloc)
     return "ldscripts/${EMULATION_NAME}.xsc";
 EOF
@@ -1527,6 +1544,9 @@ EOF
 fi
 if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then
 cat >>e${EMULATION_NAME}.c <<EOF
+  else if (link_info.combreloc && link_info.relro
+	   && (link_info.flags & DT_BIND_NOW))
+    return "ldscripts/${EMULATION_NAME}.xw";
   else if (link_info.combreloc)
     return "ldscripts/${EMULATION_NAME}.xc";
 EOF
@@ -1666,6 +1686,10 @@ cat >>e${EMULATION_NAME}.c <<EOF
 	  link_info.noexecstack = TRUE;
 	  link_info.execstack = FALSE;
 	}
+      else if (strcmp (optarg, "relro") == 0)
+	link_info.relro = TRUE;
+      else if (strcmp (optarg, "norelro") == 0)
+	link_info.relro = FALSE;
       /* What about the other Solaris -z options? FIXME.  */
       break;
 EOF
@@ -1713,8 +1737,10 @@ cat >>e${EMULATION_NAME}.c <<EOF
   fprintf (file, _("  -z nodlopen\t\tMark DSO not available to dlopen\n"));
   fprintf (file, _("  -z nodump\t\tMark DSO not available to dldump\n"));
   fprintf (file, _("  -z noexecstack\tMark executable as not requiring executable stack\n"));
+  fprintf (file, _("  -z norelro\t\tDon't create RELRO program header\n"));
   fprintf (file, _("  -z now\t\tMark object non-lazy runtime binding\n"));
   fprintf (file, _("  -z origin\t\tMark object requiring immediate \$ORIGIN processing\n\t\t\t  at runtime\n"));
+  fprintf (file, _("  -z relro\t\tCreate RELRO program header\n"));
   fprintf (file, _("  -z KEYWORD\t\tIgnored for Solaris compatibility\n"));
 EOF
 fi
--- ld/testsuite/ld-s390/tlsbinpic.s.jj	2004-05-05 14:55:02.226227154 +0200
+++ ld/testsuite/ld-s390/tlsbinpic.s	2004-05-06 14:08:34.066896700 +0200
@@ -1,4 +1,5 @@
 	.section ".tdata", "awT", @progbits
+	.balign 32
 	.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
 	.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
 	.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
@@ -30,6 +31,7 @@ sh8:	.long 264
 	.text
 	.globl	fn2
 	.type	fn2,@function
+	.balign	64
 fn2:
 	/* Function prolog */
 	stm	%r6,%r14,24(%r15)
--- ld/testsuite/ld-s390/tlsbin_64.sd.jj	2004-05-05 14:55:02.247223391 +0200
+++ ld/testsuite/ld-s390/tlsbin_64.sd	2004-05-06 14:08:34.070895983 +0200
@@ -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                    .*
--- ld/testsuite/ld-s390/tlspic_64.rd.jj	2004-05-05 14:55:02.213229483 +0200
+++ ld/testsuite/ld-s390/tlspic_64.rd	2004-05-06 14:08:34.064897058 +0200
@@ -5,7 +5,7 @@
 #readelf: -WSsrl
 #target: s390x-*-*
 
-There are 18 section headers, starting at offset 0x[0-9a-f]+:
+There are 17 section headers, starting at offset 0x[0-9a-f]+:
 
 Section Headers:
   \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
@@ -16,32 +16,31 @@ Section Headers:
   \[ 4\] .rela.dyn +.*
   \[ 5\] .rela.plt +.*
   \[ 6\] .plt +.*
-  \[ 7\] .text +PROGBITS +0+790 0+790 0+270 00 +AX +0 +0 +4
-  \[ 8\] .data +.*
-  \[ 9\] .tdata +PROGBITS +0+1a00 0+a00 0+60 00 WAT +0 +0 +1
-  \[10\] .tbss +NOBITS +0+1a60 0+a60 0+20 00 WAT +0 +0 +1
-  \[11\] .dynamic +DYNAMIC +0+1a60 0+a60 0+130 10 +WA +3 +0 +8
-  \[12\] .got +PROGBITS +0+1b90 0+b90 0+b0 08 +WA +0 +0 +8
-  \[13\] .sbss +.*
-  \[14\] .bss +.*
-  \[15\] .shstrtab +.*
-  \[16\] .symtab +.*
-  \[17\] .strtab +.*
+  \[ 7\] .text +PROGBITS +.*
+  \[ 8\] .tdata +PROGBITS +0+1900 0+900 0+60 00 WAT +0 +0 +32
+  \[ 9\] .tbss +NOBITS +0+1960 0+960 0+20 00 WAT +0 +0 +1
+  \[10\] .dynamic +DYNAMIC +0+1960 0+960 0+130 10 +WA +3 +0 +8
+  \[11\] .got +PROGBITS +0+1a90 0+a90 0+b0 08 +WA +0 +0 +8
+  \[12\] .data +.*
+  \[13\] .bss +.*
+  \[14\] .shstrtab +.*
+  \[15\] .symtab +.*
+  \[16\] .strtab +.*
 Key to Flags:
 .*
 .*
 .*
 
 Elf file type is DYN \(Shared object file\)
-Entry point 0x790
+Entry point 0x[0-9a-f]+
 There are 4 program headers, starting at offset [0-9]+
 
 Program Headers:
   Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
   LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x1000
-  LOAD +0x0+a00 0x0+1a00 0x0+1a00 0x0+240 0x0+240 RW +0x1000
-  DYNAMIC +0x0+a60 0x0+1a60 0x0+1a60 0x0+130 0x0+130 RW +0x8
-  TLS +0x0+a00 0x0+1a00 0x0+1a00 0x0+60 0x0+80 R +0x1
+  LOAD +0x0+900 0x0+1900 0x0+1900 0x0+240 0x0+240 RW +0x1000
+  DYNAMIC +0x0+960 0x0+1960 0x0+1960 0x0+130 0x0+130 RW +0x8
+  TLS +0x0+900 0x0+1900 0x0+1900 0x0+60 0x0+80 R +0x20
 
  Section to Segment mapping:
   Segment Sections...
@@ -52,114 +51,104 @@ Program Headers:
 
 Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
  +Offset +Info +Type +Symbol's Value  Symbol's Name \+ Addend
-[0-9a-z]+  0+36 R_390_TLS_DTPMOD +0+
-[0-9a-z]+  0+38 R_390_TLS_TPOFF +0+24
-[0-9a-z]+  0+38 R_390_TLS_TPOFF +0+30
-[0-9a-z]+  0+36 R_390_TLS_DTPMOD +0+
-[0-9a-z]+  0+36 R_390_TLS_DTPMOD +0+
-[0-9a-z]+  0+38 R_390_TLS_TPOFF +0+64
-[0-9a-z]+  0+38 R_390_TLS_TPOFF +0+50
-[0-9a-z]+  0+38 R_390_TLS_TPOFF +0+70
-[0-9a-z]+  0+36 R_390_TLS_DTPMOD +0+
-[0-9a-z]+  0+38 R_390_TLS_TPOFF +0+44
-[0-9a-z]+  0+130+38 R_390_TLS_TPOFF +0+10 sg5 \+ 0
-[0-9a-z]+  0+150+36 R_390_TLS_DTPMOD +0+ sg1 \+ 0
-[0-9a-z]+  0+150+37 R_390_TLS_DTPOFF +0+ sg1 \+ 0
-[0-9a-z]+  0+180+38 R_390_TLS_TPOFF +0+4 sg2 \+ 0
+[0-9a-f]+  0+36 R_390_TLS_DTPMOD +0+
+[0-9a-f]+  0+38 R_390_TLS_TPOFF +0+24
+[0-9a-f]+  0+38 R_390_TLS_TPOFF +0+30
+[0-9a-f]+  0+36 R_390_TLS_DTPMOD +0+
+[0-9a-f]+  0+36 R_390_TLS_DTPMOD +0+
+[0-9a-f]+  0+38 R_390_TLS_TPOFF +0+64
+[0-9a-f]+  0+38 R_390_TLS_TPOFF +0+50
+[0-9a-f]+  0+38 R_390_TLS_TPOFF +0+70
+[0-9a-f]+  0+36 R_390_TLS_DTPMOD +0+
+[0-9a-f]+  0+38 R_390_TLS_TPOFF +0+44
+[0-9a-f]+  0+a0+38 R_390_TLS_TPOFF +0+10 sg5 \+ 0
+[0-9a-f]+  0+c0+36 R_390_TLS_DTPMOD +0+ sg1 \+ 0
+[0-9a-f]+  0+c0+37 R_390_TLS_DTPOFF +0+ sg1 \+ 0
+[0-9a-f]+  0+f0+38 R_390_TLS_TPOFF +0+4 sg2 \+ 0
 
-Relocation section '.rela.plt' at offset 0x738 contains 1 entries:
+Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
  +Offset +Info +Type +Symbol's Value  Symbol's Name \+ Addend
-0+1ba8  0+140+b R_390_JMP_SLOT +0+ __tls_get_offset \+ 0
+[0-9a-f]+  0+b0+b R_390_JMP_SLOT +0+ __tls_get_offset \+ 0
 
-Symbol table '.dynsym' contains 30 entries:
+Symbol table '.dynsym' contains 21 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE  LOCAL  DEFAULT  UND 
- +1: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +1 
- +2: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +2 
- +3: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +3 
- +4: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +4 
- +5: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +5 
- +6: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +6 
- +7: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +7 
- +8: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +8 
- +9: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +9 
- +10: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +10 
- +11: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +11 
- +12: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +12 
- +13: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +13 
- +14: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +14 
- +15: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +16: [0-9a-z]+ +0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
- +17: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +18: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +19: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +20: 0+ +0 NOTYPE  GLOBAL DEFAULT  UND __tls_get_offset
- +21: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +22: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
- +23: [0-9a-z]+ +0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
- +24: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +25: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +26: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +27: [0-9a-z]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _edata
- +28: [0-9a-z]+ +0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
- +29: 0+1c40 +0 NOTYPE  GLOBAL DEFAULT  ABS _end
+ +[0-9]+: 0+ +0 NOTYPE  LOCAL  DEFAULT  UND 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +7 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +8 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +9 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +12 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +13 
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: [0-9a-f]+ +0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 NOTYPE  GLOBAL DEFAULT  UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _end
 
-Symbol table '.symtab' contains 57 entries:
+Symbol table '.symtab' contains 56 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE  LOCAL  DEFAULT  UND 
- +1: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +1 
- +2: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +2 
- +3: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +3 
- +4: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +4 
- +5: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +5 
- +6: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +6 
- +7: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +7 
- +8: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +8 
- +9: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +9 
- +10: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +10 
- +11: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +11 
- +12: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +12 
- +13: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +13 
- +14: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +14 
- +15: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +15 
- +16: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +16 
- +17: [0-9a-z]+ +0 SECTION LOCAL  DEFAULT +17 
- +18: 0+20 +0 TLS +LOCAL  DEFAULT +9 sl1
- +19: 0+24 +0 TLS +LOCAL  DEFAULT +9 sl2
- +20: 0+28 +0 TLS +LOCAL  DEFAULT +9 sl3
- +21: 0+2c +0 TLS +LOCAL  DEFAULT +9 sl4
- +22: 0+30 +0 TLS +LOCAL  DEFAULT +9 sl5
- +23: 0+34 +0 TLS +LOCAL  DEFAULT +9 sl6
- +24: 0+38 +0 TLS +LOCAL  DEFAULT +9 sl7
- +25: 0+3c +0 TLS +LOCAL  DEFAULT +9 sl8
- +26: 0+60 +0 TLS +LOCAL  HIDDEN +10 sH1
- +27: 0+48 +0 TLS +LOCAL  HIDDEN +9 sh3
- +28: 0+64 +0 TLS +LOCAL  HIDDEN +10 sH2
- +29: 0+78 +0 TLS +LOCAL  HIDDEN +10 sH7
- +30: 0+58 +0 TLS +LOCAL  HIDDEN +9 sh7
- +31: 0+5c +0 TLS +LOCAL  HIDDEN +9 sh8
- +32: 0+6c +0 TLS +LOCAL  HIDDEN +10 sH4
- +33: 0+4c +0 TLS +LOCAL  HIDDEN +9 sh4
- +34: 0+68 +0 TLS +LOCAL  HIDDEN +10 sH3
- +35: 0+50 +0 TLS +LOCAL  HIDDEN +9 sh5
- +36: 0+70 +0 TLS +LOCAL  HIDDEN +10 sH5
- +37: 0+74 +0 TLS +LOCAL  HIDDEN +10 sH6
- +38: 0+7c +0 TLS +LOCAL  HIDDEN +10 sH8
- +39: 0+40 +0 TLS +LOCAL  HIDDEN +9 sh1
- +40: 0+44 +0 TLS +LOCAL  HIDDEN +9 sh2
- +41: 0+54 +0 TLS +LOCAL  HIDDEN +9 sh6
- +42: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
- +43: [0-9a-z]+ +0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
- +44: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
- +45: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
- +46: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
- +47: 0+ +0 NOTYPE  GLOBAL DEFAULT  UND __tls_get_offset
- +48: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
- +49: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
- +50: [0-9a-z]+ +0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
- +51: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
- +52: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
- +53: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
- +54: [0-9a-z]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _edata
- +55: [0-9a-z]+ +0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
- +56: [0-9a-z]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _end
+ +[0-9]+: 0+ +0 NOTYPE  LOCAL  DEFAULT  UND 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +1 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +2 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +3 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +4 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +5 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +6 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +7 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +8 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +9 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +10 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +11 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +12 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +13 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +14 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +15 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +16 
+ +[0-9]+: 0+20 +0 TLS +LOCAL  DEFAULT +8 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL  DEFAULT +8 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL  DEFAULT +8 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL  DEFAULT +8 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL  DEFAULT +8 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL  DEFAULT +8 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL  DEFAULT +8 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL  DEFAULT +8 sl8
+ +[0-9]+: 0+60 +0 TLS +LOCAL  HIDDEN +9 sH1
+ +[0-9]+: 0+48 +0 TLS +LOCAL  HIDDEN +8 sh3
+ +[0-9]+: 0+64 +0 TLS +LOCAL  HIDDEN +9 sH2
+ +[0-9]+: 0+78 +0 TLS +LOCAL  HIDDEN +9 sH7
+ +[0-9]+: 0+58 +0 TLS +LOCAL  HIDDEN +8 sh7
+ +[0-9]+: 0+5c +0 TLS +LOCAL  HIDDEN +8 sh8
+ +[0-9]+: 0+6c +0 TLS +LOCAL  HIDDEN +9 sH4
+ +[0-9]+: 0+4c +0 TLS +LOCAL  HIDDEN +8 sh4
+ +[0-9]+: 0+68 +0 TLS +LOCAL  HIDDEN +9 sH3
+ +[0-9]+: 0+50 +0 TLS +LOCAL  HIDDEN +8 sh5
+ +[0-9]+: 0+70 +0 TLS +LOCAL  HIDDEN +9 sH5
+ +[0-9]+: 0+74 +0 TLS +LOCAL  HIDDEN +9 sH6
+ +[0-9]+: 0+7c +0 TLS +LOCAL  HIDDEN +9 sH8
+ +[0-9]+: 0+40 +0 TLS +LOCAL  HIDDEN +8 sh1
+ +[0-9]+: 0+44 +0 TLS +LOCAL  HIDDEN +8 sh2
+ +[0-9]+: 0+54 +0 TLS +LOCAL  HIDDEN +8 sh6
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 sg8
+ +[0-9]+: [0-9a-f]+ +0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +8 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +8 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +8 sg5
+ +[0-9]+: 0+ +0 NOTYPE  GLOBAL DEFAULT  UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +8 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +8 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +8 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +8 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _end
--- ld/testsuite/ld-s390/tlsbin_64.rd.jj	2004-05-05 14:55:02.271219091 +0200
+++ ld/testsuite/ld-s390/tlsbin_64.rd	2004-05-06 14:08:34.074895267 +0200
@@ -5,7 +5,7 @@
 #readelf: -Ssrl
 #target: s390x-*-*
 
-There are 19 section headers, starting at offset 0x[0-9a-f]+:
+There are 18 section headers, starting at offset 0x[0-9a-f]+:
 
 Section Headers:
   \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
@@ -17,24 +17,23 @@ Section Headers:
   \[ 5\] .rela.dyn +.*
   \[ 6\] .rela.plt +.*
   \[ 7\] .plt +.*
-  \[ 8\] .text +PROGBITS +0+80000458 0+458 0+28c 00 +AX +0 +0 +4
-  \[ 9\] .data +.*
-  \[10\] .tdata +PROGBITS +0+800016e8 0+6e8 0+60 00 WAT +0 +0 +1
-  \[11\] .tbss +NOBITS +0+80001748 0+748 0+40 00 WAT +0 +0 +1
-  \[12\] .dynamic +DYNAMIC +0+80001748 0+748 0+140 10 +WA +4 +0 +8
-  \[13\] .got +PROGBITS +0+80001888 0+888 0+78 08 +WA +0 +0 +8
-  \[14\] .sbss +.*
-  \[15\] .bss +.*
-  \[16\] .shstrtab +.*
-  \[17\] .symtab +.*
-  \[18\] .strtab +.*
+  \[ 8\] .text +PROGBITS +.*
+  \[ 9\] .tdata +PROGBITS +0+80001720 0+720 0+60 00 WAT +0 +0 +32
+  \[10\] .tbss +NOBITS +0+80001780 0+780 0+40 00 WAT +0 +0 +1
+  \[11\] .dynamic +DYNAMIC +0+80001780 0+780 0+140 10 +WA +4 +0 +8
+  \[12\] .got +PROGBITS +0+800018c0 0+8c0 0+78 08 +WA +0 +0 +8
+  \[13\] .data +.*
+  \[14\] .bss +.*
+  \[15\] .shstrtab +.*
+  \[16\] .symtab +.*
+  \[17\] .strtab +.*
 Key to Flags:
 .*
 .*
 .*
 
 Elf file type is EXEC \(Executable file\)
-Entry point 0x80000644
+Entry point 0x[0-9a-f]+
 There are 6 program headers, starting at offset [0-9]+
 
 Program Headers:
@@ -42,10 +41,10 @@ Program Headers:
   PHDR +0x0+40 0x0+80000040 0x0+80000040 0x0+150 0x0+150 R E 0x8
   INTERP +0x0+190 0x0+80000190 0x0+80000190 0x0+11 0x0+11 R +0x1
 .*Requesting program interpreter.*
-  LOAD +0x0+ 0x0+80000000 0x0+80000000 0x0+6e4 0x0+6e4 R E 0x1000
-  LOAD +0x0+6e8 0x0+800016e8 0x0+800016e8 0x0+218 0x0+218 RW  0x1000
-  DYNAMIC +0x0+748 0x0+80001748 0x0+80001748 0x0+140 0x0+140 RW  0x8
-  TLS +0x0+6e8 0x0+800016e8 0x0+800016e8 0x0+60 0x0+a0 R +0x1
+  LOAD +0x0+ 0x0+80000000 0x0+80000000 0x0+720 0x0+720 R E 0x1000
+  LOAD +0x0+720 0x0+80001720 0x0+80001720 0x0+218 0x0+218 RW  0x1000
+  DYNAMIC +0x0+780 0x0+80001780 0x0+80001780 0x0+140 0x0+140 RW  0x8
+  TLS +0x0+720 0x0+80001720 0x0+80001720 0x0+60 0x0+a0 R +0x20
 
  Section to Segment mapping:
   Segment Sections...
@@ -56,101 +55,100 @@ Program Headers:
    04 +.tbss .dynamic *
    05 +.tdata .tbss *
 
-Relocation section '.rela.dyn' at offset 0x[0-9a-z]+ contains 4 entries:
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-[0-9a-z]+ +0+10+38 R_390_TLS_TPOFF +0+ sG3 \+ 0
-[0-9a-z]+ +0+30+38 R_390_TLS_TPOFF +0+ sG2 \+ 0
-[0-9a-z]+ +0+60+38 R_390_TLS_TPOFF +0+ sG6 \+ 0
-[0-9a-z]+ +0+70+38 R_390_TLS_TPOFF +0+ sG1 \+ 0
+[0-9a-f]+ +0+10+38 R_390_TLS_TPOFF +0+ sG3 \+ 0
+[0-9a-f]+ +0+30+38 R_390_TLS_TPOFF +0+ sG2 \+ 0
+[0-9a-f]+ +0+60+38 R_390_TLS_TPOFF +0+ sG6 \+ 0
+[0-9a-f]+ +0+70+38 R_390_TLS_TPOFF +0+ sG1 \+ 0
 
 Relocation section '.rela.plt' at offset 0x40+ contains 1 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-[0-9a-z]+ +0+40+b R_390_JMP_SLOT +0+80+438 __tls_get_offset \+ 0
+[0-9a-f]+ +0+40+b R_390_JMP_SLOT +0+80+438 __tls_get_offset \+ 0
 
 Symbol table '.dynsym' contains 11 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+ +0 TLS +GLOBAL DEFAULT +UND sG3
- +2: [0-9a-z]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +3: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
- +4: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_offset
- +5: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +6: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
- +7: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
- +8: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +9: [0-9a-z]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +10: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG3
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_offset
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
 
-Symbol table '.symtab' contains 71 entries:
+Symbol table '.symtab' contains 70 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +1 
- +2: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +2 
- +3: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +3 
- +4: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +4 
- +5: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +5 
- +6: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +6 
- +7: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +7 
- +8: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +8 
- +9: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +9 
- +10: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +10 
- +11: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +11 
- +12: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +12 
- +13: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +13 
- +14: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +14 
- +15: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +15 
- +16: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +16 
- +17: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +17 
- +18: [0-9a-z]+ +0 SECTION LOCAL +DEFAULT +18 
- +19: 0+20 +0 TLS +LOCAL +DEFAULT +10 sl1
- +20: 0+24 +0 TLS +LOCAL +DEFAULT +10 sl2
- +21: 0+28 +0 TLS +LOCAL +DEFAULT +10 sl3
- +22: 0+2c +0 TLS +LOCAL +DEFAULT +10 sl4
- +23: 0+30 +0 TLS +LOCAL +DEFAULT +10 sl5
- +24: 0+34 +0 TLS +LOCAL +DEFAULT +10 sl6
- +25: 0+38 +0 TLS +LOCAL +DEFAULT +10 sl7
- +26: 0+3c +0 TLS +LOCAL +DEFAULT +10 sl8
- +27: 0+80 +0 TLS +LOCAL +DEFAULT +11 bl1
- +28: 0+84 +0 TLS +LOCAL +DEFAULT +11 bl2
- +29: 0+88 +0 TLS +LOCAL +DEFAULT +11 bl3
- +30: 0+8c +0 TLS +LOCAL +DEFAULT +11 bl4
- +31: 0+90 +0 TLS +LOCAL +DEFAULT +11 bl5
- +32: 0+94 +0 TLS +LOCAL +DEFAULT +11 bl6
- +33: 0+98 +0 TLS +LOCAL +DEFAULT +11 bl7
- +34: 0+9c +0 TLS +LOCAL +DEFAULT +11 bl8
- +35: 0+ +0 TLS +GLOBAL DEFAULT +UND sG3
- +36: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
- +37: 0+7c +0 TLS +GLOBAL DEFAULT +11 bg8
- +38: 0+74 +0 TLS +GLOBAL DEFAULT +11 bg6
- +39: 0+68 +0 TLS +GLOBAL DEFAULT +11 bg3
- +40: [0-9a-z]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +41: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
- +42: 0+48 +0 TLS +GLOBAL HIDDEN +10 sh3
- +43: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
- +44: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
- +45: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
- +46: 0+70 +0 TLS +GLOBAL DEFAULT +11 bg5
- +47: 0+58 +0 TLS +GLOBAL HIDDEN +10 sh7
- +48: 0+5c +0 TLS +GLOBAL HIDDEN +10 sh8
- +49: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_offset
- +50: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
- +51: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +8 _start
- +52: 0+4c +0 TLS +GLOBAL HIDDEN +10 sh4
- +53: 0+78 +0 TLS +GLOBAL DEFAULT +11 bg7
- +54: 0+50 +0 TLS +GLOBAL HIDDEN +10 sh5
- +55: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +56: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
- +57: [0-9a-z]+ +0 FUNC +GLOBAL DEFAULT +8 fn2
- +58: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2
- +59: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
- +60: 0+40 +0 TLS +GLOBAL HIDDEN +10 sh1
- +61: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6
- +62: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7
- +63: [0-9a-z]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +64: [0-9a-z]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +65: 0+80+190+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +66: 0+44 +0 TLS +GLOBAL HIDDEN +10 sh2
- +67: 0+54 +0 TLS +GLOBAL HIDDEN +10 sh6
- +68: 0+64 +0 TLS +GLOBAL DEFAULT +11 bg2
- +69: 0+60 +0 TLS +GLOBAL DEFAULT +11 bg1
- +70: 0+6c +0 TLS +GLOBAL DEFAULT +11 bg4
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +9 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL +DEFAULT +9 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +9 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL +DEFAULT +9 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +9 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL +DEFAULT +9 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL +DEFAULT +9 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL +DEFAULT +9 sl8
+ +[0-9]+: 0+80 +0 TLS +LOCAL +DEFAULT +10 bl1
+ +[0-9]+: 0+84 +0 TLS +LOCAL +DEFAULT +10 bl2
+ +[0-9]+: 0+88 +0 TLS +LOCAL +DEFAULT +10 bl3
+ +[0-9]+: 0+8c +0 TLS +LOCAL +DEFAULT +10 bl4
+ +[0-9]+: 0+90 +0 TLS +LOCAL +DEFAULT +10 bl5
+ +[0-9]+: 0+94 +0 TLS +LOCAL +DEFAULT +10 bl6
+ +[0-9]+: 0+98 +0 TLS +LOCAL +DEFAULT +10 bl7
+ +[0-9]+: 0+9c +0 TLS +LOCAL +DEFAULT +10 bl8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG3
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +9 sg8
+ +[0-9]+: 0+7c +0 TLS +GLOBAL DEFAULT +10 bg8
+ +[0-9]+: 0+74 +0 TLS +GLOBAL DEFAULT +10 bg6
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +10 bg3
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +9 sg3
+ +[0-9]+: 0+48 +0 TLS +GLOBAL HIDDEN +9 sh3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +9 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +9 sg5
+ +[0-9]+: 0+70 +0 TLS +GLOBAL DEFAULT +10 bg5
+ +[0-9]+: 0+58 +0 TLS +GLOBAL HIDDEN +9 sh7
+ +[0-9]+: 0+5c +0 TLS +GLOBAL HIDDEN +9 sh8
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_offset
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +8 _start
+ +[0-9]+: 0+4c +0 TLS +GLOBAL HIDDEN +9 sh4
+ +[0-9]+: 0+78 +0 TLS +GLOBAL DEFAULT +10 bg7
+ +[0-9]+: 0+50 +0 TLS +GLOBAL HIDDEN +9 sh5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +8 fn2
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +9 sg2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
+ +[0-9]+: 0+40 +0 TLS +GLOBAL HIDDEN +9 sh1
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +9 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +9 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+44 +0 TLS +GLOBAL HIDDEN +9 sh2
+ +[0-9]+: 0+54 +0 TLS +GLOBAL HIDDEN +9 sh6
+ +[0-9]+: 0+64 +0 TLS +GLOBAL DEFAULT +10 bg2
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +10 bg1
+ +[0-9]+: 0+6c +0 TLS +GLOBAL DEFAULT +10 bg4
--- ld/testsuite/ld-s390/tlspic1_64.s.jj	2004-05-05 14:55:02.264220345 +0200
+++ ld/testsuite/ld-s390/tlspic1_64.s	2004-05-06 14:08:34.072895625 +0200
@@ -1,4 +1,5 @@
 	.section ".tdata", "awT", @progbits
+	.balign 32
 	.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
 	.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
 	.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
@@ -29,6 +30,7 @@ sh8:	.long 264
 	.text
 	.globl	fn1
 	.type	fn1,@function
+	.balign	64
 fn1:
 	/* Funtion prolog */
 	stmg	%r6,%r14,48(%r15)
--- ld/testsuite/ld-s390/tlspic.dd.jj	2004-05-05 14:55:02.244223928 +0200
+++ ld/testsuite/ld-s390/tlspic.dd	2004-05-06 14:08:34.069896162 +0200
@@ -9,153 +9,181 @@
 
 Disassembly of section .text:
 
-0+4bc <fn1>:
+0+[0-9a-f]+ <fn1>:
 # function prolog
- +4bc:	90 6e f0 18       	stm	%r6,%r14,24\(%r15\)
- +4c0:	a7 d5 00 30       	bras	%r13,520 <fn1\+0x64>
+ +[0-9a-f]+:	90 6e f0 18       	stm	%r6,%r14,24\(%r15\)
+ +[0-9a-f]+:	a7 d5 00 30       	bras	%r13,[0-9a-f]+ <fn1\+0x64>
 # _GLOBAL_OFFSET_TABLE_-.LT1
- +4c4:	00 00 12 78       	.long	0x00001278
+ +[0-9a-f]+:	[0-9a-f ]+       	.long	0x[0-9a-f]+
 # __tls_get_addr@plt-.LT1
- +4c8:	ff ff ff d8       	.long	0xffffffd8
+ +[0-9a-f]+:	[0-9a-f ]+       	.long	0x[0-9a-f]+
 # sg1@tlsgd
- +4cc:	00 00 00 38       	.long	0x00000038
+ +[0-9a-f]+:	00 00 00 38       	.long	0x00000038
 # sg2@tlsgd
- +4d0:	00 00 00 48       	.long	0x00000048
+ +[0-9a-f]+:	00 00 00 48       	.long	0x00000048
 # sl1@tlsgd
- +4d4:	00 00 00 10       	.long	0x00000010
+ +[0-9a-f]+:	00 00 00 10       	.long	0x00000010
 # sl2@tlsgd
- +4d8:	00 00 00 18       	.long	0x00000018
+ +[0-9a-f]+:	00 00 00 18       	.long	0x00000018
 # sh1@tlsgd
- +4dc:	00 00 00 4c       	.long	0x0000004c
+ +[0-9a-f]+:	00 00 00 4c       	.long	0x0000004c
 # sh2@tlsgd
- +4e0:	00 00 00 54       	.long	0x00000054
+ +[0-9a-f]+:	00 00 00 54       	.long	0x00000054
 # sH1@tlsgd
- +4e4:	00 00 00 28       	.long	0x00000028
+ +[0-9a-f]+:	00 00 00 28       	.long	0x00000028
 # sH2@tlsgd
- +4e8:	00 00 00 30       	.long	0x00000030
+ +[0-9a-f]+:	00 00 00 30       	.long	0x00000030
 # sl1@tlsldm
- +4ec:	00 00 00 20       	.long	0x00000020
+ +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
 # sl1@dtpoff
- +4f0:	00 00 00 20       	.long	0x00000020
+ +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
 # sl2@dtpoff
- +4f4:	00 00 00 24       	.long	0x00000024
+ +[0-9a-f]+:	00 00 00 24       	.long	0x00000024
 # sh1@tlsldm
- +4f8:	00 00 00 20       	.long	0x00000020
+ +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
 # sh1@dtpoff
- +4fc:	00 00 00 40       	.long	0x00000040
+ +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
 # sh2@dtpoff
- +500:	00 00 00 44       	.long	0x00000044
+ +[0-9a-f]+:	00 00 00 44       	.long	0x00000044
 # sH1@tlsldm
- +504:	00 00 00 20       	.long	0x00000020
+ +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
 # sH1@dtpoff
- +508:	00 00 00 60       	.long	0x00000060
+ +[0-9a-f]+:	00 00 00 60       	.long	0x00000060
 # sH2@dtpoff
- +50c:	00 00 00 64       	.long	0x00000064
+ +[0-9a-f]+:	00 00 00 64       	.long	0x00000064
 # sg2@gotntpoff
- +510:	00 00 00 48       	.long	0x00000048
+ +[0-9a-f]+:	00 00 00 48       	.long	0x00000048
 # sl2@gotntpoff
- +514:	00 00 00 18       	.long	0x00000018
+ +[0-9a-f]+:	00 00 00 18       	.long	0x00000018
 # sh2@gotntpoff
- +518:	00 00 00 54       	.long	0x00000054
+ +[0-9a-f]+:	00 00 00 54       	.long	0x00000054
 # sH2@gotntpoff
- +51c:	00 00 00 30       	.long	0x00000030
+ +[0-9a-f]+:	00 00 00 30       	.long	0x00000030
 # function prolog
- +520:	18 ef             	lr	%r14,%r15
- +522:	58 c0 d0 00       	l	%r12,0\(%r13\)
- +526:	a7 fa ff a0       	ahi	%r15,-96
- +52a:	41 cc d0 00       	la	%r12,0\(%r12,%r13\)
- +52e:	50 e0 e0 00       	st	%r14,0\(%r14\)
+ +[0-9a-f]+:	18 ef             	lr	%r14,%r15
+ +[0-9a-f]+:	58 c0 d0 00       	l	%r12,0\(%r13\)
+ +[0-9a-f]+:	a7 fa ff a0       	ahi	%r15,-96
+ +[0-9a-f]+:	41 cc d0 00       	la	%r12,0\(%r12,%r13\)
+ +[0-9a-f]+:	50 e0 e0 00       	st	%r14,0\(%r14\)
 # Extract TCB and load branch offset
- +532:	b2 4f 00 90       	ear	%r9,%a0
- +536:	58 70 d0 04       	l	%r7,4\(%r13\)
+ +[0-9a-f]+:	b2 4f 00 90       	ear	%r9,%a0
+ +[0-9a-f]+:	58 70 d0 04       	l	%r7,4\(%r13\)
 # GD
- +53a:	58 20 d0 08       	l	%r2,8\(%r13\)
- +53e:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
- +542:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 20 d0 08       	l	%r2,8\(%r13\)
+ +[0-9a-f]+:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE because variable is referenced through IE too
- +546:	58 20 d0 0c       	l	%r2,12\(%r13\)
- +54a:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
- +54e:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 20 d0 0c       	l	%r2,12\(%r13\)
+ +[0-9a-f]+:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD against local variable
- +552:	58 20 d0 10       	l	%r2,16\(%r13\)
- +556:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
- +55a:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 20 d0 10       	l	%r2,16\(%r13\)
+ +[0-9a-f]+:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE against local variable referenced through IE too
- +55e:	58 20 d0 14       	l	%r2,20\(%r13\)
- +562:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
- +566:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 20 d0 14       	l	%r2,20\(%r13\)
+ +[0-9a-f]+:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD against hidden and local variable
- +56a:	58 20 d0 18       	l	%r2,24\(%r13\)
- +56e:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
- +572:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 20 d0 18       	l	%r2,24\(%r13\)
+ +[0-9a-f]+:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE against hidden and local variable referenced through
 # IE too
- +576:	58 20 d0 1c       	l	%r2,28\(%r13\)
- +57a:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
- +57e:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 20 d0 1c       	l	%r2,28\(%r13\)
+ +[0-9a-f]+:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD against hidden but not local variable
- +582:	58 20 d0 20       	l	%r2,32\(%r13\)
- +586:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
- +58a:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 20 d0 20       	l	%r2,32\(%r13\)
+ +[0-9a-f]+:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE against hidden but not local variable referenced through
 # IE too
- +58e:	58 20 d0 24       	l	%r2,36\(%r13\)
- +592:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
- +596:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 20 d0 24       	l	%r2,36\(%r13\)
+ +[0-9a-f]+:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # LD
- +59a:	58 20 d0 28       	l	%r2,40\(%r13\)
- +59e:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
- +5a2:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +5a6:	58 40 d0 2c       	l	%r4,44\(%r13\)
- +5aa:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +5ae:	58 40 d0 30       	l	%r4,48\(%r13\)
- +5b2:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	58 20 d0 28       	l	%r2,40\(%r13\)
+ +[0-9a-f]+:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
+ +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 40 d0 2c       	l	%r4,44\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	58 40 d0 30       	l	%r4,48\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # LD against hidden and local variables
- +5b6:	58 20 d0 34       	l	%r2,52\(%r13\)
- +5ba:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
- +5be:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +5c2:	58 40 d0 38       	l	%r4,56\(%r13\)
- +5c6:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +5ca:	58 40 d0 34       	l	%r4,52\(%r13\)
- +5ce:	41 55 30 00       	la	%r5,0\(%r5,%r3\)
+ +[0-9a-f]+:	58 20 d0 34       	l	%r2,52\(%r13\)
+ +[0-9a-f]+:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
+ +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 40 d0 38       	l	%r4,56\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	58 40 d0 34       	l	%r4,52\(%r13\)
+ +[0-9a-f]+:	41 55 30 00       	la	%r5,0\(%r5,%r3\)
 # LD against hidden but not local variables
- +5d2:	58 20 d0 40       	l	%r2,64\(%r13\)
- +5d6:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
- +5da:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +5de:	58 30 d0 44       	l	%r3,68\(%r13\)
- +5e2:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +5e6:	58 40 d0 48       	l	%r4,72\(%r13\)
- +5ea:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	58 20 d0 40       	l	%r2,64\(%r13\)
+ +[0-9a-f]+:	4d e7 d0 00       	bas	%r14,0\(%r7,%r13\)
+ +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+ +[0-9a-f]+:	58 30 d0 44       	l	%r3,68\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	58 40 d0 48       	l	%r4,72\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # IE against global var
- +5ee:	58 30 d0 4c       	l	%r3,76\(%r13\)
- +5f2:	58 33 c0 00       	l	%r3,0\(%r3,%r12\)
- +5f6:	41 33 30 00       	la	%r3,0\(%r3,%r3\)
+ +[0-9a-f]+:	58 30 d0 4c       	l	%r3,76\(%r13\)
+ +[0-9a-f]+:	58 33 c0 00       	l	%r3,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 33 30 00       	la	%r3,0\(%r3,%r3\)
 # IE against local var
- +5fa:	58 30 d0 50       	l	%r3,80\(%r13\)
- +5fe:	58 43 c0 00       	l	%r4,0\(%r3,%r12\)
- +602:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	58 30 d0 50       	l	%r3,80\(%r13\)
+ +[0-9a-f]+:	58 43 c0 00       	l	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # IE against hidden and local var
- +606:	58 30 d0 54       	l	%r3,84\(%r13\)
- +60a:	58 43 c0 00       	l	%r4,0\(%r3,%r12\)
- +60e:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	58 30 d0 54       	l	%r3,84\(%r13\)
+ +[0-9a-f]+:	58 43 c0 00       	l	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # IE against hidden but not local var
- +612:	58 30 d0 58       	l	%r3,88\(%r13\)
- +616:	58 43 c0 00       	l	%r4,0\(%r3,%r12\)
- +61a:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	58 30 d0 58       	l	%r3,88\(%r13\)
+ +[0-9a-f]+:	58 43 c0 00       	l	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # IE against global var with small got access (no optimization)
- +61e:	58 30 c0 34       	l	%r3,52\(%r12\)
- +622:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	58 30 c0 34       	l	%r3,52\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against local var with small got access (no optimization)
- +626:	58 30 c0 1c       	l	%r3,28\(%r12\)
- +62a:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	58 30 c0 1c       	l	%r3,28\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against hidden and local var with small got access
 # (no optimization)
- +62e:	58 30 c0 40       	l	%r3,64\(%r12\)
- +632:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	58 30 c0 40       	l	%r3,64\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against hidden but not local var with small got access
 # (no optimization)
- +636:	58 30 c0 44       	l	%r3,68\(%r12\)
- +63a:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	58 30 c0 44       	l	%r3,68\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # function prolog
- +63e:	98 6e f0 78       	lm	%r6,%r14,120\(%r15\)
- +642:	07 fe             	br	%r14
+ +[0-9a-f]+:	98 6e f0 78       	lm	%r6,%r14,120\(%r15\)
+ +[0-9a-f]+:	07 fe             	br	%r14
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
--- ld/testsuite/ld-s390/tlspic1.s.jj	2004-05-05 14:55:02.258221420 +0200
+++ ld/testsuite/ld-s390/tlspic1.s	2004-05-06 14:08:34.071895804 +0200
@@ -1,4 +1,5 @@
 	.section ".tdata", "awT", @progbits
+	.balign 32
 	.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
 	.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
 	.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
@@ -29,6 +30,7 @@ sh8:	.long 264
 	.text
 	.globl	fn1
 	.type	fn1,@function
+	.balign 64
 fn1:
 	/* Funtion prolog */
 	stm	%r6,%r14,24(%r15)
--- ld/testsuite/ld-s390/tlspic_64.sd.jj	2004-05-05 14:55:02.230226437 +0200
+++ ld/testsuite/ld-s390/tlspic_64.sd	2004-05-06 14:08:34.066896700 +0200
@@ -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  .*
--- ld/testsuite/ld-s390/tlspic.rd.jj	2004-05-05 14:55:02.251222674 +0200
+++ ld/testsuite/ld-s390/tlspic.rd	2004-05-06 14:08:34.071895804 +0200
@@ -5,7 +5,7 @@
 #readelf: -Ssrl
 #target: s390-*-*
 
-There are 18 section headers, starting at offset 0x[0-9a-f]+:
+There are 17 section headers, starting at offset 0x[0-9a-f]+:
 
 Section Headers:
   \[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
@@ -16,32 +16,31 @@ Section Headers:
   \[ 4\] .rela.dyn +.*
   \[ 5\] .rela.plt +.*
   \[ 6\] .plt +.*
-  \[ 7\] .text +PROGBITS +0+4bc 0+4bc 0+188 00  AX  0 +0  4
-  \[ 8\] .data +.*
-  \[ 9\] .tdata +PROGBITS +0+1644 0+644 0+60 00 WAT  0 +0  1
-  \[10\] .tbss +NOBITS +0+16a4 0+6a4 0+20 00 WAT  0 +0  1
-  \[11\] .dynamic +DYNAMIC +0+16a4 0+6a4 0+98 08  WA  3 +0  4
-  \[12\] .got +PROGBITS +0+173c 0+73c 0+58 04  WA  0 +0  4
-  \[13\] .sbss +.*
-  \[14\] .bss +.*
-  \[15\] .shstrtab +.*
-  \[16\] .symtab +.*
-  \[17\] .strtab +.*
+  \[ 7\] .text +PROGBITS +.*
+  \[ 8\] .tdata +PROGBITS +0+1600 0+600 0+60 00 WAT  0 +0 32
+  \[ 9\] .tbss +NOBITS +0+1660 0+660 0+20 00 WAT  0 +0  1
+  \[10\] .dynamic +DYNAMIC +0+1660 0+660 0+98 08  WA  3 +0  4
+  \[11\] .got +PROGBITS +0+16f8 0+6f8 0+58 04  WA  0 +0  4
+  \[12\] .data +.*
+  \[13\] .bss +.*
+  \[14\] .shstrtab +.*
+  \[15\] .symtab +.*
+  \[16\] .strtab +.*
 Key to Flags:
 .*
 .*
 .*
 
 Elf file type is DYN \(Shared object file\)
-Entry point 0x4bc
+Entry point 0x[0-9a-f]+
 There are 4 program headers, starting at offset [0-9]+
 
 Program Headers:
   Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz  Flg Align
   LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x1000
-  LOAD +0x0+644 0x0+1644 0x0+1644 0x00150 0x00150 RW  0x1000
-  DYNAMIC +0x0+6a4 0x0+16a4 0x0+16a4 0x0+98 0x0+98 RW  0x4
-  TLS +0x0+644 0x0+1644 0x0+1644 0x0+60 0x0+80 R +0x1
+  LOAD +0x0+600 0x0+1600 0x0+1600 0x00150 0x00150 RW  0x1000
+  DYNAMIC +0x0+660 0x0+1660 0x0+1660 0x0+98 0x0+98 RW  0x4
+  TLS +0x0+600 0x0+1600 0x0+1600 0x0+60 0x0+80 R +0x20
 
  Section to Segment mapping:
   Segment Sections...
@@ -50,7 +49,7 @@ Program Headers:
  +02 +.tbss .dynamic 
  +03 +.tdata .tbss 
 
-Relocation section '.rela.dyn' at offset 0x3c8 contains 14 entries:
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
  Offset +Info +Type +Sym.Value  Sym. Name \+ Addend
 [0-9a-f]+  0+36 R_390_TLS_DTPMOD +0+
 [0-9a-f]+  0+38 R_390_TLS_TPOFF +0+24
@@ -62,104 +61,94 @@ Relocation section '.rela.dyn' at offset
 [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
--- ld/testsuite/ld-s390/tlsbin_64.dd.jj	2004-05-05 14:55:02.268219628 +0200
+++ ld/testsuite/ld-s390/tlsbin_64.dd	2004-05-06 14:08:34.073895446 +0200
@@ -18,196 +18,206 @@
 
 Disassembly of section .text:
 
-0+80000458 <fn2>:
+0+[0-9a-f]+ <fn2>:
 # function prolog
- +80000458:	eb 6e f0 30 00 24 	stmg	%r6,%r14,48\(%r15\)
- +8000045e:	a7 d5 00 3e       	bras	%r13,800004da <fn2\+0x82>
+ +[0-9a-f]+:	eb 6e f0 30 00 24 	stmg	%r6,%r14,48\(%r15\)
+ +[0-9a-f]+:	a7 d5 00 3e       	bras	%r13,[0-9a-f]+ <fn2\+0x82>
 # sG1@tlsgd
- +80000462:	00 00 00 00       	.long	0x00000000
- +80000466:	00 00 00 60       	.long	0x00000060
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 60       	.long	0x00000060
 # sG2@tlsgd
- +8000046a:	00 00 00 00       	.long	0x00000000
- +8000046e:	00 00 00 48       	.long	0x00000048
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 48       	.long	0x00000048
 # sg1@tlsgd
- +80000472:	ff ff ff ff       	.long	0xffffffff
- +80000476:	ff ff ff 60       	.long	0xffffff60
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff 60       	.long	0xffffff60
 # sl1@tlsgd
- +8000047a:	ff ff ff ff       	.long	0xffffffff
- +8000047e:	ff ff ff 80       	.long	0xffffff80
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff 80       	.long	0xffffff80
 # sh1@tlsgd
- +80000482:	ff ff ff ff       	.long	0xffffffff
- +80000486:	ff ff ff a0       	.long	0xffffffa0
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff a0       	.long	0xffffffa0
 # sl1@tlsldm
- +8000048a:	00 00 00 00       	.long	0x00000000
- +8000048e:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 # sl1@dtpoff
- +80000492:	ff ff ff ff       	.long	0xffffffff
- +80000496:	ff ff ff 80       	.long	0xffffff80
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff 80       	.long	0xffffff80
 # sl2@dtpoff
- +8000049a:	ff ff ff ff       	.long	0xffffffff
- +8000049e:	ff ff ff 84       	.long	0xffffff84
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff 84       	.long	0xffffff84
 # sh1@tlsldm
- +800004a2:	00 00 00 00       	.long	0x00000000
- +800004a6:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 # sh1@dtpoff
- +800004aa:	ff ff ff ff       	.long	0xffffffff
- +800004ae:	ff ff ff a0       	.long	0xffffffa0
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff a0       	.long	0xffffffa0
 # sh2@dtpoff
- +800004b2:	ff ff ff ff       	.long	0xffffffff
- +800004b6:	ff ff ff a4       	.long	0xffffffa4
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff a4       	.long	0xffffffa4
 # sG2@gotntpoff
- +800004ba:	00 00 00 00       	.long	0x00000000
- +800004be:	00 00 00 48       	.long	0x00000048
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 48       	.long	0x00000048
 # sg1@gotntpoff
- +800004c2:	ff ff ff ff       	.long	0xffffffff
- +800004c6:	ff ff ff 60       	.long	0xffffff60
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff 60       	.long	0xffffff60
 # sl1@gotntpoff
- +800004ca:	ff ff ff ff       	.long	0xffffffff
- +800004ce:	ff ff ff 80       	.long	0xffffff80
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff 80       	.long	0xffffff80
 # sh1@gotntpoff
- +800004d2:	ff ff ff ff       	.long	0xffffffff
- +800004d6:	ff ff ff a0       	.long	0xffffffa0
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff a0       	.long	0xffffffa0
 # function prolog
- +800004da:	b9 04 00 ef       	lgr	%r14,%r15
- +800004de:	a7 fb ff 60       	aghi	%r15,-160
- +800004e2:	c0 c0 00 00 09 d3 	larl	%r12,80001888 <_GLOBAL_OFFSET_TABLE_>
- +800004e8:	e3 e0 e0 00 00 24 	stg	%r14,0\(%r14\)
+ +[0-9a-f]+:	b9 04 00 ef       	lgr	%r14,%r15
+ +[0-9a-f]+:	a7 fb ff 60       	aghi	%r15,-160
+ +[0-9a-f]+:	c0 c0 [0-9a-f ]+ 	larl	%r12,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_>
+ +[0-9a-f]+:	e3 e0 e0 00 00 24 	stg	%r14,0\(%r14\)
 # extract TCB
- +800004ee:	b2 4f 00 90       	ear	%r9,%a0
- +800004f2:	eb 94 00 20 00 0d 	sllg	%r9,%r4,32
- +800004f8:	b2 4f 00 91       	ear	%r9,%a1
+ +[0-9a-f]+:	b2 4f 00 90       	ear	%r9,%a0
+ +[0-9a-f]+:	eb 94 00 20 00 0d 	sllg	%r9,%r4,32
+ +[0-9a-f]+:	b2 4f 00 91       	ear	%r9,%a1
 # GD -> IE because variable is not defined in executable
- +800004fc:	e3 c0 d0 00 00 04 	lg	%r12,0\(%r13\)
- +80000502:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
- +80000508:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 c0 d0 00 00 04 	lg	%r12,0\(%r13\)
+ +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE because variable is not defined in executable where
 # the variable is referenced through IE too
- +8000050c:	e3 20 d0 08 00 04 	lg	%r2,8\(%r13\)
- +80000512:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
- +80000518:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 08 00 04 	lg	%r2,8\(%r13\)
+ +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> LE with global variable defined in executable
- +8000051c:	e3 20 d0 10 00 04 	lg	%r2,16\(%r13\)
- +80000522:	c0 04 00 00 00 00 	brcl	0,80000522 <fn2\+0xca>
- +80000528:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 10 00 04 	lg	%r2,16\(%r13\)
+ +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0xca>
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> LE with local variable defined in executable
- +8000052c:	e3 20 d0 18 00 04 	lg	%r2,24\(%r13\)
- +80000532:	c0 04 00 00 00 00 	brcl	0,80000532 <fn2\+0xda>
- +80000538:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 18 00 04 	lg	%r2,24\(%r13\)
+ +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0xda>
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> LE with hidden variable defined in executable
- +8000053c:	e3 20 d0 20 00 04 	lg	%r2,32\(%r13\)
- +80000542:	c0 04 00 00 00 00 	brcl	0,80000542 <fn2\+0xea>
- +80000548:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 20 00 04 	lg	%r2,32\(%r13\)
+ +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0xea>
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # LD -> LE
- +8000054c:	e3 20 d0 28 00 04 	lg	%r2,40\(%r13\)
- +80000552:	c0 04 00 00 00 00 	brcl	0,80000552 <fn2\+0xfa>
- +80000558:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +8000055c:	e3 40 d0 30 00 04 	lg	%r4,48\(%r13\)
- +80000562:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +80000566:	e3 40 d0 38 00 04 	lg	%r4,56\(%r13\)
- +8000056c:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +80000570:	e3 20 d0 40 00 04 	lg	%r2,64\(%r13\)
- +80000576:	c0 04 00 00 00 00 	brcl	0,80000576 <fn2\+0x11e>
- +8000057c:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +80000580:	e3 40 d0 48 00 04 	lg	%r4,72\(%r13\)
- +80000586:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +8000058a:	e3 40 d0 50 00 04 	lg	%r4,80\(%r13\)
- +80000590:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 20 d0 28 00 04 	lg	%r2,40\(%r13\)
+ +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0xfa>
+ +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 40 d0 30 00 04 	lg	%r4,48\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 40 d0 38 00 04 	lg	%r4,56\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 20 d0 40 00 04 	lg	%r2,64\(%r13\)
+ +[0-9a-f]+:	c0 04 00 00 00 00 	brcl	0,[0-9a-f]+ <fn2\+0x11e>
+ +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 40 d0 48 00 04 	lg	%r4,72\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 40 d0 50 00 04 	lg	%r4,80\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # IE against global var
- +80000594:	e3 30 d0 58 00 04 	lg	%r3,88\(%r13\)
- +8000059a:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
- +800005a0:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 d0 58 00 04 	lg	%r3,88\(%r13\)
+ +[0-9a-f]+:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE -> LE against global var defined in exec
- +800005a4:	e3 30 d0 60 00 04 	lg	%r3,96\(%r13\)
- +800005aa:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +800005b0:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 60 00 04 	lg	%r3,96\(%r13\)
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE -> LE against local var
- +800005b4:	e3 30 d0 68 00 04 	lg	%r3,104\(%r13\)
- +800005ba:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +800005c0:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 68 00 04 	lg	%r3,104\(%r13\)
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE -> LE against hidden var
- +800005c4:	e3 30 d0 70 00 04 	lg	%r3,112\(%r13\)
- +800005ca:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +800005d0:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 70 00 04 	lg	%r3,112\(%r13\)
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against global var with larl got access
- +800005d4:	c0 30 00 00 09 6e 	larl	%r3,800018b0 <\_GLOBAL\_OFFSET\_TABLE\_\+0x28>
- +800005da:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
- +800005e0:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x28>
+ +[0-9a-f]+:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against global var defined in exec with larl got access
- +800005e4:	c0 30 00 00 09 6e 	larl	%r3,800018c0 <\_GLOBAL\_OFFSET\_TABLE\_\+0x38>
- +800005ea:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +800005f0:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x38>
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against local var with larl got access
- +800005f4:	c0 30 00 00 09 5a 	larl	%r3,800018a8 <\_GLOBAL\_OFFSET\_TABLE\_\+0x20>
- +800005fa:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +80000600:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x20>
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against hidden var with larl got access
- +80000604:	c0 30 00 00 09 62 	larl	%r3,800018c8 <\_GLOBAL\_OFFSET\_TABLE\_\+0x40>
- +8000060a:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +80000610:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x40>
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against global var with small got access (no optimization)
- +80000614:	e3 30 c0 28 00 04 	lg	%r3,40\(%r12\)
- +8000061a:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 c0 28 00 04 	lg	%r3,40\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against global var defined in exec with small got access
 # (no optimization)
- +8000061e:	e3 30 c0 38 00 04 	lg	%r3,56\(%r12\)
- +80000624:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 c0 38 00 04 	lg	%r3,56\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against local var with small got access (no optimization)
- +80000628:	e3 30 c0 20 00 04 	lg	%r3,32\(%r12\)
- +8000062e:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 c0 20 00 04 	lg	%r3,32\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against hidden var with small got access (no optimization)
- +80000632:	e3 30 c0 40 00 04 	lg	%r3,64\(%r12\)
- +80000638:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 c0 40 00 04 	lg	%r3,64\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # function epilog
- +8000063c:	eb 6e f0 d0 00 04 	lmg	%r6,%r14,208\(%r15\)
- +80000642:	07 fe             	br	%r14
+ +[0-9a-f]+:	eb 6e f0 d0 00 04 	lmg	%r6,%r14,208\(%r15\)
+ +[0-9a-f]+:	07 fe             	br	%r14
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
 
-0+80000644 <_start>:
+0+[0-9a-f]+ <_start>:
 # function prolog
- +80000644:	90 6e f0 18       	stm	%r6,%r14,24\(%r15\)
- +80000648:	a7 d5 00 16       	bras	%r13,80000674 <_start\+0x30>
+ +[0-9a-f]+:	90 6e f0 18       	stm	%r6,%r14,24\(%r15\)
+ +[0-9a-f]+:	a7 d5 00 16       	bras	%r13,[0-9a-f]+ <_start\+0x30>
 # sG6@indntpoff
- +8000064c:	00 00 00 00       	.long	0x00000000
- +80000650:	80 00 18 e0       	ssm	2272\(%r1\)
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	80 00 [0-9a-f ]+       	ssm	[0-9]+\(%r1\)
 # bg6@indntpoff
- +80000654:	ff ff ff ff       	.long	0xffffffff
- +80000658:	ff ff ff d4       	.long	0xffffffd4
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff d4       	.long	0xffffffd4
 # bl6@indntpoff
- +8000065c:	ff ff ff ff       	.long	0xffffffff
- +80000660:	ff ff ff f4       	.long	0xfffffff4
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff f4       	.long	0xfffffff4
 # sh6@indntpoff
- +80000664:	ff ff ff ff       	.long	0xffffffff
- +80000668:	ff ff ff b4       	.long	0xffffffb4
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff b4       	.long	0xffffffb4
 # sg3@indntpoff
- +8000066c:	ff ff ff ff       	.long	0xffffffff
- +80000670:	ff ff ff 68       	.long	0xffffff68
+ +[0-9a-f]+:	ff ff ff ff       	.long	0xffffffff
+ +[0-9a-f]+:	ff ff ff 68       	.long	0xffffff68
 # function prolog
- +80000674:	b9 04 00 ef       	lgr	%r14,%r15
- +80000678:	a7 fb ff 60       	aghi	%r15,-160
- +8000067c:	e3 e0 e0 00 00 24 	stg	%r14,0\(%r14\)
+ +[0-9a-f]+:	b9 04 00 ef       	lgr	%r14,%r15
+ +[0-9a-f]+:	a7 fb ff 60       	aghi	%r15,-160
+ +[0-9a-f]+:	e3 e0 e0 00 00 24 	stg	%r14,0\(%r14\)
 # extract TCB
- +80000682:	b2 4f 00 90       	ear	%r9,%a0
- +80000686:	eb 94 00 20 00 0d 	sllg	%r9,%r4,32
- +8000068c:	b2 4f 00 91       	ear	%r9,%a1
+ +[0-9a-f]+:	b2 4f 00 90       	ear	%r9,%a0
+ +[0-9a-f]+:	eb 94 00 20 00 0d 	sllg	%r9,%r4,32
+ +[0-9a-f]+:	b2 4f 00 91       	ear	%r9,%a1
 # IE against global var
- +80000690:	e3 30 d0 00 00 04 	lg	%r3,0\(%r13\)
- +80000696:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
- +8000069c:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 d0 00 00 04 	lg	%r3,0\(%r13\)
+ +[0-9a-f]+:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE -> LE against global var defined in exec
- +800006a0:	e3 30 d0 08 00 04 	lg	%r3,8\(%r13\)
- +800006a6:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +800006ac:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 08 00 04 	lg	%r3,8\(%r13\)
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE -> LE against local var
- +800006b0:	e3 30 d0 10 00 04 	lg	%r3,16\(%r13\)
- +800006b6:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +800006bc:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 10 00 04 	lg	%r3,16\(%r13\)
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE -> LE against hidden but not local var
- +800006c0:	e3 30 d0 18 00 04 	lg	%r3,24\(%r13\)
- +800006c6:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
- +800006cc:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 18 00 04 	lg	%r3,24\(%r13\)
+ +[0-9a-f]+:	eb 43 00 00 00 0d 	sllg	%r4,%r3,0
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # LE, global var defined in exec
- +800006d0:	e3 40 d0 20 00 04 	lg	%r4,32\(%r13\)
- +800006d6:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 40 d0 20 00 04 	lg	%r4,32\(%r13\)
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # function epilog
- +800006da:	eb 6e f0 d0 00 04 	lmg	%r6,%r14,208\(%r15\)
- +800006e0:	07 fe             	br	%r14
- +800006e2:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	eb 6e f0 d0 00 04 	lmg	%r6,%r14,208\(%r15\)
+ +[0-9a-f]+:	07 fe             	br	%r14
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
--- ld/testsuite/ld-s390/tlspic_64.dd.jj	2004-05-05 14:55:02.240224645 +0200
+++ ld/testsuite/ld-s390/tlspic_64.dd	2004-05-06 14:08:34.069896162 +0200
@@ -9,186 +9,194 @@
 
 Disassembly of section .text:
 
-0+790 <fn1>:
+0+[0-9a-f]+ <fn1>:
 # function prolog
- +790:	eb 6e f0 30 00 24 	stmg	%r6,%r14,48\(%r15\)
- +796:	a7 d5 00 56       	bras	%r13,842 <fn1\+0xb2>
+ +[0-9a-f]+:	eb 6e f0 30 00 24 	stmg	%r6,%r14,48\(%r15\)
+ +[0-9a-f]+:	a7 d5 00 56       	bras	%r13,[0-9a-f]+ <fn1\+0xb2>
 # sg1@tlsgd
- +79a:	00 00 00 00       	.long	0x00000000
- +79e:	00 00 00 70       	.long	0x00000070
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 70       	.long	0x00000070
 # sg2@tlsgd
- +7a2:	00 00 00 00       	.long	0x00000000
- +7a6:	00 00 00 90       	.long	0x00000090
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 90       	.long	0x00000090
 # sl1@tlsgd
- +7aa:	00 00 00 00       	.long	0x00000000
- +7ae:	00 00 00 20       	.long	0x00000020
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
 # sl2@tlsgd
- +7b2:	00 00 00 00       	.long	0x00000000
- +7b6:	00 00 00 30       	.long	0x00000030
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 30       	.long	0x00000030
 # sh1@tlsgd
- +7ba:	00 00 00 00       	.long	0x00000000
- +7be:	00 00 00 98       	.long	0x00000098
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 98       	.long	0x00000098
 # sh2@tlsgd
- +7c2:	00 00 00 00       	.long	0x00000000
- +7c6:	00 00 00 a8       	.long	0x000000a8
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 a8       	.long	0x000000a8
 # sH1@tlsgd
- +7ca:	00 00 00 00       	.long	0x00000000
- +7ce:	00 00 00 50       	.long	0x00000050
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 50       	.long	0x00000050
 # sH2@tlsgd
- +7d2:	00 00 00 00       	.long	0x00000000
- +7d6:	00 00 00 60       	.long	0x00000060
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 60       	.long	0x00000060
 # sl1@tlsldm
- +7da:	00 00 00 00       	.long	0x00000000
- +7de:	00 00 00 40       	.long	0x00000040
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
 # sl1@dtpoff
- +7e2:	00 00 00 00       	.long	0x00000000
- +7e6:	00 00 00 20       	.long	0x00000020
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
 # sl2@dtpoff
- +7ea:	00 00 00 00       	.long	0x00000000
- +7ee:	00 00 00 24       	.long	0x00000024
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 24       	.long	0x00000024
 # sh1@tlsldm
- +7f2:	00 00 00 00       	.long	0x00000000
- +7f6:	00 00 00 40       	.long	0x00000040
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
 # sh1@dtpoff
- +7fa:	00 00 00 00       	.long	0x00000000
- +7fe:	00 00 00 40       	.long	0x00000040
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
 # sh2@dtpoff
- +802:	00 00 00 00       	.long	0x00000000
- +806:	00 00 00 44       	.long	0x00000044
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 44       	.long	0x00000044
 # sH1@tlsldm
- +80a:	00 00 00 00       	.long	0x00000000
- +80e:	00 00 00 40       	.long	0x00000040
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 40       	.long	0x00000040
 # sH1@dtpoff
- +812:	00 00 00 00       	.long	0x00000000
- +816:	00 00 00 60       	.long	0x00000060
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 60       	.long	0x00000060
 # sH2@dtpoff
- +81a:	00 00 00 00       	.long	0x00000000
- +81e:	00 00 00 64       	.long	0x00000064
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 64       	.long	0x00000064
 # sg2@gotntpoff
- +822:	00 00 00 00       	.long	0x00000000
- +826:	00 00 00 90       	.long	0x00000090
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 90       	.long	0x00000090
 # sl2@gotntpoff
- +82a:	00 00 00 00       	.long	0x00000000
- +82e:	00 00 00 30       	.long	0x00000030
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 30       	.long	0x00000030
 # sh2@gotntpoff
- +832:	00 00 00 00       	.long	0x00000000
- +836:	00 00 00 a8       	.long	0x000000a8
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 a8       	.long	0x000000a8
 # sH2@gotntpoff
- +83a:	00 00 00 00       	.long	0x00000000
- +83e:	00 00 00 60       	.long	0x00000060
+ +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
+ +[0-9a-f]+:	00 00 00 60       	.long	0x00000060
 # function prolog
- +842:	b9 04 00 ef       	lgr	%r14,%r15
- +846:	c0 c0 00 00 09 a5 	larl	%r12,1b90 <_GLOBAL_OFFSET_TABLE_>
- +84c:	a7 fb ff 60       	aghi	%r15,-160
- +850:	e3 e0 e0 00 00 24 	stg	%r14,0\(%r14\)
+ +[0-9a-f]+:	b9 04 00 ef       	lgr	%r14,%r15
+ +[0-9a-f]+:	c0 c0 [0-9a-f ]+ 	larl	%r12,[0-9a-f]+ <_GLOBAL_OFFSET_TABLE_>
+ +[0-9a-f]+:	a7 fb ff 60       	aghi	%r15,-160
+ +[0-9a-f]+:	e3 e0 e0 00 00 24 	stg	%r14,0\(%r14\)
 # extract TCB
- +856:	b2 4f 00 90       	ear	%r9,%a0
- +85a:	eb 94 00 20 00 0d 	sllg	%r9,%r4,32
- +860:	b2 4f 00 91       	ear	%r9,%a1
+ +[0-9a-f]+:	b2 4f 00 90       	ear	%r9,%a0
+ +[0-9a-f]+:	eb 94 00 20 00 0d 	sllg	%r9,%r4,32
+ +[0-9a-f]+:	b2 4f 00 91       	ear	%r9,%a1
 # GD
- +864:	e3 20 d0 00 00 04 	lg	%r2,0\(%r13\)
- +86a:	c0 e5 ff ff ff 83 	brasl	%r14,770 <sH8\+0x6f4>
- +870:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 00 00 04 	lg	%r2,0\(%r13\)
+ +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE because variable is referenced through IE too
- +874:	e3 20 d0 08 00 04 	lg	%r2,8\(%r13\)
- +87a:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
- +880:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 08 00 04 	lg	%r2,8\(%r13\)
+ +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD against local variable
- +884:	e3 20 d0 10 00 04 	lg	%r2,16\(%r13\)
- +88a:	c0 e5 ff ff ff 73 	brasl	%r14,770 <sH8\+0x6f4>
- +890:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 10 00 04 	lg	%r2,16\(%r13\)
+ +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE against local variable referenced through IE too
- +894:	e3 20 d0 18 00 04 	lg	%r2,24\(%r13\)
- +89a:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
- +8a0:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 18 00 04 	lg	%r2,24\(%r13\)
+ +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD against hidden and local variable
- +8a4:	e3 20 d0 20 00 04 	lg	%r2,32\(%r13\)
- +8aa:	c0 e5 ff ff ff 63 	brasl	%r14,770 <sH8\+0x6f4>
- +8b0:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 20 00 04 	lg	%r2,32\(%r13\)
+ +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE against hidden and local variable referenced through
 # IE too
- +8b4:	e3 20 d0 28 00 04 	lg	%r2,40\(%r13\)
- +8ba:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
- +8c0:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 28 00 04 	lg	%r2,40\(%r13\)
+ +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD against hidden but not local variable
- +8c4:	e3 20 d0 30 00 04 	lg	%r2,48\(%r13\)
- +8ca:	c0 e5 ff ff ff 53 	brasl	%r14,770 <sH8\+0x6f4>
- +8d0:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 30 00 04 	lg	%r2,48\(%r13\)
+ +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE against hidden but not local variable referenced through
 # IE too
- +8d4:	e3 20 d0 38 00 04 	lg	%r2,56\(%r13\)
- +8da:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
- +8e0:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 20 d0 38 00 04 	lg	%r2,56\(%r13\)
+ +[0-9a-f]+:	e3 22 c0 00 00 04 	lg	%r2,0\(%r2,%r12\)
+ +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # LD
- +8e4:	e3 20 d0 40 00 04 	lg	%r2,64\(%r13\)
- +8ea:	c0 e5 ff ff ff 43 	brasl	%r14,770 <sH8\+0x6f4>
- +8f0:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +8f4:	e3 40 d0 48 00 04 	lg	%r4,72\(%r13\)
- +8fa:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +8fe:	e3 40 d0 50 00 04 	lg	%r4,80\(%r13\)
- +904:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 20 d0 40 00 04 	lg	%r2,64\(%r13\)
+ +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 40 d0 48 00 04 	lg	%r4,72\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 40 d0 50 00 04 	lg	%r4,80\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # LD against hidden and local variables
- +908:	e3 20 d0 58 00 04 	lg	%r2,88\(%r13\)
- +90e:	c0 e5 ff ff ff 31 	brasl	%r14,770 <sH8\+0x6f4>
- +914:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +918:	e3 40 d0 60 00 04 	lg	%r4,96\(%r13\)
- +91e:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +922:	e3 40 d0 68 00 04 	lg	%r4,104\(%r13\)
- +928:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 20 d0 58 00 04 	lg	%r2,88\(%r13\)
+ +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 40 d0 60 00 04 	lg	%r4,96\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 40 d0 68 00 04 	lg	%r4,104\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # LD against hidden but not local variables
- +92c:	e3 20 d0 70 00 04 	lg	%r2,112\(%r13\)
- +932:	c0 e5 ff ff ff 1f 	brasl	%r14,770 <sH8\+0x6f4>
- +938:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +93c:	e3 40 d0 78 00 04 	lg	%r4,120\(%r13\)
- +942:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +946:	e3 40 d0 80 00 04 	lg	%r4,128\(%r13\)
- +94c:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 20 d0 70 00 04 	lg	%r2,112\(%r13\)
+ +[0-9a-f]+:	c0 e5 [0-9a-f ]+ 	brasl	%r14,[0-9a-f]+ <.*>
+ +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+ +[0-9a-f]+:	e3 40 d0 78 00 04 	lg	%r4,120\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+ +[0-9a-f]+:	e3 40 d0 80 00 04 	lg	%r4,128\(%r13\)
+ +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # IE against global var
- +950:	e3 30 d0 88 00 04 	lg	%r3,136\(%r13\)
- +956:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
- +95c:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 d0 88 00 04 	lg	%r3,136\(%r13\)
+ +[0-9a-f]+:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against local var
- +960:	e3 30 d0 90 00 04 	lg	%r3,144\(%r13\)
- +966:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
- +96c:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 90 00 04 	lg	%r3,144\(%r13\)
+ +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against hidden and local var
- +970:	e3 30 d0 98 00 04 	lg	%r3,152\(%r13\)
- +976:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
- +97c:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 98 00 04 	lg	%r3,152\(%r13\)
+ +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against hidden but not local var
- +980:	e3 30 d0 a0 00 04 	lg	%r3,160\(%r13\)
- +986:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
- +98c:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	e3 30 d0 a0 00 04 	lg	%r3,160\(%r13\)
+ +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against global var with larl got access
- +990:	c0 30 00 00 09 34 	larl	%r3,1bf8 <\_GLOBAL\_OFFSET\_TABLE\_\+0x68>
- +996:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
- +99c:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x68>
+ +[0-9a-f]+:	e3 33 c0 00 00 04 	lg	%r3,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against local var with larl got access
- +9a0:	c0 30 00 00 09 14 	larl	%r3,1bc8 <\_GLOBAL\_OFFSET\_TABLE\_\+0x38>
- +9a6:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
- +9ac:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x38>
+ +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against hidden and local var with larl got access
- +9b0:	c0 30 00 00 09 30 	larl	%r3,1c10 <\_GLOBAL\_OFFSET\_TABLE\_\+0x80>
- +9b6:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
- +9bc:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x80>
+ +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against hidden but not local var with larl got access
- +9c0:	c0 30 00 00 09 2c 	larl	%r3,1c18 <\_GLOBAL\_OFFSET\_TABLE\_\+0x88>
- +9c6:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
- +9cc:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+ +[0-9a-f]+:	c0 30 [0-9a-f ]+ 	larl	%r3,[0-9a-f]+ <\_GLOBAL\_OFFSET\_TABLE\_\+0x88>
+ +[0-9a-f]+:	e3 43 c0 00 00 04 	lg	%r4,0\(%r3,%r12\)
+ +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against global var with small got access (no optimization)
- +9d0:	e3 30 c0 68 00 04 	lg	%r3,104\(%r12\)
- +9d6:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 c0 68 00 04 	lg	%r3,104\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against local var with small got access (no optimization)
- +9da:	e3 30 c0 38 00 04 	lg	%r3,56\(%r12\)
- +9e0:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 c0 38 00 04 	lg	%r3,56\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against hidden and local var with small got access
 # (no optimization)
- +9e4:	e3 30 c0 80 00 04 	lg	%r3,128\(%r12\)
- +9ea:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 c0 80 00 04 	lg	%r3,128\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against hidden but not local var with small got access
 # (no optimization)
- +9ee:	e3 30 c0 88 00 04 	lg	%r3,136\(%r12\)
- +9f4:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+ +[0-9a-f]+:	e3 30 c0 88 00 04 	lg	%r3,136\(%r12\)
+ +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # function epilog
- +9f8:	eb 6e f0 d0 00 04 	lmg	%r6,%r14,208\(%r15\)
- +9fe:	07 fe             	br	%r14
+ +[0-9a-f]+:	eb 6e f0 d0 00 04 	lmg	%r6,%r14,208\(%r15\)
+ +[0-9a-f]+:	07 fe             	br	%r14
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
+ +[0-9a-f]+:	07 07             	bcr	0,%r7
--- ld/testsuite/ld-s390/tlsbin.dd.jj	2004-05-05 14:55:02.233225899 +0200
+++ ld/testsuite/ld-s390/tlsbin.dd	2004-05-06 14:08:34.067896521 +0200
@@ -18,168 +18,176 @@
 
 Disassembly of section .text:
 
-0+4002e4 <fn2>:
+0+[0-9a-f]+ <fn2>:
 # function prolog
- +4002e4:	90 6e f0 18       	stm	%r6,%r14,24\(%r15\)
- +4002e8:	a7 d5 00 24       	bras	%r13,400330 <fn2\+0x4c>
+  +[0-9a-f]+:	90 6e f0 18       	stm	%r6,%r14,24\(%r15\)
+  +[0-9a-f]+:	a7 d5 00 24       	bras	%r13,[0-9a-f]+ <fn2\+0x4c>
 # _GLOBAL_OFFSET_TABLE_
- +4002ec:	00 00 12 90       	.long	0x00001290
+  +[0-9a-f]+:	[0-9a-f ]+       	.long	0x[0-9a-f]+
 # __tls_get_addr@plt-.LT1
- +4002f0:	ff ff ff d8       	.long	0xffffffd8
+  +[0-9a-f]+:	[0-9a-f ]+       	.long	0x[0-9a-f]+
 # sG1@tlsgd
- +4002f4:	00 00 00 28       	.long	0x00000028
+  +[0-9a-f]+:	00 00 00 28       	.long	0x00000028
 # sG2@tlsgd
- +4002f8:	00 00 00 20       	.long	0x00000020
+  +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
 # sg1@tlsgd
- +4002fc:	ff ff ff 60       	.long	0xffffff60
+  +[0-9a-f]+:	ff ff ff 60       	.long	0xffffff60
 # sl1@tlsgd
- +400300:	ff ff ff 80       	.long	0xffffff80
+  +[0-9a-f]+:	ff ff ff 80       	.long	0xffffff80
 # sh1@tlsgd
- +400304:	ff ff ff a0       	.long	0xffffffa0
+  +[0-9a-f]+:	ff ff ff a0       	.long	0xffffffa0
 # sl1@tlsldm
- +400308:	00 00 00 00       	.long	0x00000000
+  +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 # sl1@dtpoff
- +40030c:	ff ff ff 80       	.long	0xffffff80
+  +[0-9a-f]+:	ff ff ff 80       	.long	0xffffff80
 # sl2@dtpoff
- +400310:	ff ff ff 84       	.long	0xffffff84
+  +[0-9a-f]+:	ff ff ff 84       	.long	0xffffff84
 # sh1@tlsldm
- +400314:	00 00 00 00       	.long	0x00000000
+  +[0-9a-f]+:	00 00 00 00       	.long	0x00000000
 # sh1@dtpoff
- +400318:	ff ff ff a0       	.long	0xffffffa0
+  +[0-9a-f]+:	ff ff ff a0       	.long	0xffffffa0
 # sh2@dtpoff
- +40031c:	ff ff ff a4       	.long	0xffffffa4
+  +[0-9a-f]+:	ff ff ff a4       	.long	0xffffffa4
 # sG2@gotntpoff
- +400320:	00 00 00 20       	.long	0x00000020
+  +[0-9a-f]+:	00 00 00 20       	.long	0x00000020
 # sg1@gotntpoff
- +400324:	ff ff ff 60       	.long	0xffffff60
+  +[0-9a-f]+:	ff ff ff 60       	.long	0xffffff60
 # sl1@gotntpoff
- +400328:	ff ff ff 80       	.long	0xffffff80
+  +[0-9a-f]+:	ff ff ff 80       	.long	0xffffff80
 # sh1@gotntpoff
- +40032c:	ff ff ff a0       	.long	0xffffffa0
+  +[0-9a-f]+:	ff ff ff a0       	.long	0xffffffa0
 # function prolog
- +400330:	18 ef             	lr	%r14,%r15
- +400332:	58 c0 d0 00       	l	%r12,0\(%r13\)
- +400336:	a7 fa ff a0       	ahi	%r15,-96
- +40033a:	41 cc d0 00       	la	%r12,0\(%r12,%r13\)
- +40033e:	50 e0 e0 00       	st	%r14,0\(%r14\)
+  +[0-9a-f]+:	18 ef             	lr	%r14,%r15
+  +[0-9a-f]+:	58 c0 d0 00       	l	%r12,0\(%r13\)
+  +[0-9a-f]+:	a7 fa ff a0       	ahi	%r15,-96
+  +[0-9a-f]+:	41 cc d0 00       	la	%r12,0\(%r12,%r13\)
+  +[0-9a-f]+:	50 e0 e0 00       	st	%r14,0\(%r14\)
 # Extract TCB and load branch offset
- +400342:	b2 4f 00 90       	ear	%r9,%a0
- +400346:	58 70 d0 04       	l	%r7,4\(%r13\)
+  +[0-9a-f]+:	b2 4f 00 90       	ear	%r9,%a0
+  +[0-9a-f]+:	58 70 d0 04       	l	%r7,4\(%r13\)
 # GD -> IE because variable is not defined in executable
- +40034a:	58 20 d0 08       	l	%r2,8\(%r13\)
- +40034e:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
- +400352:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+  +[0-9a-f]+:	58 20 d0 08       	l	%r2,8\(%r13\)
+  +[0-9a-f]+:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
+  +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> IE because variable is not defined in executable where
 # the variable is referenced through IE too
- +400356:	58 20 d0 0c       	l	%r2,12\(%r13\)
- +40035a:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
- +40035e:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+  +[0-9a-f]+:	58 20 d0 0c       	l	%r2,12\(%r13\)
+  +[0-9a-f]+:	58 22 c0 00       	l	%r2,0\(%r2,%r12\)
+  +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> LE with global variable defined in executable
- +400362:	58 20 d0 10       	l	%r2,16\(%r13\)
- +400366:	47 00 00 00       	bc	0,0
- +40036a:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+  +[0-9a-f]+:	58 20 d0 10       	l	%r2,16\(%r13\)
+  +[0-9a-f]+:	47 00 00 00       	bc	0,0
+  +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> LE with local variable defined in executable
- +40036e:	58 20 d0 14       	l	%r2,20\(%r13\)
- +400372:	47 00 00 00       	bc	0,0
- +400376:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+  +[0-9a-f]+:	58 20 d0 14       	l	%r2,20\(%r13\)
+  +[0-9a-f]+:	47 00 00 00       	bc	0,0
+  +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # GD -> LE with hidden variable defined in executable
- +40037a:	58 20 d0 18       	l	%r2,24\(%r13\)
- +40037e:	47 00 00 00       	bc	0,0
- +400382:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
+  +[0-9a-f]+:	58 20 d0 18       	l	%r2,24\(%r13\)
+  +[0-9a-f]+:	47 00 00 00       	bc	0,0
+  +[0-9a-f]+:	41 22 90 00       	la	%r2,0\(%r2,%r9\)
 # LD -> LE
- +400386:	58 20 d0 1c       	l	%r2,28\(%r13\)
- +40038a:	47 00 00 00       	bc	0,0
- +40038e:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +400392:	58 40 d0 20       	l	%r4,32\(%r13\)
- +400396:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +40039a:	58 40 d0 24       	l	%r4,36\(%r13\)
- +40039e:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+  +[0-9a-f]+:	58 20 d0 1c       	l	%r2,28\(%r13\)
+  +[0-9a-f]+:	47 00 00 00       	bc	0,0
+  +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+  +[0-9a-f]+:	58 40 d0 20       	l	%r4,32\(%r13\)
+  +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+  +[0-9a-f]+:	58 40 d0 24       	l	%r4,36\(%r13\)
+  +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # LD -> LE against hidden variables
- +4003a2:	58 20 d0 28       	l	%r2,40\(%r13\)
- +4003a6:	47 00 00 00       	bc	0,0
- +4003aa:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
- +4003ae:	58 40 d0 2c       	l	%r4,44\(%r13\)
- +4003b2:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
- +4003b6:	58 40 d0 30       	l	%r4,48\(%r13\)
- +4003ba:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+  +[0-9a-f]+:	58 20 d0 28       	l	%r2,40\(%r13\)
+  +[0-9a-f]+:	47 00 00 00       	bc	0,0
+  +[0-9a-f]+:	41 32 90 00       	la	%r3,0\(%r2,%r9\)
+  +[0-9a-f]+:	58 40 d0 2c       	l	%r4,44\(%r13\)
+  +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
+  +[0-9a-f]+:	58 40 d0 30       	l	%r4,48\(%r13\)
+  +[0-9a-f]+:	41 54 30 00       	la	%r5,0\(%r4,%r3\)
 # IE against global var
- +4003be:	58 30 d0 34       	l	%r3,52\(%r13\)
- +4003c2:	58 33 c0 00       	l	%r3,0\(%r3,%r12\)
- +4003c6:	58 33 90 00       	l	%r3,0\(%r3,%r9\)
+  +[0-9a-f]+:	58 30 d0 34       	l	%r3,52\(%r13\)
+  +[0-9a-f]+:	58 33 c0 00       	l	%r3,0\(%r3,%r12\)
+  +[0-9a-f]+:	58 33 90 00       	l	%r3,0\(%r3,%r9\)
 # IE -> LE against global var defined in exec
- +4003ca:	58 30 d0 38       	l	%r3,56\(%r13\)
- +4003ce:	18 43             	lr	%r4,%r3
- +4003d0:	07 00             	bcr	0,%r0
- +4003d2:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+  +[0-9a-f]+:	58 30 d0 38       	l	%r3,56\(%r13\)
+  +[0-9a-f]+:	18 43             	lr	%r4,%r3
+  +[0-9a-f]+:	07 00             	bcr	0,%r0
+  +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE -> LE against local var
- +4003d6:	58 30 d0 3c       	l	%r3,60\(%r13\)
- +4003da:	18 43             	lr	%r4,%r3
- +4003dc:	07 00             	bcr	0,%r0
- +4003de:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+  +[0-9a-f]+:	58 30 d0 3c       	l	%r3,60\(%r13\)
+  +[0-9a-f]+:	18 43             	lr	%r4,%r3
+  +[0-9a-f]+:	07 00             	bcr	0,%r0
+  +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE -> LE against hidden var
- +4003e2:	58 30 d0 40       	l	%r3,64\(%r13\)
- +4003e6:	18 43             	lr	%r4,%r3
- +4003e8:	07 00             	bcr	0,%r0
- +4003ea:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+  +[0-9a-f]+:	58 30 d0 40       	l	%r3,64\(%r13\)
+  +[0-9a-f]+:	18 43             	lr	%r4,%r3
+  +[0-9a-f]+:	07 00             	bcr	0,%r0
+  +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE against global var with small got access (no optimization)
- +4003ee:	58 30 c0 14       	l	%r3,20\(%r12\)
- +4003f2:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+  +[0-9a-f]+:	58 30 c0 14       	l	%r3,20\(%r12\)
+  +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against global var defined in exec with small got access
 # (no optimization)
- +4003f6:	58 30 c0 18       	l	%r3,24\(%r12\)
- +4003fa:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+  +[0-9a-f]+:	58 30 c0 18       	l	%r3,24\(%r12\)
+  +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against local var with small got access (no optimization)
- +4003fe:	58 30 c0 10       	l	%r3,16\(%r12\)
- +400402:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+  +[0-9a-f]+:	58 30 c0 10       	l	%r3,16\(%r12\)
+  +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE against hidden var with small got access (no optimization)
- +400406:	58 30 c0 1c       	l	%r3,28\(%r12\)
- +40040a:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+  +[0-9a-f]+:	58 30 c0 1c       	l	%r3,28\(%r12\)
+  +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # function epilog
- +40040e:	98 6e f0 78       	lm	%r6,%r14,120\(%r15\)
- +400412:	07 fe             	br	%r14
+  +[0-9a-f]+:	98 6e f0 78       	lm	%r6,%r14,120\(%r15\)
+  +[0-9a-f]+:	07 fe             	br	%r14
+  +[0-9a-f]+:	07 07             	bcr	0,%r7
+  +[0-9a-f]+:	07 07             	bcr	0,%r7
+  +[0-9a-f]+:	07 07             	bcr	0,%r7
+  +[0-9a-f]+:	07 07             	bcr	0,%r7
+  +[0-9a-f]+:	07 07             	bcr	0,%r7
+  +[0-9a-f]+:	07 07             	bcr	0,%r7
+  +[0-9a-f]+:	07 07             	bcr	0,%r7
+  +[0-9a-f]+:	07 07             	bcr	0,%r7
 
-0+400414 <_start>:
+0+[0-9a-f]+ <_start>:
 # function prolog
- +400414:	90 6e f0 18       	stm	%r6,%r14,24\(%r15\)
- +400418:	a7 d5 00 0c       	bras	%r13,400430 <_start\+0x1c>
+  +[0-9a-f]+:	90 6e f0 18       	stm	%r6,%r14,24\(%r15\)
+  +[0-9a-f]+:	a7 d5 00 0c       	bras	%r13,[0-9a-f]+ <_start\+0x1c>
 # sG6@indntpoff
- +40041c:	00 40 15 a0       	.long	0x004015a0
+  +[0-9a-f]+:	00 40 15 e4       	.long	0x004015e4
 # bg6@indntpoff
- +400420:	ff ff ff d4       	.long	0xffffffd4
+  +[0-9a-f]+:	ff ff ff d4       	.long	0xffffffd4
 # bl6@indntpoff
- +400424:	ff ff ff f4       	.long	0xfffffff4
+  +[0-9a-f]+:	ff ff ff f4       	.long	0xfffffff4
 # sh6@indntpoff
- +400428:	ff ff ff b4       	.long	0xffffffb4
+  +[0-9a-f]+:	ff ff ff b4       	.long	0xffffffb4
 # sg3@indntpoff
- +40042c:	ff ff ff 68       	.long	0xffffff68
+  +[0-9a-f]+:	ff ff ff 68       	.long	0xffffff68
 # function prolog
- +400430:	18 ef             	lr	%r14,%r15
- +400432:	a7 fa ff a0       	ahi	%r15,-96
- +400436:	50 e0 e0 00       	st	%r14,0\(%r14\)
+  +[0-9a-f]+:	18 ef             	lr	%r14,%r15
+  +[0-9a-f]+:	a7 fa ff a0       	ahi	%r15,-96
+  +[0-9a-f]+:	50 e0 e0 00       	st	%r14,0\(%r14\)
 # Extract TCB
- +40043a:	b2 4f 00 90       	ear	%r9,%a0
+  +[0-9a-f]+:	b2 4f 00 90       	ear	%r9,%a0
 # IE against global var
- +40043e:	58 30 d0 00       	l	%r3,0\(%r13\)
- +400442:	58 33 c0 00       	l	%r3,0\(%r3,%r12\)
- +400446:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
+  +[0-9a-f]+:	58 30 d0 00       	l	%r3,0\(%r13\)
+  +[0-9a-f]+:	58 33 c0 00       	l	%r3,0\(%r3,%r12\)
+  +[0-9a-f]+:	41 33 90 00       	la	%r3,0\(%r3,%r9\)
 # IE -> LE against global var defined in exec
- +40044a:	58 30 d0 04       	l	%r3,4\(%r13\)
- +40044e:	18 43             	lr	%r4,%r3
- +400450:	07 00             	bcr	0,%r0
- +400452:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+  +[0-9a-f]+:	58 30 d0 04       	l	%r3,4\(%r13\)
+  +[0-9a-f]+:	18 43             	lr	%r4,%r3
+  +[0-9a-f]+:	07 00             	bcr	0,%r0
+  +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE -> LE against local var
- +400456:	58 30 d0 08       	l	%r3,8\(%r13\)
- +40045a:	18 43             	lr	%r4,%r3
- +40045c:	07 00             	bcr	0,%r0
- +40045e:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+  +[0-9a-f]+:	58 30 d0 08       	l	%r3,8\(%r13\)
+  +[0-9a-f]+:	18 43             	lr	%r4,%r3
+  +[0-9a-f]+:	07 00             	bcr	0,%r0
+  +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # IE -> LE against hidden but not local var
- +400462:	58 30 d0 0c       	l	%r3,12\(%r13\)
- +400466:	18 43             	lr	%r4,%r3
- +400468:	07 00             	bcr	0,%r0
- +40046a:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+  +[0-9a-f]+:	58 30 d0 0c       	l	%r3,12\(%r13\)
+  +[0-9a-f]+:	18 43             	lr	%r4,%r3
+  +[0-9a-f]+:	07 00             	bcr	0,%r0
+  +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # LE, global var defined in exec
- +40046e:	58 40 d0 10       	l	%r4,16\(%r13\)
- +400472:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
+  +[0-9a-f]+:	58 40 d0 10       	l	%r4,16\(%r13\)
+  +[0-9a-f]+:	41 54 90 00       	la	%r5,0\(%r4,%r9\)
 # function epilog
- +400476:	98 6e f0 78       	lm	%r6,%r14,120\(%r15\)
- +40047a:	07 fe             	br	%r14
+  +[0-9a-f]+:	98 6e f0 78       	lm	%r6,%r14,120\(%r15\)
+  +[0-9a-f]+:	07 fe             	br	%r14
--- ld/testsuite/ld-s390/tlsbin.sd.jj	2004-05-05 14:55:02.219228408 +0200
+++ ld/testsuite/ld-s390/tlsbin.sd	2004-05-06 14:08:34.065896879 +0200
@@ -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           ............    
--- ld/testsuite/ld-s390/tlsbin_64.td.jj	2004-05-05 14:55:02.223227691 +0200
+++ ld/testsuite/ld-s390/tlsbin_64.td	2004-05-06 14:08:34.065896879 +0200
@@ -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  .*
--- ld/testsuite/ld-s390/tlspic.sd.jj	2004-05-05 14:55:02.275218374 +0200
+++ ld/testsuite/ld-s390/tlspic.sd	2004-05-06 14:08:34.074895267 +0200
@@ -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  +.*
--- ld/testsuite/ld-s390/tlsbin.rd.jj	2004-05-05 14:55:02.237225183 +0200
+++ ld/testsuite/ld-s390/tlsbin.rd	2004-05-06 14:08:34.068896342 +0200
@@ -5,7 +5,7 @@
 #readelf: -Ssrl
 #target: s390-*-*
 
-There are 19 section headers, starting at offset 0x[0-9a-f]+:
+There are 18 section headers, starting at offset 0x[0-9a-f]+:
 
 Section Headers:
   \[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
@@ -17,24 +17,23 @@ Section Headers:
   \[ 5\] .rela.dyn +.*
   \[ 6\] .rela.plt +.*
   \[ 7\] .plt +.*
-  \[ 8\] .text +PROGBITS +0+4002e4 0+2e4 0+198 00 +AX +0 +0 +4
-  \[ 9\] .data +.*
-  \[10\] .tdata +PROGBITS +0+40147c 0+47c 0+60 00 WAT +0 +0 +1
-  \[11\] .tbss +NOBITS +0+4014dc 0+4dc 0+40 00 WAT +0 +0 +1
-  \[12\] .dynamic +DYNAMIC +0+4014dc 0+4dc 0+a0 08 +WA +4 +0 +4
-  \[13\] .got +PROGBITS +0+40157c 0+57c 0+2c 04 +WA +0 +0 +4
-  \[14\] .sbss +.*
-  \[15\] .bss +.*
-  \[16\] .shstrtab +.*
-  \[17\] .symtab +.*
-  \[18\] .strtab +.*
+  \[ 8\] .text +PROGBITS +.*
+  \[ 9\] .tdata +PROGBITS +0+4014c0 0+4c0 0+60 00 WAT +0 +0 +32
+  \[10\] .tbss +NOBITS +0+401520 0+520 0+40 00 WAT +0 +0 +1
+  \[11\] .dynamic +DYNAMIC +0+401520 0+520 0+a0 08 +WA +4 +0 +4
+  \[12\] .got +PROGBITS +0+4015c0 0+5c0 0+2c 04 +WA +0 +0 +4
+  \[13\] .data +.*
+  \[14\] .bss +.*
+  \[15\] .shstrtab +.*
+  \[16\] .symtab +.*
+  \[17\] .strtab +.*
 Key to Flags:
 .*
 .*
 .*
 
 Elf file type is EXEC \(Executable file\)
-Entry point 0x400414
+Entry point 0x[0-9a-f]+
 There are 6 program headers, starting at offset [0-9]+
 
 Program Headers:
@@ -42,10 +41,10 @@ Program Headers:
   PHDR +0x0+34 0x0+400034 0x0+400034 0x0+c0 0x0+c0 R E 0x4
   INTERP +0x0+f4 0x0+4000f4 0x0+4000f4 0x0+11 0x0+11 R +0x1
 .*Requesting program interpreter.*
-  LOAD +0x0+ 0x0+400000 0x0+400000 0x0+47c 0x0+47c R E 0x1000
-  LOAD +0x0+47c 0x0+40147c 0x0+40147c 0x0+12c 0x0+12c RW  0x1000
-  DYNAMIC +0x0+4dc 0x0+4014dc 0x0+4014dc 0x0+a0 0x0+a0 RW  0x4
-  TLS +0x0+47c 0x0+40147c 0x0+40147c 0x0+60 0x0+a0 R +0x1
+  LOAD +0x0+ 0x0+400000 0x0+400000 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x1000
+  LOAD +0x0+4c0 0x0+4014c0 0x0+4014c0 0x0+12c 0x0+12c RW  0x1000
+  DYNAMIC +0x0+520 0x0+401520 0x0+401520 0x0+a0 0x0+a0 RW  0x4
+  TLS +0x0+4c0 0x0+4014c0 0x0+4014c0 0x0+60 0x0+a0 R +0x20
 
  Section to Segment mapping:
   Segment Sections...
@@ -69,88 +68,87 @@ Relocation section '.rela.plt' at offset
 
 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
--- ld/testsuite/ld-s390/tlsbin.td.jj	2004-05-05 14:55:02.209230200 +0200
+++ ld/testsuite/ld-s390/tlsbin.td	2004-05-06 14:08:34.063897238 +0200
@@ -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  .*
--- ld/testsuite/ld-s390/tlspic_64.td.jj	2004-05-05 14:55:02.216228945 +0200
+++ ld/testsuite/ld-s390/tlspic_64.td	2004-05-06 14:08:34.065896879 +0200
@@ -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  .*
--- ld/testsuite/ld-s390/tlspic.td.jj	2004-05-05 14:55:02.254222137 +0200
+++ ld/testsuite/ld-s390/tlspic.td	2004-05-06 14:08:34.071895804 +0200
@@ -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  .*
--- ld/testsuite/ld-s390/tlsbinpic_64.s.jj	2004-05-05 14:55:02.261220882 +0200
+++ ld/testsuite/ld-s390/tlsbinpic_64.s	2004-05-06 14:08:34.072895625 +0200
@@ -1,4 +1,5 @@
 	.section ".tdata", "awT", @progbits
+	.balign 32
 	.globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8
 	.globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
 	.hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8
@@ -30,6 +31,7 @@ sh8:	.long 264
 	.text
 	.globl	fn2
 	.type	fn2,@function
+	.balign	64
 fn2:
 	/* Function prolog */
 	stmg	%r6,%r14,48(%r15)
--- ld/testsuite/ld-shared/shared.exp.jj	2004-05-05 14:55:02.278217836 +0200
+++ ld/testsuite/ld-shared/shared.exp	2004-05-06 14:08:34.075895087 +0200
@@ -227,6 +227,7 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $
 	    setup_xfail "sparc*-*-linux*"
 	}
 	setup_xfail "x86_64-*-linux*"
+	setup_xfail "s390x-*-linux*"
 	shared_test shnp "shared (non PIC, load offset)" \
 		mainnp.o sh1np.o sh2np.o shared \
 		"-T $srcdir/$subdir/elf-offset.ld"
--- ld/testsuite/ld-x86-64/tlspic.dd.jj	2004-05-05 14:55:02.296214611 +0200
+++ ld/testsuite/ld-x86-64/tlspic.dd	2004-05-06 14:08:34.077894729 +0200
@@ -17,12 +17,12 @@ Disassembly of section .text:
  +1006:	90[ 	]+nop *
  +1007:	90[ 	]+nop *
 #  GD
- +1008:	66 48 8d 3d f0 11 10[ 	]+lea    1053168\(%rip\),%rdi +# 102200 <_GLOBAL_OFFSET_TABLE_\+0x70>
+ +1008:	66 48 8d 3d 80 03 10[ 	]+lea    1049472\(%rip\),%rdi +# 101390 <.*>
  +100f:	00 *
 #				-> R_X86_64_DTPMOD64	sg1
  +1010:	66[ 	]+data16
  +1011:	66[ 	]+data16
- +1012:	48 e8 68 f6 ff ff[ 	]+rex64 callq  [0-9a-f]+ <.*>
+ +1012:	48 e8 88 f5 ff ff[ 	]+rex64 callq  [0-9a-f]+ <.*>
 #				-> R_X86_64_JUMP_SLOT	__tls_get_addr
  +1018:	90[ 	]+nop *
  +1019:	90[ 	]+nop *
@@ -31,19 +31,19 @@ Disassembly of section .text:
 #  GD -> IE because variable is referenced through IE too
  +101c:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
  +1023:	00 00 *
- +1025:	48 03 05 f4 11 10 00[ 	]+add    1053172\(%rip\),%rax +# 102220 <_GLOBAL_OFFSET_TABLE_\+0x90>
+ +1025:	48 03 05 84 03 10 00[ 	]+add    1049476\(%rip\),%rax +# 1013b0 <.*>
 #				-> R_X86_64_TPOFF64	sg2
  +102c:	90[ 	]+nop *
  +102d:	90[ 	]+nop *
  +102e:	90[ 	]+nop *
  +102f:	90[ 	]+nop *
 #  GD against local variable
- +1030:	66 48 8d 3d 78 11 10[ 	]+lea    1053048\(%rip\),%rdi +# 1021b0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+ +1030:	66 48 8d 3d 08 03 10[ 	]+lea    1049352\(%rip\),%rdi +# 101340 <.*>
  +1037:	00 *
 #				-> R_X86_64_DTPMOD64	[0 0x2000000000000000]
  +1038:	66[ 	]+data16
  +1039:	66[ 	]+data16
- +103a:	48 e8 40 f6 ff ff[ 	]+rex64 callq  [0-9a-f]+ <.*>
+ +103a:	48 e8 60 f5 ff ff[ 	]+rex64 callq  [0-9a-f]+ <.*>
 #				-> R_X86_64_JUMP_SLOT	__tls_get_addr
  +1040:	90[ 	]+nop *
  +1041:	90[ 	]+nop *
@@ -52,19 +52,19 @@ Disassembly of section .text:
 #  GD -> IE against local variable referenced through IE too
  +1044:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
  +104b:	00 00 *
- +104d:	48 03 05 6c 11 10 00[ 	]+add    1053036\(%rip\),%rax +# 1021c0 <_GLOBAL_OFFSET_TABLE_\+0x30>
+ +104d:	48 03 05 fc 02 10 00[ 	]+add    1049340\(%rip\),%rax +# 101350 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x24
  +1054:	90[ 	]+nop *
  +1055:	90[ 	]+nop *
  +1056:	90[ 	]+nop *
  +1057:	90[ 	]+nop *
 #  GD against hidden and local variable
- +1058:	66 48 8d 3d c8 11 10[ 	]+lea    1053128\(%rip\),%rdi +# 102228 <_GLOBAL_OFFSET_TABLE_\+0x98>
+ +1058:	66 48 8d 3d 58 03 10[ 	]+lea    1049432\(%rip\),%rdi +# 1013b8 <.*>
  +105f:	00 *
 #				-> R_X86_64_DTPMOD64	[0 0x4000000000000000]
  +1060:	66[ 	]+data16
  +1061:	66[ 	]+data16
- +1062:	48 e8 18 f6 ff ff[ 	]+rex64 callq  [0-9a-f]+ <.*>
+ +1062:	48 e8 38 f5 ff ff[ 	]+rex64 callq  [0-9a-f]+ <.*>
 #				-> R_X86_64_JUMP_SLOT	__tls_get_addr
  +1068:	90[ 	]+nop *
  +1069:	90[ 	]+nop *
@@ -73,19 +73,19 @@ Disassembly of section .text:
 #  GD -> IE against hidden and local variable referenced through IE too
  +106c:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
  +1073:	00 00 *
- +1075:	48 03 05 bc 11 10 00[ 	]+add    1053116\(%rip\),%rax +# 102238 <_GLOBAL_OFFSET_TABLE_\+0xa8>
+ +1075:	48 03 05 4c 03 10 00[ 	]+add    1049420\(%rip\),%rax +# 1013c8 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x44
  +107c:	90[ 	]+nop *
  +107d:	90[ 	]+nop *
  +107e:	90[ 	]+nop *
  +107f:	90[ 	]+nop *
 #  GD against hidden but not local variable
- +1080:	66 48 8d 3d 58 11 10[ 	]+lea    1053016\(%rip\),%rdi +# 1021e0 <_GLOBAL_OFFSET_TABLE_\+0x50>
+ +1080:	66 48 8d 3d e8 02 10[ 	]+lea    1049320\(%rip\),%rdi +# 101370 <.*>
  +1087:	00 *
 #				-> R_X86_64_DTPMOD64	[0 0x6000000000000000]
  +1088:	66[ 	]+data16
  +1089:	66[ 	]+data16
- +108a:	48 e8 f0 f5 ff ff[ 	]+rex64 callq  [0-9a-f]+ <.*>
+ +108a:	48 e8 10 f5 ff ff[ 	]+rex64 callq  [0-9a-f]+ <.*>
 #				-> R_X86_64_JUMP_SLOT	__tls_get_addr
  +1090:	90[ 	]+nop *
  +1091:	90[ 	]+nop *
@@ -94,16 +94,16 @@ Disassembly of section .text:
 #  GD -> IE against hidden but not local variable referenced through IE too
  +1094:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
  +109b:	00 00 *
- +109d:	48 03 05 4c 11 10 00[ 	]+add    1053004\(%rip\),%rax +# 1021f0 <_GLOBAL_OFFSET_TABLE_\+0x60>
+ +109d:	48 03 05 dc 02 10 00[ 	]+add    1049308\(%rip\),%rax +# 101380 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x64
  +10a4:	90[ 	]+nop *
  +10a5:	90[ 	]+nop *
  +10a6:	90[ 	]+nop *
  +10a7:	90[ 	]+nop *
 #  LD
- +10a8:	48 8d 3d 21 11 10 00[ 	]+lea    1052961\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40>
+ +10a8:	48 8d 3d b1 02 10 00[ 	]+lea    1049265\(%rip\),%rdi +# 101360 <.*>
 #				-> R_X86_64_DTPMOD64	[0 0x000000000000000]
- +10af:	e8 cc f5 ff ff[ 	]+callq  [0-9a-f]+ <.*>
+ +10af:	e8 ec f4 ff ff[ 	]+callq  [0-9a-f]+ <.*>
 #				-> R_X86_64_JUMP_SLOT	__tls_get_addr
  +10b4:	90[ 	]+nop *
  +10b5:	90[ 	]+nop *
@@ -116,9 +116,9 @@ Disassembly of section .text:
  +10c8:	90[ 	]+nop *
  +10c9:	90[ 	]+nop *
 #  LD against hidden and local variables
- +10ca:	48 8d 3d ff 10 10 00[ 	]+lea    1052927\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40>
+ +10ca:	48 8d 3d 8f 02 10 00[ 	]+lea    1049231\(%rip\),%rdi +# 101360 <.*>
 #				-> R_X86_64_DTPMOD64	[0 0x000000000000000]
- +10d1:	e8 aa f5 ff ff[ 	]+callq  [0-9a-f]+ <.*>
+ +10d1:	e8 ca f4 ff ff[ 	]+callq  [0-9a-f]+ <.*>
 #				-> R_X86_64_JUMP_SLOT	__tls_get_addr
  +10d6:	90[ 	]+nop *
  +10d7:	90[ 	]+nop *
@@ -131,9 +131,9 @@ Disassembly of section .text:
  +10ea:	90[ 	]+nop *
  +10eb:	90[ 	]+nop *
 #  LD against hidden but not local variables
- +10ec:	48 8d 3d dd 10 10 00[ 	]+lea    1052893\(%rip\),%rdi +# 1021d0 <_GLOBAL_OFFSET_TABLE_\+0x40>
+ +10ec:	48 8d 3d 6d 02 10 00[ 	]+lea    1049197\(%rip\),%rdi +# 101360 <.*>
 #				-> R_X86_64_DTPMOD64	[0 0x000000000000000]
- +10f3:	e8 88 f5 ff ff[ 	]+callq  [0-9a-f]+ <.*>
+ +10f3:	e8 a8 f4 ff ff[ 	]+callq  [0-9a-f]+ <.*>
 #				-> R_X86_64_JUMP_SLOT	__tls_get_addr
  +10f8:	90[ 	]+nop *
  +10f9:	90[ 	]+nop *
@@ -148,7 +148,7 @@ Disassembly of section .text:
  +1113:	00 00 *
  +1115:	90[ 	]+nop *
  +1116:	90[ 	]+nop *
- +1117:	48 03 0d 02 11 10 00[ 	]+add    1052930\(%rip\),%rcx +# 102220 <_GLOBAL_OFFSET_TABLE_\+0x90>
+ +1117:	48 03 0d 92 02 10 00[ 	]+add    1049234\(%rip\),%rcx +# 1013b0 <.*>
 #				-> R_X86_64_TPOFF64	sg2
  +111e:	90[ 	]+nop *
  +111f:	90[ 	]+nop *
@@ -159,7 +159,7 @@ Disassembly of section .text:
  +1129:	00 00 *
  +112b:	90[ 	]+nop *
  +112c:	90[ 	]+nop *
- +112d:	4c 03 35 8c 10 10 00[ 	]+add    1052812\(%rip\),%r14 +# 1021c0 <_GLOBAL_OFFSET_TABLE_\+0x30>
+ +112d:	4c 03 35 1c 02 10 00[ 	]+add    1049116\(%rip\),%r14 +# 101350 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x24
  +1134:	90[ 	]+nop *
  +1135:	90[ 	]+nop *
@@ -170,7 +170,7 @@ Disassembly of section .text:
  +113f:	00 00 *
  +1141:	90[ 	]+nop *
  +1142:	90[ 	]+nop *
- +1143:	48 03 0d ee 10 10 00[ 	]+add    1052910\(%rip\),%rcx +# 102238 <_GLOBAL_OFFSET_TABLE_\+0xa8>
+ +1143:	48 03 0d 7e 02 10 00[ 	]+add    1049214\(%rip\),%rcx +# 1013c8 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x44
  +114a:	90[ 	]+nop *
  +114b:	90[ 	]+nop *
@@ -181,7 +181,7 @@ Disassembly of section .text:
  +1155:	00 00 *
  +1157:	90[ 	]+nop *
  +1158:	90[ 	]+nop *
- +1159:	48 03 0d 90 10 10 00[ 	]+add    1052816\(%rip\),%rcx +# 1021f0 <_GLOBAL_OFFSET_TABLE_\+0x60>
+ +1159:	48 03 0d 20 02 10 00[ 	]+add    1049120\(%rip\),%rcx +# 101380 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x64
  +1160:	90[ 	]+nop *
  +1161:	90[ 	]+nop *
@@ -189,7 +189,7 @@ Disassembly of section .text:
  +1163:	90[ 	]+nop *
 #  Direct access through %fs
 #  IE against global var
- +1164:	48 8b 0d 8d 10 10 00[ 	]+mov    1052813\(%rip\),%rcx +# 1021f8 <_GLOBAL_OFFSET_TABLE_\+0x68>
+ +1164:	48 8b 0d 1d 02 10 00[ 	]+mov    1049117\(%rip\),%rcx +# 101388 <.*>
 #				-> R_X86_64_TPOFF64	sg5
  +116b:	90[ 	]+nop *
  +116c:	90[ 	]+nop *
@@ -199,7 +199,7 @@ Disassembly of section .text:
  +1173:	90[ 	]+nop *
  +1174:	90[ 	]+nop *
 #  IE against local var
- +1175:	4c 8b 15 4c 10 10 00[ 	]+mov    1052748\(%rip\),%r10 +# 1021c8 <_GLOBAL_OFFSET_TABLE_\+0x38>
+ +1175:	4c 8b 15 dc 01 10 00[ 	]+mov    1049052\(%rip\),%r10 +# 101358 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x30
  +117c:	90[ 	]+nop *
  +117d:	90[ 	]+nop *
@@ -209,7 +209,7 @@ Disassembly of section .text:
  +1184:	90[ 	]+nop *
  +1185:	90[ 	]+nop *
 #  IE against hidden and local var
- +1186:	48 8b 15 83 10 10 00[ 	]+mov    1052803\(%rip\),%rdx +# 102210 <_GLOBAL_OFFSET_TABLE_\+0x80>
+ +1186:	48 8b 15 13 02 10 00[ 	]+mov    1049107\(%rip\),%rdx +# 1013a0 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x50
  +118d:	90[ 	]+nop *
  +118e:	90[ 	]+nop *
@@ -219,7 +219,7 @@ Disassembly of section .text:
  +1195:	90[ 	]+nop *
  +1196:	90[ 	]+nop *
 #  IE against hidden but not local var
- +1197:	48 8b 0d 7a 10 10 00[ 	]+mov    1052794\(%rip\),%rcx +# 102218 <_GLOBAL_OFFSET_TABLE_\+0x88>
+ +1197:	48 8b 0d 0a 02 10 00[ 	]+mov    1049098\(%rip\),%rcx +# 1013a8 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x70
  +119e:	90[ 	]+nop *
  +119f:	90[ 	]+nop *
--- ld/testsuite/ld-x86-64/tlspic.rd.jj	2004-05-05 14:55:02.299214073 +0200
+++ ld/testsuite/ld-x86-64/tlspic.rd	2004-05-06 14:08:34.078894550 +0200
@@ -5,7 +5,7 @@
 #readelf: -WSsrl
 #target: x86_64-*-*
 
-There are 17 section headers, starting at offset 0x[0-9a-f]+:
+There are 18 section headers, starting at offset 0x[0-9a-f]+:
 
 Section Headers:
   \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
@@ -17,15 +17,16 @@ Section Headers:
   \[ 5\] .rela.plt +.*
   \[ 6\] .plt +.*
   \[ 7\] .text +PROGBITS +0+1000 0+1000 0+1ac 00 +AX +0 +0 4096
-  \[ 8\] .data +.*
-  \[ 9\] .tdata +PROGBITS +0+102000 0+2000 0+60 00 WAT +0 +0 +1
-  \[10\] .tbss +NOBITS +0+102060 0+2060 0+20 00 WAT +0 +0 +1
-  \[11\] .dynamic +DYNAMIC +0+102060 0+2060 0+130 10 +WA +3 +0 +8
-  \[12\] .got +PROGBITS +0+102190 0+2190 0+b0 08 +WA +0 +0 +8
-  \[13\] .bss +.*
-  \[14\] .shstrtab +.*
-  \[15\] .symtab +.*
-  \[16\] .strtab +.*
+  \[ 8\] .tdata +PROGBITS +0+1011ac 0+11ac 0+60 00 WAT +0 +0 +1
+  \[ 9\] .tbss +NOBITS +0+10120c 0+120c 0+20 00 WAT +0 +0 +1
+  \[10\] .dynamic +DYNAMIC +0+101210 0+1210 0+130 10 +WA +3 +0 +8
+  \[11\] .got +PROGBITS +0+101340 0+1340 0+90 08 +WA +0 +0 +8
+  \[12\] .got.plt +PROGBITS +0+1013d0 0+13d0 0+20 08 +WA +0 +0 +8
+  \[13\] .data +.*
+  \[14\] .bss +.*
+  \[15\] .shstrtab +.*
+  \[16\] .symtab +.*
+  \[17\] .strtab +.*
 Key to Flags:
 .*
 .*
@@ -38,125 +39,118 @@ There are 4 program headers, starting at
 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
--- ld/testsuite/ld-x86-64/tlsbin.dd.jj	2004-05-05 14:55:02.289215865 +0200
+++ ld/testsuite/ld-x86-64/tlsbin.dd	2004-05-06 14:08:34.076894908 +0200
@@ -24,7 +24,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is not defined in executable
   401004:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
   40100b:	00 00 *
-  40100d:	48 03 05 c4 11 10 00[ 	]+add    1053124\(%rip\),%rax +# 5021d8 <_GLOBAL_OFFSET_TABLE_\+0x38>
+  40100d:	48 03 05 d4 03 10 00[ 	]+add    1049556\(%rip\),%rax +# 5013e8 <.*>
 #				-> R_X86_64_TPOFF64	sG1
   401014:	90[ 	]+nop *
   401015:	90[ 	]+nop *
@@ -34,7 +34,7 @@ Disassembly of section .text:
 #  the variable is referenced through IE too
   401018:	64 48 8b 04 25 00 00[ 	]+mov    %fs:0x0,%rax
   40101f:	00 00 *
-  401021:	48 03 05 a0 11 10 00[ 	]+add    1053088\(%rip\),%rax +# 5021c8 <_GLOBAL_OFFSET_TABLE_\+0x28>
+  401021:	48 03 05 b0 03 10 00[ 	]+add    1049520\(%rip\),%rax +# 5013d8 <.*>
 #				-> R_X86_64_TPOFF64	sG2
   401028:	90[ 	]+nop *
   401029:	90[ 	]+nop *
@@ -102,7 +102,7 @@ Disassembly of section .text:
   4010b3:	00 00 *
   4010b5:	90[ 	]+nop *
   4010b6:	90[ 	]+nop *
-  4010b7:	4c 03 0d 0a 11 10 00[ 	]+add    1052938\(%rip\),%r9 +# 5021c8 <_GLOBAL_OFFSET_TABLE_\+0x28>
+  4010b7:	4c 03 0d 1a 03 10 00[ 	]+add    1049370\(%rip\),%r9 +# 5013d8 <.*>
 #				-> R_X86_64_TPOFF64	sG2
   4010be:	90[ 	]+nop *
   4010bf:	90[ 	]+nop *
@@ -143,7 +143,7 @@ Disassembly of section .text:
   401103:	90[ 	]+nop *
 #  Direct access through %fs
 #  IE against global var
-  401104:	48 8b 0d b5 10 10 00[ 	]+mov    1052853\(%rip\),%rcx +# 5021c0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+  401104:	48 8b 0d c5 02 10 00[ 	]+mov    1049285\(%rip\),%rcx +# 5013d0 <.*>
 #				-> R_X86_64_TPOFF64	sG5
   40110b:	90[ 	]+nop *
   40110c:	90[ 	]+nop *
@@ -186,7 +186,7 @@ Disassembly of section .text:
   401147:	00 00 *
   401149:	90[ 	]+nop *
   40114a:	90[ 	]+nop *
-  40114b:	4c 03 1d 7e 10 10 00[ 	]+add    1052798\(%rip\),%r11 +# 5021d0 <_GLOBAL_OFFSET_TABLE_\+0x30>
+  40114b:	4c 03 1d 8e 02 10 00[ 	]+add    1049230\(%rip\),%r11 +# 5013e0 <.*>
 #				-> R_X86_64_TPOFF64	sG6
   401152:	90[ 	]+nop *
   401153:	90[ 	]+nop *
--- ld/testsuite/ld-x86-64/tlsbin.sd.jj	2004-05-05 14:55:02.285216582 +0200
+++ ld/testsuite/ld-x86-64/tlsbin.sd	2004-05-06 14:08:34.075895087 +0200
@@ -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  .*
--- ld/testsuite/ld-x86-64/tlspic.sd.jj	2004-05-05 14:55:02.306212819 +0200
+++ ld/testsuite/ld-x86-64/tlspic.sd	2004-05-06 14:08:34.079894371 +0200
@@ -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  .*
--- ld/testsuite/ld-x86-64/tlsbin.rd.jj	2004-05-05 14:55:02.292215328 +0200
+++ ld/testsuite/ld-x86-64/tlsbin.rd	2004-05-06 14:08:34.077894729 +0200
@@ -5,7 +5,7 @@
 #readelf: -WSsrl
 #target: x86_64-*-*
 
-There are 18 section headers, starting at offset 0x[0-9a-f]+:
+There are 19 section headers, starting at offset 0x[0-9a-f]+:
 
 Section Headers:
   \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
@@ -18,15 +18,16 @@ Section Headers:
   \[ 6\] .rela.plt +.*
   \[ 7\] .plt +.*
   \[ 8\] .text +PROGBITS +0+401000 0+1000 0+22a 00 +AX +0 +0 +4096
-  \[ 9\] .data +.*
-  \[10\] .tdata +PROGBITS +0+502000 0+2000 0+60 00 WAT +0 +0 +1
-  \[11\] .tbss +NOBITS +0+502060 0+2060 0+40 00 WAT +0 +0 +1
-  \[12\] .dynamic +DYNAMIC +0+502060 0+2060 0+140 10 +WA +4 +0 +8
-  \[13\] .got +PROGBITS +0+5021a0 0+21a0 0+40 08 +WA +0 +0 +8
-  \[14\] .bss +.*
-  \[15\] .shstrtab +.*
-  \[16\] .symtab +.*
-  \[17\] .strtab +.*
+  \[ 9\] .tdata +PROGBITS +0+50122a 0+122a 0+60 00 WAT +0 +0 +1
+  \[10\] .tbss +NOBITS +0+50128a 0+128a 0+40 00 WAT +0 +0 +1
+  \[11\] .dynamic +DYNAMIC +0+501290 0+1290 0+140 10 +WA +4 +0 +8
+  \[12\] .got +PROGBITS +0+5013d0 0+13d0 0+20 08 +WA +0 +0 +8
+  \[13\] .got.plt +PROGBITS +0+5013f0 0+13f0 0+20 08 +WA +0 +0 +8
+  \[14\] .data +.*
+  \[15\] .bss +.*
+  \[16\] .shstrtab +.*
+  \[17\] .symtab +.*
+  \[18\] .strtab +.*
 Key to Flags:
 .*
 .*
@@ -42,25 +43,25 @@ Program Headers:
   INTERP +0x0+190 0x0+400190 0x0+400190 0x0+f 0x0+f R +0x1
 .*Requesting program interpreter.*
   LOAD +0x0+ 0x0+400000 0x0+400000 0x0+122a 0x0+122a R E 0x100000
-  LOAD +0x0+2000 0x0+502000 0x0+502000 0x0+1e0 0x0+1e0 RW  0x100000
-  DYNAMIC +0x0+2060 0x0+502060 0x0+502060 0x0+140 0x0+140 RW  0x8
-  TLS +0x0+2000 0x0+502000 0x0+502000 0x0+60 0x0+a0 R +0x1
+  LOAD +0x0+122a 0x0+50122a 0x0+50122a 0x0+dd6 0x0+dd6 RW  0x100000
+  DYNAMIC +0x0+1290 0x0+501290 0x0+501290 0x0+140 0x0+140 RW  0x8
+  TLS +0x0+122a 0x0+50122a 0x0+50122a 0x0+60 0x0+a0 R +0x1
 
  Section to Segment mapping:
   Segment Sections...
    00 *
    01 +.interp *
    02 +.interp .hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text *
-   03 +.tdata .tbss .dynamic .got *
-   04 +.tbss .dynamic *
+   03 +.tdata .tbss .dynamic .got .got.plt *
+   04 +.dynamic *
    05 +.tdata .tbss *
 
 Relocation section '.rela.dyn' at offset 0x358 contains 4 entries:
  +Offset +Info +Type +Symbol's Value  Symbol's Name \+ Addend
-0+5021c0  0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
-0+5021c8  0+300000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0
-0+5021d0  0+600000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
-0+5021d8  0+700000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0
+0+5013d0  0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
+0+5013d8  0+300000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0
+0+5013e0  0+600000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
+0+5013e8  0+700000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0
 
 Relocation section '.rela.plt' at offset 0x3b8 contains 1 entries:
  +Offset +Info +Type +Symbol's Value  Symbol's Name \+ Addend
@@ -68,87 +69,88 @@ Relocation section '.rela.plt' at offset
 
 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
--- ld/testsuite/ld-x86-64/tlsbin.td.jj	2004-05-05 14:55:02.282217120 +0200
+++ ld/testsuite/ld-x86-64/tlsbin.td	2004-05-06 14:08:34.075895087 +0200
@@ -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  .*
--- ld/testsuite/ld-x86-64/tlspic.td.jj	2004-05-05 14:55:02.303213357 +0200
+++ ld/testsuite/ld-x86-64/tlspic.td	2004-05-06 14:08:34.078894550 +0200
@@ -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  .*
--- ld/testsuite/ld-ia64/tlspic.dd.jj	2004-05-05 14:55:02.320210311 +0200
+++ ld/testsuite/ld-ia64/tlspic.dd	2004-05-06 14:08:34.080894191 +0200
@@ -18,25 +18,25 @@ Disassembly of section .text:
  +101c:	01 0a 00 90[ 	]+addl r15=32,r1;;
  +1020:	19 18 01 1c 18 10[ 	]+\[MMB\] +ld8 r35=\[r14\]
  +1026:	40 02 3c 30 20 00[ 	]+ld8 r36=\[r15\]
- +102c:	88 f6 ff 58[ 	]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+ +102c:	88 f5 ff 58[ 	]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
  +1030:	0d 70 c0 02 00 24[ 	]+\[MFI\] +addl r14=48,r1
  +1036:	00 00 00 02 00 e0[ 	]+nop.f 0x0
  +103c:	01 0c 00 90[ 	]+addl r15=64,r1;;
  +1040:	19 18 01 1c 18 10[ 	]+\[MMB\] +ld8 r35=\[r14\]
  +1046:	40 02 3c 30 20 00[ 	]+ld8 r36=\[r15\]
- +104c:	68 f6 ff 58[ 	]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+ +104c:	68 f5 ff 58[ 	]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
  +1050:	0d 70 c0 02 00 24[ 	]+\[MFI\] +addl r14=48,r1
  +1056:	00 00 00 02 00 80[ 	]+nop.f 0x0
  +105c:	14 02 00 90[ 	]+mov r36=33;;
  +1060:	1d 18 01 1c 18 10[ 	]+\[MFB\] +ld8 r35=\[r14\]
  +1066:	00 00 00 02 00 00[ 	]+nop.f 0x0
- +106c:	48 f6 ff 58[ 	]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+ +106c:	48 f5 ff 58[ 	]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
  +1070:	0d 70 c0 02 00 24[ 	]+\[MFI\] +addl r14=48,r1
  +1076:	00 00 00 02 00 80[ 	]+nop.f 0x0
  +107c:	04 00 00 84[ 	]+mov r36=r0;;
  +1080:	1d 18 01 1c 18 10[ 	]+\[MFB\] +ld8 r35=\[r14\]
  +1086:	00 00 00 02 00 00[ 	]+nop.f 0x0
- +108c:	28 f6 ff 58[ 	]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
+ +108c:	28 f5 ff 58[ 	]+br.call.sptk.many b0=[0-9a-f]+ <.*>;;
  +1090:	0b 10 00 10 00 21[ 	]+\[MMI\] +mov r2=r8;;
  +1096:	e0 00 0a 00 48 e0[ 	]+addl r14=64,r2
  +109c:	21 16 00 90[ 	]+addl r15=98,r2;;
--- ld/testsuite/ld-ia64/tlspic.rd.jj	2004-05-05 14:55:02.323209773 +0200
+++ ld/testsuite/ld-ia64/tlspic.rd	2004-05-06 14:08:34.081894012 +0200
@@ -19,11 +19,11 @@ Section Headers:
   \[ 7\] .text +PROGBITS +0+1000 0+1000 0+110 00 +AX +0 +0 4096
   \[ 8\] .IA_64.unwind_inf +.*
   \[ 9\] .IA_64.unwind +.*
-  \[10\] .data +.*
-  \[11\] .tdata +PROGBITS +0+12000 0+2000 0+60 00 WAT +0 +0 +4
-  \[12\] .tbss +NOBITS +0+12060 0+2060 0+20 00 WAT +0 +0 +1
-  \[13\] .dynamic +DYNAMIC +0+12060 0+2060 0+140 10 +WA +3 +0 +8
-  \[14\] .got +PROGBITS +0+121a0 0+21a0 0+50 00 WAp +0 +0 +8
+  \[10\] .tdata +PROGBITS +0+11140 0+1140 0+60 00 WAT +0 +0 +4
+  \[11\] .tbss +NOBITS +0+111a0 0+11a0 0+20 00 WAT +0 +0 +1
+  \[12\] .dynamic +DYNAMIC +0+111a0 0+11a0 0+140 10 +WA +3 +0 +8
+  \[13\] .data +.*
+  \[14\] .got +PROGBITS +0+12000 0+2000 0+50 00 WAp +0 +0 +8
   \[15\] .IA_64.pltoff +.*
   \[16\] .sbss +.*
   \[17\] .bss +.*
@@ -40,120 +40,111 @@ There are 5 program headers, starting at
 Program Headers:
   Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
   LOAD +0x0+ 0x0+ 0x0+ 0x0+1140 0x0+1140 R E 0x10000
-  LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+200 0x0+200 RW +0x10000
-  DYNAMIC +0x0+2060 0x0+12060 0x0+12060 0x0+140 0x0+140 RW +0x8
-  TLS +0x0+2000 0x0+12000 0x0+12000 0x0+60 0x0+80 R +0x4
+  LOAD +0x0+1140 0x0+11140 0x0+11140 0x0+f20 0x0+f20 RW +0x10000
+  DYNAMIC +0x0+11a0 0x0+111a0 0x0+111a0 0x0+140 0x0+140 RW +0x8
+  TLS +0x0+1140 0x0+11140 0x0+11140 0x0+60 0x0+80 R +0x4
   IA_64_UNWIND +0x0+1128 0x0+1128 0x0+1128 0x0+18 0x0+18 R +0x8
 #...
 
 Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 6 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+121b8 +0+18000000a7 R_IA64_DTPMOD64LSB +0+ sg1 \+ 0
-0+121c0 +0+18000000b7 R_IA64_DTPREL64LSB +0+ sg1 \+ 0
-0+121c8 +0+1b00000097 R_IA64_TPREL64LSB +0+4 sg2 \+ 0
-0+121d0 +0+a7 R_IA64_DTPMOD64LSB +0+
-0+121d8 +0+97 R_IA64_TPREL64LSB +0+44
-0+121e8 +0+97 R_IA64_TPREL64LSB +0+24
+0+12018 +0+f000000a7 R_IA64_DTPMOD64LSB +0+ sg1 \+ 0
+0+12020 +0+f000000b7 R_IA64_DTPREL64LSB +0+ sg1 \+ 0
+0+12028 +0+1200000097 R_IA64_TPREL64LSB +0+4 sg2 \+ 0
+0+12030 +0+a7 R_IA64_DTPMOD64LSB +0+
+0+12038 +0+97 R_IA64_TPREL64LSB +0+44
+0+12048 +0+97 R_IA64_TPREL64LSB +0+24
 
 Relocation section '.rela.IA_64.pltoff' at offset 0x[0-9a-f]+ contains 1 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+[0-9a-f]+ +0+1700000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0
+0+[0-9a-f]+ +0+e00000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0
 
-Symbol table '.dynsym' contains 33 entries:
+Symbol table '.dynsym' contains 24 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 *
- +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
- +18: 0+1c +0 TLS +GLOBAL DEFAULT +11 sg8
- +19: 0+12060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +20: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3
- +21: 0+c +0 TLS +GLOBAL DEFAULT +11 sg4
- +22: 0+10 +0 TLS +GLOBAL DEFAULT +11 sg5
- +23: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
- +24: 0+ +0 TLS +GLOBAL DEFAULT +11 sg1
- +25: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1
- +26: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +27: 0+4 +0 TLS +GLOBAL DEFAULT +11 sg2
- +28: 0+14 +0 TLS +GLOBAL DEFAULT +11 sg6
- +29: 0+18 +0 TLS +GLOBAL DEFAULT +11 sg7
- +30: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +31: 0+121a0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +32: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
+ +[0-9]+: 0+111a0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
+ +[0-9]+: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+12000 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
 
 Symbol table '.symtab' contains 60 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 *
- +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
- +18: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +18 *
- +19: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 *
- +20: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 *
- +21: 0+20 +0 TLS +LOCAL +DEFAULT +11 sl1
- +22: 0+24 +0 TLS +LOCAL +DEFAULT +11 sl2
- +23: 0+28 +0 TLS +LOCAL +DEFAULT +11 sl3
- +24: 0+2c +0 TLS +LOCAL +DEFAULT +11 sl4
- +25: 0+30 +0 TLS +LOCAL +DEFAULT +11 sl5
- +26: 0+34 +0 TLS +LOCAL +DEFAULT +11 sl6
- +27: 0+38 +0 TLS +LOCAL +DEFAULT +11 sl7
- +28: 0+3c +0 TLS +LOCAL +DEFAULT +11 sl8
- +29: 0+60 +0 TLS +LOCAL +HIDDEN +12 sH1
- +30: 0+48 +0 TLS +LOCAL +HIDDEN +11 sh3
- +31: 0+64 +0 TLS +LOCAL +HIDDEN +12 sH2
- +32: 0+78 +0 TLS +LOCAL +HIDDEN +12 sH7
- +33: 0+58 +0 TLS +LOCAL +HIDDEN +11 sh7
- +34: 0+5c +0 TLS +LOCAL +HIDDEN +11 sh8
- +35: 0+6c +0 TLS +LOCAL +HIDDEN +12 sH4
- +36: 0+4c +0 TLS +LOCAL +HIDDEN +11 sh4
- +37: 0+68 +0 TLS +LOCAL +HIDDEN +12 sH3
- +38: 0+50 +0 TLS +LOCAL +HIDDEN +11 sh5
- +39: 0+70 +0 TLS +LOCAL +HIDDEN +12 sH5
- +40: 0+74 +0 TLS +LOCAL +HIDDEN +12 sH6
- +41: 0+7c +0 TLS +LOCAL +HIDDEN +12 sH8
- +42: 0+40 +0 TLS +LOCAL +HIDDEN +11 sh1
- +43: 0+44 +0 TLS +LOCAL +HIDDEN +11 sh2
- +44: 0+54 +0 TLS +LOCAL +HIDDEN +11 sh6
- +45: 0+1c +0 TLS +GLOBAL DEFAULT +11 sg8
- +46: 0+12060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +47: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3
- +48: 0+c +0 TLS +GLOBAL DEFAULT +11 sg4
- +49: 0+10 +0 TLS +GLOBAL DEFAULT +11 sg5
- +50: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
- +51: 0+ +0 TLS +GLOBAL DEFAULT +11 sg1
- +52: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1
- +53: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +54: 0+4 +0 TLS +GLOBAL DEFAULT +11 sg2
- +55: 0+14 +0 TLS +GLOBAL DEFAULT +11 sg6
- +56: 0+18 +0 TLS +GLOBAL DEFAULT +11 sg7
- +57: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +58: 0+121a0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +59: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +18 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 *
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +10 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL +DEFAULT +10 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +10 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL +DEFAULT +10 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +10 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL +DEFAULT +10 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL +DEFAULT +10 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL +DEFAULT +10 sl8
+ +[0-9]+: 0+60 +0 TLS +LOCAL +HIDDEN +11 sH1
+ +[0-9]+: 0+48 +0 TLS +LOCAL +HIDDEN +10 sh3
+ +[0-9]+: 0+64 +0 TLS +LOCAL +HIDDEN +11 sH2
+ +[0-9]+: 0+78 +0 TLS +LOCAL +HIDDEN +11 sH7
+ +[0-9]+: 0+58 +0 TLS +LOCAL +HIDDEN +10 sh7
+ +[0-9]+: 0+5c +0 TLS +LOCAL +HIDDEN +10 sh8
+ +[0-9]+: 0+6c +0 TLS +LOCAL +HIDDEN +11 sH4
+ +[0-9]+: 0+4c +0 TLS +LOCAL +HIDDEN +10 sh4
+ +[0-9]+: 0+68 +0 TLS +LOCAL +HIDDEN +11 sH3
+ +[0-9]+: 0+50 +0 TLS +LOCAL +HIDDEN +10 sh5
+ +[0-9]+: 0+70 +0 TLS +LOCAL +HIDDEN +11 sH5
+ +[0-9]+: 0+74 +0 TLS +LOCAL +HIDDEN +11 sH6
+ +[0-9]+: 0+7c +0 TLS +LOCAL +HIDDEN +11 sH8
+ +[0-9]+: 0+40 +0 TLS +LOCAL +HIDDEN +10 sh1
+ +[0-9]+: 0+44 +0 TLS +LOCAL +HIDDEN +10 sh2
+ +[0-9]+: 0+54 +0 TLS +LOCAL +HIDDEN +10 sh6
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +10 sg8
+ +[0-9]+: 0+111a0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +10 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +10 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +10 sg5
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
+ +[0-9]+: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +10 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +10 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +10 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+12000 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
--- ld/testsuite/ld-ia64/tlsbin.sd.jj	2004-05-05 14:55:02.313211565 +0200
+++ ld/testsuite/ld-ia64/tlsbin.sd	2004-05-06 14:08:34.079894371 +0200
@@ -8,8 +8,8 @@
 .*: +file format elf..-ia64-.*
 
 Contents of section .got:
- (60+)?21b0 0+ 0+ 0+ 0+  .*
- (60+)?21c0 0+ 0+ 0+ 0+  .*
- (60+)?21d0 0+ 0+ 0+ 0+  .*
- (60+)?21e0 01000000 0+ 90000000 0+  .*
- (60+)?21f0 24000000 0+  .*
+ (60+)?2000 0+ 0+ 0+ 0+  .*
+ (60+)?2010 0+ 0+ 0+ 0+  .*
+ (60+)?2020 0+ 0+ 0+ 0+  .*
+ (60+)?2030 01000000 0+ 90000000 0+  .*
+ (60+)?2040 24000000 0+  .*
--- ld/testsuite/ld-ia64/tlspic.sd.jj	2004-05-05 14:55:02.330208519 +0200
+++ ld/testsuite/ld-ia64/tlspic.sd	2004-05-06 14:08:34.081894012 +0200
@@ -8,8 +8,8 @@
 .*: +file format elf..-ia64-.*
 
 Contents of section .got:
- 121a0 0+ 0+ 0+ 0+  .*
- 121b0 0+ 0+ [0-9a-f]+ [0-9a-f]+  .*
- 121c0 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+  .*
- 121d0 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+  .*
- 121e0 440+ 0+ [0-9a-f]+ [0-9a-f]+  .*
+ 12000 0+ 0+ 0+ 0+  .*
+ 12010 0+ 0+ [0-9a-f]+ [0-9a-f]+  .*
+ 12020 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+  .*
+ 12030 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+  .*
+ 12040 440+ 0+ [0-9a-f]+ [0-9a-f]+  .*
--- ld/testsuite/ld-ia64/tlsbin.rd.jj	2004-05-05 14:55:02.317210848 +0200
+++ ld/testsuite/ld-ia64/tlsbin.rd	2004-05-06 14:08:34.080894191 +0200
@@ -20,11 +20,11 @@ Section Headers:
   \[ 8\] .text +PROGBITS +40+1000 0+1000 0+140 00 +AX +0 +0 4096
   \[ 9\] .IA_64.unwind_inf +.*
   \[10\] .IA_64.unwind +.*
-  \[11\] .data +.*
-  \[12\] .tdata +PROGBITS +60+2000 0+2000 0+60 00 WAT +0 +0 +4
-  \[13\] .tbss +NOBITS +60+2060 0+2060 0+40 00 WAT +0 +0 +1
-  \[14\] .dynamic +DYNAMIC +60+2060 0+2060 0+150 10 +WA +4 +0 +8
-  \[15\] .got +PROGBITS +60+21b0 0+21b0 0+48 00 WAp +0 +0 +8
+  \[11\] .tdata +PROGBITS +60+1170 0+1170 0+60 00 WAT +0 +0 +4
+  \[12\] .tbss +NOBITS +60+11d0 0+11d0 0+40 00 WAT +0 +0 +1
+  \[13\] .dynamic +DYNAMIC +60+11d0 0+11d0 0+150 10 +WA +4 +0 +8
+  \[14\] .data +.*
+  \[15\] .got +PROGBITS +60+2000 0+2000 0+48 00 WAp +0 +0 +8
   \[16\] .IA_64.pltoff +.*
   \[17\] .sbss +.*
   \[18\] .bss +.*
@@ -43,32 +43,32 @@ Program Headers:
   INTERP +0x0+1c8 0x40+1c8 0x40+1c8 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1
 .*Requesting program interpreter.*
   LOAD +0x0+ 0x40+ 0x40+ 0x0+1170 0x0+1170 R E 0x10000
-  LOAD +0x0+2000 0x60+2000 0x60+2000 0x0+210 0x0+210 RW +0x10000
-  DYNAMIC +0x0+2060 0x60+2060 0x60+2060 0x0+150 0x0+150 RW +0x8
-  TLS +0x0+2000 0x60+2000 0x60+2000 0x0+60 0x0+a0 R +0x4
+  LOAD +0x0+1170 0x60+1170 0x60+1170 0x0+ef0 0x0+ef0 RW +0x10000
+  DYNAMIC +0x0+11d0 0x60+11d0 0x60+11d0 0x0+150 0x0+150 RW +0x8
+  TLS +0x0+1170 0x60+1170 0x60+1170 0x0+60 0x0+a0 R +0x4
   IA_64_UNWIND .* R +0x8
 #...
 
 Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 3 entries:
  +Offset +Info +Type +Symbol's Value  Symbol's Name \+ Addend
-60+21c8  0+200000097 R_IA64_TPREL64LSB +0+ sG2 \+ 0
-60+21d0  0+5000000a7 R_IA64_DTPMOD64LSB +0+ sG1 \+ 0
-60+21d8  0+5000000b7 R_IA64_DTPREL64LSB +0+ sG1 \+ 0
+60+2018  0+200000097 R_IA64_TPREL64LSB +0+ sG2 \+ 0
+60+2020  0+5000000a7 R_IA64_DTPMOD64LSB +0+ sG1 \+ 0
+60+2028  0+5000000b7 R_IA64_DTPREL64LSB +0+ sG1 \+ 0
 
 Relocation section '.rela.IA_64.pltoff' at offset 0x[0-9a-f]+ contains 1 entries:
  +Offset +Info +Type +Symbol's Value  Symbol's Name \+ Addend
-60+2200  0+300000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0
+60+2050  0+300000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0
 
 Symbol table '.dynsym' contains 9 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
  +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
- +1: 60+2060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +1: 60+11d0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
  +2: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
  +3: 0+ +16 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
  +4: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
  +5: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
  +6: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +7: 60+21b0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +7: 60+2000 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
  +8: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
 
 Symbol table '.symtab' contains 72 entries:
@@ -95,53 +95,53 @@ Symbol table '.symtab' contains 72 entri
  +19: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 *
  +20: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 *
  +21: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +21 *
- +22: 0+20 +0 TLS +LOCAL +DEFAULT +12 sl1
- +23: 0+24 +0 TLS +LOCAL +DEFAULT +12 sl2
- +24: 0+28 +0 TLS +LOCAL +DEFAULT +12 sl3
- +25: 0+2c +0 TLS +LOCAL +DEFAULT +12 sl4
- +26: 0+30 +0 TLS +LOCAL +DEFAULT +12 sl5
- +27: 0+34 +0 TLS +LOCAL +DEFAULT +12 sl6
- +28: 0+38 +0 TLS +LOCAL +DEFAULT +12 sl7
- +29: 0+3c +0 TLS +LOCAL +DEFAULT +12 sl8
- +30: 0+80 +0 TLS +LOCAL +DEFAULT +13 bl1
- +31: 0+84 +0 TLS +LOCAL +DEFAULT +13 bl2
- +32: 0+88 +0 TLS +LOCAL +DEFAULT +13 bl3
- +33: 0+8c +0 TLS +LOCAL +DEFAULT +13 bl4
- +34: 0+90 +0 TLS +LOCAL +DEFAULT +13 bl5
- +35: 0+94 +0 TLS +LOCAL +DEFAULT +13 bl6
- +36: 0+98 +0 TLS +LOCAL +DEFAULT +13 bl7
- +37: 0+9c +0 TLS +LOCAL +DEFAULT +13 bl8
- +38: 0+1c +0 TLS +GLOBAL DEFAULT +12 sg8
- +39: 0+7c +0 TLS +GLOBAL DEFAULT +13 bg8
- +40: 0+74 +0 TLS +GLOBAL DEFAULT +13 bg6
- +41: 0+68 +0 TLS +GLOBAL DEFAULT +13 bg3
- +42: 60+2060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +43: 0+8 +0 TLS +GLOBAL DEFAULT +12 sg3
- +44: 0+48 +0 TLS +GLOBAL HIDDEN +12 sh3
+ +22: 0+20 +0 TLS +LOCAL +DEFAULT +11 sl1
+ +23: 0+24 +0 TLS +LOCAL +DEFAULT +11 sl2
+ +24: 0+28 +0 TLS +LOCAL +DEFAULT +11 sl3
+ +25: 0+2c +0 TLS +LOCAL +DEFAULT +11 sl4
+ +26: 0+30 +0 TLS +LOCAL +DEFAULT +11 sl5
+ +27: 0+34 +0 TLS +LOCAL +DEFAULT +11 sl6
+ +28: 0+38 +0 TLS +LOCAL +DEFAULT +11 sl7
+ +29: 0+3c +0 TLS +LOCAL +DEFAULT +11 sl8
+ +30: 0+80 +0 TLS +LOCAL +DEFAULT +12 bl1
+ +31: 0+84 +0 TLS +LOCAL +DEFAULT +12 bl2
+ +32: 0+88 +0 TLS +LOCAL +DEFAULT +12 bl3
+ +33: 0+8c +0 TLS +LOCAL +DEFAULT +12 bl4
+ +34: 0+90 +0 TLS +LOCAL +DEFAULT +12 bl5
+ +35: 0+94 +0 TLS +LOCAL +DEFAULT +12 bl6
+ +36: 0+98 +0 TLS +LOCAL +DEFAULT +12 bl7
+ +37: 0+9c +0 TLS +LOCAL +DEFAULT +12 bl8
+ +38: 0+1c +0 TLS +GLOBAL DEFAULT +11 sg8
+ +39: 0+7c +0 TLS +GLOBAL DEFAULT +12 bg8
+ +40: 0+74 +0 TLS +GLOBAL DEFAULT +12 bg6
+ +41: 0+68 +0 TLS +GLOBAL DEFAULT +12 bg3
+ +42: 60+11d0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +43: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3
+ +44: 0+48 +0 TLS +GLOBAL HIDDEN +11 sh3
  +45: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
- +46: 0+c +0 TLS +GLOBAL DEFAULT +12 sg4
- +47: 0+10 +0 TLS +GLOBAL DEFAULT +12 sg5
- +48: 0+70 +0 TLS +GLOBAL DEFAULT +13 bg5
+ +46: 0+c +0 TLS +GLOBAL DEFAULT +11 sg4
+ +47: 0+10 +0 TLS +GLOBAL DEFAULT +11 sg5
+ +48: 0+70 +0 TLS +GLOBAL DEFAULT +12 bg5
  +49: 0+ +16 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
- +50: 0+58 +0 TLS +GLOBAL HIDDEN +12 sh7
- +51: 0+5c +0 TLS +GLOBAL HIDDEN +12 sh8
- +52: 0+ +0 TLS +GLOBAL DEFAULT +12 sg1
+ +50: 0+58 +0 TLS +GLOBAL HIDDEN +11 sh7
+ +51: 0+5c +0 TLS +GLOBAL HIDDEN +11 sh8
+ +52: 0+ +0 TLS +GLOBAL DEFAULT +11 sg1
  +53: 40+10d0 +112 FUNC +GLOBAL DEFAULT +8 _start
- +54: 0+4c +0 TLS +GLOBAL HIDDEN +12 sh4
- +55: 0+78 +0 TLS +GLOBAL DEFAULT +13 bg7
- +56: 0+50 +0 TLS +GLOBAL HIDDEN +12 sh5
+ +54: 0+4c +0 TLS +GLOBAL HIDDEN +11 sh4
+ +55: 0+78 +0 TLS +GLOBAL DEFAULT +12 bg7
+ +56: 0+50 +0 TLS +GLOBAL HIDDEN +11 sh5
  +57: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
  +58: 40+1000 +208 FUNC +GLOBAL DEFAULT +8 fn2
- +59: 0+4 +0 TLS +GLOBAL DEFAULT +12 sg2
+ +59: 0+4 +0 TLS +GLOBAL DEFAULT +11 sg2
  +60: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
- +61: 0+40 +0 TLS +GLOBAL HIDDEN +12 sh1
- +62: 0+14 +0 TLS +GLOBAL DEFAULT +12 sg6
- +63: 0+18 +0 TLS +GLOBAL DEFAULT +12 sg7
+ +61: 0+40 +0 TLS +GLOBAL HIDDEN +11 sh1
+ +62: 0+14 +0 TLS +GLOBAL DEFAULT +11 sg6
+ +63: 0+18 +0 TLS +GLOBAL DEFAULT +11 sg7
  +64: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
  +65: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
  +66: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +67: 0+44 +0 TLS +GLOBAL HIDDEN +12 sh2
- +68: 0+54 +0 TLS +GLOBAL HIDDEN +12 sh6
- +69: 0+64 +0 TLS +GLOBAL DEFAULT +13 bg2
- +70: 0+60 +0 TLS +GLOBAL DEFAULT +13 bg1
- +71: 0+6c +0 TLS +GLOBAL DEFAULT +13 bg4
+ +67: 0+44 +0 TLS +GLOBAL HIDDEN +11 sh2
+ +68: 0+54 +0 TLS +GLOBAL HIDDEN +11 sh6
+ +69: 0+64 +0 TLS +GLOBAL DEFAULT +12 bg2
+ +70: 0+60 +0 TLS +GLOBAL DEFAULT +12 bg1
+ +71: 0+6c +0 TLS +GLOBAL DEFAULT +12 bg4
--- ld/testsuite/ld-ia64/tlsbin.td.jj	2004-05-05 14:55:02.310212102 +0200
+++ ld/testsuite/ld-ia64/tlsbin.td	2004-05-06 14:08:34.079894371 +0200
@@ -8,9 +8,9 @@
 .*: +file format elf..-ia64-.*
 
 Contents of section .tdata:
- (60+)?2000 11000000 12000000 13000000 14000000  .*
- (60+)?2010 15000000 16000000 17000000 18000000  .*
- (60+)?2020 41000000 42000000 43000000 44000000  .*
- (60+)?2030 45000000 46000000 47000000 48000000  .*
- (60+)?2040 01010000 02010000 03010000 04010000  .*
- (60+)?2050 05010000 06010000 07010000 08010000  .*
+ (60+)?1170 11000000 12000000 13000000 14000000  .*
+ (60+)?1180 15000000 16000000 17000000 18000000  .*
+ (60+)?1190 41000000 42000000 43000000 44000000  .*
+ (60+)?11a0 45000000 46000000 47000000 48000000  .*
+ (60+)?11b0 01010000 02010000 03010000 04010000  .*
+ (60+)?11c0 05010000 06010000 07010000 08010000  .*
--- ld/testsuite/ld-ia64/tlspic.td.jj	2004-05-05 14:55:02.327209056 +0200
+++ ld/testsuite/ld-ia64/tlspic.td	2004-05-06 14:08:34.081894012 +0200
@@ -8,9 +8,9 @@
 .*: +file format elf..-ia64-.*
 
 Contents of section .tdata:
- 12000 11000000 12000000 13000000 14000000  .*
- 12010 15000000 16000000 17000000 18000000  .*
- 12020 41000000 42000000 43000000 44000000  .*
- 12030 45000000 46000000 47000000 48000000  .*
- 12040 01010000 02010000 03010000 04010000  .*
- 12050 05010000 06010000 07010000 08010000  .*
+ 11140 11000000 12000000 13000000 14000000  .*
+ 11150 15000000 16000000 17000000 18000000  .*
+ 11160 41000000 42000000 43000000 44000000  .*
+ 11170 45000000 46000000 47000000 48000000  .*
+ 11180 01010000 02010000 03010000 04010000  .*
+ 11190 05010000 06010000 07010000 08010000  .*
--- ld/testsuite/ld-powerpc/tlsso.r.jj	2004-05-06 13:53:29.403024244 +0200
+++ ld/testsuite/ld-powerpc/tlsso.r	2004-05-06 14:12:16.724993470 +0200
@@ -9,36 +9,36 @@ There are 19 section headers.*
 Section Headers:
  +\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
  +\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.hash +HASH +0+120 0+120 0+c8 04 +A +2 +0 +8
- +\[ 2\] \.dynsym +DYNSYM +0+1e8 0+1e8 0+2e8 18 +A +3 +16 +8
- +\[ 3\] \.dynstr +STRTAB +0+4d0 0+4d0 0+53 0+ +A +0 +0 +1
- +\[ 4\] \.rela\.dyn +RELA +0+528 0+528 0+180 18 +A +2 +0 +8
- +\[ 5\] \.rela\.plt +RELA +0+6a8 0+6a8 0+18 18 +A +2 +14 +8
- +\[ 6\] \.text +PROGBITS +0+6c0 0+6c0 0+fc 0+ +AX +0 +0 +4
- +\[ 7\] \.data +PROGBITS +0+107c0 0+7c0 0+ 0+ +WA +0 +0 +1
- +\[ 8\] \.branch_lt +PROGBITS +0+107c0 0+7c0 0+ 0+ +WA +0 +0 +8
- +\[ 9\] \.tdata +PROGBITS +0+107c0 0+7c0 0+38 0+ WAT +0 +0 +8
- +\[10\] \.tbss +NOBITS +0+107f8 0+7f8 0+38 0+ WAT +0 +0 +8
- +\[11\] \.dynamic +DYNAMIC +0+107f8 0+7f8 0+150 10 +WA +3 +0 +8
- +\[12\] \.got +PROGBITS +0+10948 0+948 0+60 08 +WA +0 +0 +8
- +\[13\] \.sbss +NOBITS +0+109a8 0+9a8 0+ 0+ +W +0 +0 +1
- +\[14\] \.plt +NOBITS +0+109a8 0+9a8 0+30 18 +WA +0 +0 +8
- +\[15\] \.bss +NOBITS +0+109d8 0+9a8 0+ 0+ +WA +0 +0 +1
- +\[16\] \.shstrtab +STRTAB +0+ 0+9a8 0+82 0+ +0 +0 +1
- +\[17\] \.symtab +SYMTAB +0+ 0+ef0 0+3f0 18 +18 +27 +8
- +\[18\] \.strtab +STRTAB +0+ 0+12e0 0+86 0+ +0 +0 +1
+ +\[ 1\] \.hash +.*
+ +\[ 2\] \.dynsym +.*
+ +\[ 3\] \.dynstr +.*
+ +\[ 4\] \.rela\.dyn +.*
+ +\[ 5\] \.rela\.plt +.*
+ +\[ 6\] \.text +PROGBITS +0+5c8 0+5c8 0+fc 0+ +AX +0 +0 +4
+ +\[ 7\] \.tdata +PROGBITS +0+106c8 0+6c8 0+38 0+ WAT +0 +0 +8
+ +\[ 8\] \.tbss +NOBITS +0+10700 0+700 0+38 0+ WAT +0 +0 +8
+ +\[ 9\] \.dynamic +DYNAMIC +0+10700 0+700 0+150 10 +WA +3 +0 +8
+ +\[10\] \.data +PROGBITS +0+10850 0+850 0+ 0+ +WA +0 +0 +1
+ +\[11\] \.branch_lt +.*
+ +\[12\] \.got +PROGBITS +0+10850 0+850 0+60 08 +WA +0 +0 +8
+ +\[13\] \.sbss +.*
+ +\[14\] \.plt +.*
+ +\[15\] \.bss +.*
+ +\[16\] \.shstrtab +.*
+ +\[17\] \.symtab +.*
+ +\[18\] \.strtab +.*
 #...
 
 Elf file type is DYN \(Shared object file\)
-Entry point 0x6dc
+Entry point 0x[0-9a-f]+
 There are 4 program headers.*
 
 Program Headers:
  +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
- +LOAD +0x0+ 0x0+ 0x0+ 0x0+7bc 0x0+7bc R E 0x10000
- +LOAD +0x0+7c0 0x0+107c0 0x0+107c0 0x0+1e8 0x0+218 RW +0x10000
- +DYNAMIC +0x0+7f8 0x0+107f8 0x0+107f8 0x0+150 0x0+150 RW +0x8
- +TLS +0x0+7c0 0x0+107c0 0x0+107c0 0x0+38 0x0+70 R +0x8
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+6c4 0x0+6c4 R E 0x10000
+ +LOAD +0x0+6c8 0x0+106c8 0x0+106c8 0x0+1e8 0x0+218 RW +0x10000
+ +DYNAMIC +0x0+700 0x0+10700 0x0+10700 0x0+150 0x0+150 RW +0x8
+ +TLS +0x0+6c8 0x0+106c8 0x0+106c8 0x0+38 0x0+70 R +0x8
 
  Section to Segment mapping:
  +Segment Sections\.\.\.
@@ -49,102 +49,93 @@ Program Headers:
 
 Relocation section '\.rela\.dyn' at offset .* contains 16 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+72a +0+1200000045 R_PPC64_TPREL16 +0+60 le0 \+ 0
-0+72e +0+1500000048 R_PPC64_TPREL16_HA +0+68 le1 \+ 0
-0+732 +0+1500000046 R_PPC64_TPREL16_LO +0+68 le1 \+ 0
-0+76a +0+90000005f R_PPC64_TPREL16_DS +0+107c0 \.tdata \+ 28
-0+76e +0+900000048 R_PPC64_TPREL16_HA +0+107c0 \.tdata \+ 30
-0+772 +0+900000046 R_PPC64_TPREL16_LO +0+107c0 \.tdata \+ 30
-0+10950 +0+44 R_PPC64_DTPMOD64 +0+
-0+10960 +0+44 R_PPC64_DTPMOD64 +0+
-0+10968 +0+4e R_PPC64_DTPREL64 +0+
-0+10970 +0+4e R_PPC64_DTPREL64 +0+18
-0+10978 +0+1100000044 R_PPC64_DTPMOD64 +0+ gd \+ 0
-0+10980 +0+110000004e R_PPC64_DTPREL64 +0+ gd \+ 0
-0+10988 +0+180000004e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
-0+10990 +0+1d00000044 R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
-0+10998 +0+1d0000004e R_PPC64_DTPREL64 +0+38 gd0 \+ 0
-0+109a0 +0+1e00000049 R_PPC64_TPREL64 +0+58 ie0 \+ 0
+0+632 +0+90+45 R_PPC64_TPREL16 +0+60 le0 \+ 0
+0+636 +0+c0+48 R_PPC64_TPREL16_HA +0+68 le1 \+ 0
+0+63a +0+c0+46 R_PPC64_TPREL16_LO +0+68 le1 \+ 0
+0+672 +0+20+5f R_PPC64_TPREL16_DS +0+106c8 \.tdata \+ 28
+0+676 +0+20+48 R_PPC64_TPREL16_HA +0+106c8 \.tdata \+ 30
+0+67a +0+20+46 R_PPC64_TPREL16_LO +0+106c8 \.tdata \+ 30
+0+10858 +0+44 R_PPC64_DTPMOD64 +0+
+0+10868 +0+44 R_PPC64_DTPMOD64 +0+
+0+10870 +0+4e R_PPC64_DTPREL64 +0+
+0+10878 +0+4e R_PPC64_DTPREL64 +0+18
+0+10880 +0+80+44 R_PPC64_DTPMOD64 +0+ gd \+ 0
+0+10888 +0+80+4e R_PPC64_DTPREL64 +0+ gd \+ 0
+0+10890 +0+f0+4e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
+0+10898 +0+140+44 R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
+0+108a0 +0+140+4e R_PPC64_DTPREL64 +0+38 gd0 \+ 0
+0+108a8 +0+150+49 R_PPC64_TPREL64 +0+58 ie0 \+ 0
 
 Relocation section '\.rela\.plt' at offset .* contains 1 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+109c0 +0+1300000015 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
+0+108c8 +0+a0+15 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
 
-Symbol table '\.dynsym' contains 31 entries:
+Symbol table '\.dynsym' contains 22 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+120 +0 SECTION LOCAL +DEFAULT +1 
- +2: 0+1e8 +0 SECTION LOCAL +DEFAULT +2 
- +3: 0+4d0 +0 SECTION LOCAL +DEFAULT +3 
- +4: 0+528 +0 SECTION LOCAL +DEFAULT +4 
- +5: 0+6a8 +0 SECTION LOCAL +DEFAULT +5 
- +6: 0+6c0 +0 SECTION LOCAL +DEFAULT +6 
- +7: 0+107c0 +0 SECTION LOCAL +DEFAULT +7 
- +8: 0+107c0 +0 SECTION LOCAL +DEFAULT +8 
- +9: 0+107c0 +0 SECTION LOCAL +DEFAULT +9 
- +10: 0+107f8 +0 SECTION LOCAL +DEFAULT +10 
- +11: 0+107f8 +0 SECTION LOCAL +DEFAULT +11 
- +12: 0+10948 +0 SECTION LOCAL +DEFAULT +12 
- +13: 0+109a8 +0 SECTION LOCAL +DEFAULT +13 
- +14: 0+109a8 +0 SECTION LOCAL +DEFAULT +14 
- +15: 0+109d8 +0 SECTION LOCAL +DEFAULT +15 
- +16: 0+107f8 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +17: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +18: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
- +19: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
- +20: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
- +21: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
- +22: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +23: 0+6dc +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +24: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
- +25: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
- +26: 0+109a8 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +27: 0+109a8 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +28: 0+109d8 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +29: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
- +30: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
+ +[0-9]+: 0+5c8 +0 SECTION LOCAL +DEFAULT +6 
+ +[0-9]+: 0+106c8 +0 SECTION LOCAL +DEFAULT +7 
+ +[0-9]+: 0+10700 +0 SECTION LOCAL +DEFAULT +8 
+ +[0-9]+: 0+10850 +0 SECTION LOCAL +DEFAULT +10 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 
+ +[0-9]+: 0+10700 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+40 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+50 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+48 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+38 +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+58 +0 TLS +GLOBAL DEFAULT +8 ie0
 
 Symbol table '\.symtab' contains 42 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+120 +0 SECTION LOCAL +DEFAULT +1 
- +2: 0+1e8 +0 SECTION LOCAL +DEFAULT +2 
- +3: 0+4d0 +0 SECTION LOCAL +DEFAULT +3 
- +4: 0+528 +0 SECTION LOCAL +DEFAULT +4 
- +5: 0+6a8 +0 SECTION LOCAL +DEFAULT +5 
- +6: 0+6c0 +0 SECTION LOCAL +DEFAULT +6 
- +7: 0+107c0 +0 SECTION LOCAL +DEFAULT +7 
- +8: 0+107c0 +0 SECTION LOCAL +DEFAULT +8 
- +9: 0+107c0 +0 SECTION LOCAL +DEFAULT +9 
- +10: 0+107f8 +0 SECTION LOCAL +DEFAULT +10 
- +11: 0+107f8 +0 SECTION LOCAL +DEFAULT +11 
- +12: 0+10948 +0 SECTION LOCAL +DEFAULT +12 
- +13: 0+109a8 +0 SECTION LOCAL +DEFAULT +13 
- +14: 0+109a8 +0 SECTION LOCAL +DEFAULT +14 
- +15: 0+109d8 +0 SECTION LOCAL +DEFAULT +15 
- +16: 0+ +0 SECTION LOCAL +DEFAULT +16 
- +17: 0+ +0 SECTION LOCAL +DEFAULT +17 
- +18: 0+ +0 SECTION LOCAL +DEFAULT +18 
- +19: 0+ +0 TLS +LOCAL +DEFAULT +9 gd4
- +20: 0+8 +0 TLS +LOCAL +DEFAULT +9 ld4
- +21: 0+10 +0 TLS +LOCAL +DEFAULT +9 ld5
- +22: 0+18 +0 TLS +LOCAL +DEFAULT +9 ld6
- +23: 0+20 +0 TLS +LOCAL +DEFAULT +9 ie4
- +24: 0+28 +0 TLS +LOCAL +DEFAULT +9 le4
- +25: 0+30 +0 TLS +LOCAL +DEFAULT +9 le5
- +26: 0+6c0 +0 NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
- +27: 0+107f8 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +28: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +29: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
- +30: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
- +31: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
- +32: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
- +33: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +34: 0+6dc +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +35: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
- +36: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
- +37: 0+109a8 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +38: 0+109a8 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +39: 0+109d8 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +40: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
- +41: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 
+ +[0-9]+: 0+5c8 +0 SECTION LOCAL +DEFAULT +6 
+ +[0-9]+: 0+106c8 +0 SECTION LOCAL +DEFAULT +7 
+ +[0-9]+: 0+10700 +0 SECTION LOCAL +DEFAULT +8 
+ +[0-9]+: 0+10700 +0 SECTION LOCAL +DEFAULT +9 
+ +[0-9]+: 0+10850 +0 SECTION LOCAL +DEFAULT +10 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +16 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +17 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +18 
+ +[0-9]+: 0+ +0 TLS +LOCAL +DEFAULT +7 gd4
+ +[0-9]+: 0+8 +0 TLS +LOCAL +DEFAULT +7 ld4
+ +[0-9]+: 0+10 +0 TLS +LOCAL +DEFAULT +7 ld5
+ +[0-9]+: 0+18 +0 TLS +LOCAL +DEFAULT +7 ld6
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +7 ie4
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +7 le4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +7 le5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
+ +[0-9]+: 0+10700 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+40 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+50 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+48 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+38 +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+58 +0 TLS +GLOBAL DEFAULT +8 ie0
--- ld/testsuite/ld-powerpc/tlstocso.g.jj	2004-05-05 14:55:02.344206010 +0200
+++ ld/testsuite/ld-powerpc/tlstocso.g	2004-05-06 14:08:34.083893654 +0200
@@ -7,9 +7,9 @@
 .*: +file format elf64-powerpc
 
 Contents of section \.got:
- 10890 00000000 00018890 00000000 00000000  .*
- 108a0 00000000 00000000 00000000 00000000  .*
- 108b0 00000000 00000000 00000000 00000000  .*
- 108c0 00000000 00000000 00000000 00000000  .*
- 108d0 00000000 00000000 00000000 00000000  .*
- 108e0 00000000 00000000                    .*
+ 10798 00000000 00018798 00000000 00000000  .*
+ 107a8 00000000 00000000 00000000 00000000  .*
+ 107b8 00000000 00000000 00000000 00000000  .*
+ 107c8 00000000 00000000 00000000 00000000  .*
+ 107d8 00000000 00000000 00000000 00000000  .*
+ 107e8 00000000 00000000                    .*
--- ld/testsuite/ld-powerpc/tlsexetoc.r.jj	2004-05-06 13:53:29.402024424 +0200
+++ ld/testsuite/ld-powerpc/tlsexetoc.r	2004-05-06 14:11:22.702674973 +0200
@@ -10,25 +10,25 @@ There are 20 section headers.*
 Section Headers:
  +\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
  +\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.interp +PROGBITS +0+10000190 0+190 0+11 0+ +A +0 +0 +1
- +\[ 2\] \.hash +HASH +0+100001a8 0+1a8 0+38 04 +A +3 +0 +8
- +\[ 3\] \.dynsym +DYNSYM +0+100001e0 0+1e0 0+d8 18 +A +4 +1 +8
- +\[ 4\] \.dynstr +STRTAB +0+100002b8 0+2b8 0+4c 0+ +A +0 +0 +1
- +\[ 5\] \.rela\.dyn +RELA +0+10000308 0+308 0+30 18 +A +3 +0 +8
- +\[ 6\] \.rela\.plt +RELA +0+10000338 0+338 0+18 18 +A +3 +15 +8
+ +\[ 1\] \.interp +.*
+ +\[ 2\] \.hash +.*
+ +\[ 3\] \.dynsym +.*
+ +\[ 4\] \.dynstr +.*
+ +\[ 5\] \.rela\.dyn +.*
+ +\[ 6\] \.rela\.plt +.*
  +\[ 7\] \.text +PROGBITS +0+10000350 0+350 0+bc 0+ +AX +0 +0 +4
- +\[ 8\] \.data +PROGBITS +0+10010410 0+410 0+ 0+ +WA +0 +0 +1
- +\[ 9\] \.branch_lt +PROGBITS +0+10010410 0+410 0+ 0+ +WA +0 +0 +8
- +\[10\] \.tdata +PROGBITS +0+10010410 0+410 0+38 0+ WAT +0 +0 +8
- +\[11\] \.tbss +NOBITS +0+10010448 0+448 0+38 0+ WAT +0 +0 +8
- +\[12\] \.dynamic +DYNAMIC +0+10010448 0+448 0+150 10 +WA +4 +0 +8
+ +\[ 8\] \.tdata +PROGBITS +0+10010410 0+410 0+38 0+ WAT +0 +0 +8
+ +\[ 9\] \.tbss +NOBITS +0+10010448 0+448 0+38 0+ WAT +0 +0 +8
+ +\[10\] \.dynamic +DYNAMIC +0+10010448 0+448 0+150 10 +WA +4 +0 +8
+ +\[11\] \.data +PROGBITS +0+10010598 0+598 0+ 0+ +WA +0 +0 +1
+ +\[12\] \.branch_lt +.*
  +\[13\] \.got +PROGBITS +0+10010598 0+598 0+58 08 +WA +0 +0 +8
- +\[14\] \.sbss +NOBITS +0+100105f0 0+5f0 0+ 0+ +W +0 +0 +1
- +\[15\] \.plt +NOBITS +0+100105f0 0+5f0 0+30 18 +WA +0 +0 +8
- +\[16\] \.bss +NOBITS +0+10010620 0+5f0 0+ 0+ +WA +0 +0 +1
- +\[17\] \.shstrtab +STRTAB +0+ 0+5f0 0+8a 0+ +0 +0 +1
- +\[18\] \.symtab +SYMTAB +0+ 0+b80 0+420 18 +19 +28 +8
- +\[19\] \.strtab +STRTAB +0+ 0+fa0 0+8c 0+ +0 +0 +1
+ +\[14\] \.sbss +.*
+ +\[15\] \.plt +.*
+ +\[16\] \.bss +.*
+ +\[17\] \.shstrtab +.*
+ +\[18\] \.symtab +.*
+ +\[19\] \.strtab +.*
 #...
 
 Elf file type is EXEC \(Executable file\)
@@ -71,53 +71,53 @@ Symbol table '\.dynsym' contains 9 entri
  +3: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
  +4: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
  +5: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
- +6: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +7: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +8: 0+10010620 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +6: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +7: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +8: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
 
 Symbol table '\.symtab' contains 44 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
  +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+10000190 +0 SECTION LOCAL +DEFAULT +1 
- +2: 0+100001a8 +0 SECTION LOCAL +DEFAULT +2 
- +3: 0+100001e0 +0 SECTION LOCAL +DEFAULT +3 
- +4: 0+100002b8 +0 SECTION LOCAL +DEFAULT +4 
- +5: 0+10000308 +0 SECTION LOCAL +DEFAULT +5 
- +6: 0+10000338 +0 SECTION LOCAL +DEFAULT +6 
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 
+ +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 
+ +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 
+ +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 
  +7: 0+10000350 +0 SECTION LOCAL +DEFAULT +7 
  +8: 0+10010410 +0 SECTION LOCAL +DEFAULT +8 
- +9: 0+10010410 +0 SECTION LOCAL +DEFAULT +9 
- +10: 0+10010410 +0 SECTION LOCAL +DEFAULT +10 
- +11: 0+10010448 +0 SECTION LOCAL +DEFAULT +11 
- +12: 0+10010448 +0 SECTION LOCAL +DEFAULT +12 
+ +9: 0+10010448 +0 SECTION LOCAL +DEFAULT +9 
+ +10: 0+10010448 +0 SECTION LOCAL +DEFAULT +10 
+ +11: 0+10010598 +0 SECTION LOCAL +DEFAULT +11 
+ +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 
  +13: 0+10010598 +0 SECTION LOCAL +DEFAULT +13 
- +14: 0+100105f0 +0 SECTION LOCAL +DEFAULT +14 
- +15: 0+100105f0 +0 SECTION LOCAL +DEFAULT +15 
- +16: 0+10010620 +0 SECTION LOCAL +DEFAULT +16 
+ +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 
+ +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 
+ +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 
  +17: 0+ +0 SECTION LOCAL +DEFAULT +17 
  +18: 0+ +0 SECTION LOCAL +DEFAULT +18 
  +19: 0+ +0 SECTION LOCAL +DEFAULT +19 
- +20: 0+ +0 TLS +LOCAL +DEFAULT +10 gd4
- +21: 0+8 +0 TLS +LOCAL +DEFAULT +10 ld4
- +22: 0+10 +0 TLS +LOCAL +DEFAULT +10 ld5
- +23: 0+18 +0 TLS +LOCAL +DEFAULT +10 ld6
- +24: 0+20 +0 TLS +LOCAL +DEFAULT +10 ie4
- +25: 0+28 +0 TLS +LOCAL +DEFAULT +10 le4
- +26: 0+30 +0 TLS +LOCAL +DEFAULT +10 le5
+ +20: 0+ +0 TLS +LOCAL +DEFAULT +8 gd4
+ +21: 0+8 +0 TLS +LOCAL +DEFAULT +8 ld4
+ +22: 0+10 +0 TLS +LOCAL +DEFAULT +8 ld5
+ +23: 0+18 +0 TLS +LOCAL +DEFAULT +8 ld6
+ +24: 0+20 +0 TLS +LOCAL +DEFAULT +8 ie4
+ +25: 0+28 +0 TLS +LOCAL +DEFAULT +8 le4
+ +26: 0+30 +0 TLS +LOCAL +DEFAULT +8 le5
  +27: 0+100105e8 +0 NOTYPE +LOCAL +DEFAULT +13 \.Lie0
  +28: 0+10010448 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
  +29: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
- +30: 0+60 +0 TLS +GLOBAL DEFAULT +11 le0
+ +30: 0+60 +0 TLS +GLOBAL DEFAULT +9 le0
  +31: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
  +32: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
- +33: 0+40 +0 TLS +GLOBAL DEFAULT +11 ld0
- +34: 0+68 +0 TLS +GLOBAL DEFAULT +11 le1
+ +33: 0+40 +0 TLS +GLOBAL DEFAULT +9 ld0
+ +34: 0+68 +0 TLS +GLOBAL DEFAULT +9 le1
  +35: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
  +36: 0+1000036c +0 NOTYPE +GLOBAL DEFAULT +7 _start
- +37: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
- +38: 0+48 +0 TLS +GLOBAL DEFAULT +11 ld1
+ +37: 0+50 +0 TLS +GLOBAL DEFAULT +9 ld2
+ +38: 0+48 +0 TLS +GLOBAL DEFAULT +9 ld1
  +39: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
  +40: 0+100105f0 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
  +41: 0+10010620 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +42: 0+38 +0 TLS +GLOBAL DEFAULT +11 gd0
- +43: 0+58 +0 TLS +GLOBAL DEFAULT +11 ie0
+ +42: 0+38 +0 TLS +GLOBAL DEFAULT +9 gd0
+ +43: 0+58 +0 TLS +GLOBAL DEFAULT +9 ie0
--- ld/testsuite/ld-powerpc/tlsso32.g.jj	2004-05-05 14:55:02.365202247 +0200
+++ ld/testsuite/ld-powerpc/tlsso32.g	2004-05-06 14:08:34.088892758 +0200
@@ -7,7 +7,7 @@
 .*: +file format elf32-powerpc
 
 Contents of section \.got:
- 10664 4e800021 000105c4 00000000 00000000  .*
- 10674 00000000 00000000 00000000 00000000  .*
- 10684 00000000 00000000 00000000 00000000  .*
- 10694 00000000                             .*
+ 105c4 4e800021 00010524 00000000 00000000  .*
+ 105d4 00000000 00000000 00000000 00000000  .*
+ 105e4 00000000 00000000 00000000 00000000  .*
+ 105f4 00000000                             .*
--- ld/testsuite/ld-powerpc/tlsso32.r.jj	2004-05-06 13:53:29.404024065 +0200
+++ ld/testsuite/ld-powerpc/tlsso32.r	2004-05-06 14:21:34.078108535 +0200
@@ -9,37 +9,37 @@ There are 20 section headers.*
 Section Headers:
  +\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
  +\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.hash +HASH +0+b4 0+b4 0+dc 04 +A +2 +0 +4
- +\[ 2\] \.dynsym +DYNSYM +0+190 0+190 0+240 10 +A +3 +17 +4
- +\[ 3\] \.dynstr +STRTAB +0+3d0 0+3d0 0+81 0+ +A +0 +0 +1
- +\[ 4\] \.rela\.dyn +RELA +0+454 0+454 0+d8 0c +A +2 +0 +4
- +\[ 5\] \.rela\.plt +RELA +0+52c 0+52c 0+c 0c +A +2 +15 +4
- +\[ 6\] \.text +PROGBITS +0+538 0+538 0+70 0+ +AX +0 +0 +1
- +\[ 7\] \.data +PROGBITS +0+105a8 0+5a8 0+ 0+ +WA +0 +0 +1
- +\[ 8\] \.tdata +PROGBITS +0+105a8 0+5a8 0+1c 0+ WAT +0 +0 +4
- +\[ 9\] \.tbss +NOBITS +0+105c4 0+5c4 0+1c 0+ WAT +0 +0 +4
- +\[10\] \.dynamic +DYNAMIC +0+105c4 0+5c4 0+a0 08 +WA +3 +0 +4
- +\[11\] \.got +PROGBITS +0+10664 0+664 0+34 04 WAX +0 +0 +4
- +\[12\] \.sdata2 +PROGBITS +0+10698 0+698 0+ 0+ +A +0 +0 +4
- +\[13\] \.sdata +PROGBITS +0+10698 0+698 0+ 0+ +WA +0 +0 +4
- +\[14\] \.sbss +NOBITS +0+10698 0+698 0+ 0+ +WA +0 +0 +1
- +\[15\] \.plt +NOBITS +0+10698 0+698 0+54 0+ WAX +0 +0 +4
- +\[16\] \.bss +NOBITS +0+106ec 0+698 0+ 0+ +WA +0 +0 +1
- +\[17\] \.shstrtab +STRTAB +0+ 0+698 0+86 0+ +0 +0 +1
- +\[18\] \.symtab +SYMTAB +0+ 0+a40 0+2e0 10 +19 +27 +4
- +\[19\] \.strtab +STRTAB +0+ 0+d20 0+a9 0+ +0 +0 +1
+ +\[ 1\] \.hash +.*
+ +\[ 2\] \.dynsym +.*
+ +\[ 3\] \.dynstr +.*
+ +\[ 4\] \.rela\.dyn +.*
+ +\[ 5\] \.rela\.plt +.*
+ +\[ 6\] \.text +PROGBITS +0+498 0+498 0+70 0+ +AX +0 +0 +1
+ +\[ 7\] \.tdata +PROGBITS +0+10508 0+508 0+1c 0+ WAT +0 +0 +4
+ +\[ 8\] \.tbss +NOBITS +0+10524 0+524 0+1c 0+ WAT +0 +0 +4
+ +\[ 9\] \.dynamic +DYNAMIC +0+10524 0+524 0+a0 08 +WA +3 +0 +4
+ +\[10\] \.data +PROGBITS +0+105c4 0+5c4 0+ 0+ +WA +0 +0 +1
+ +\[11\] \.got +PROGBITS +0+105c4 0+5c4 0+34 04 WAX +0 +0 +4
+ +\[12\] \.sdata2 +.*
+ +\[13\] \.sdata +.*
+ +\[14\] \.sbss +.*
+ +\[15\] \.plt +.*
+ +\[16\] \.bss +.*
+ +\[17\] \.shstrtab +.*
+ +\[18\] \.symtab +.*
+ +\[19\] \.strtab +.*
 #...
 
 Elf file type is DYN \(Shared object file\)
-Entry point 0x538
+Entry point 0x[0-9a-f]+
 There are 4 program headers.*
 
 Program Headers:
  +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
- +LOAD +0x0+ 0x0+ 0x0+ 0x0+5a8 0x0+5a8 R E 0x10000
- +LOAD +0x0+5a8 0x0+105a8 0x0+105a8 0x0+f0 0x0+144 RWE 0x10000
- +DYNAMIC +0x0+5c4 0x0+105c4 0x0+105c4 0x0+a0 0x0+a0 RW +0x4
- +TLS +0x0+5a8 0x0+105a8 0x0+105a8 0x0+1c 0x0+38 R +0x4
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+508 0x0+508 R E 0x10000
+ +LOAD +0x0+508 0x0+10508 0x0+10508 0x0+f0 0x0+144 RWE 0x10000
+ +DYNAMIC +0x0+524 0x0+10524 0x0+10524 0x0+a0 0x0+a0 RW +0x4
+ +TLS +0x0+508 0x0+10508 0x0+10508 0x0+1c 0x0+38 R +0x4
 
  Section to Segment mapping:
  +Segment Sections\.\.\.
@@ -48,115 +48,107 @@ Program Headers:
  +02 +\.tbss \.dynamic 
  +03 +\.tdata \.tbss 
 
-Relocation section '\.rela\.dyn' at offset 0x454 contains 18 entries:
+Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
  Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
-0+53c +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
-0+544 +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
-0+57c +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
-0+584 +0+140a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
-0+56e +0+1345 R_PPC_TPREL16 +0+30 +le0 \+ 0
-0+572 +0+1648 R_PPC_TPREL16_HA +0+34 +le1 \+ 0
-0+576 +0+1646 R_PPC_TPREL16_LO +0+34 +le1 \+ 0
-0+59e +0+845 R_PPC_TPREL16 +0+105a8 +\.tdata \+ 105bc
-0+5a2 +0+848 R_PPC_TPREL16_HA +0+105a8 +\.tdata \+ 105c0
-0+5a6 +0+846 R_PPC_TPREL16_LO +0+105a8 +\.tdata \+ 105c0
-0+10674 +0+44 R_PPC_DTPMOD32 +0+
-0+1067c +0+44 R_PPC_DTPMOD32 +0+
-0+10680 +0+4e R_PPC_DTPREL32 +0+
-0+10684 +0+1244 R_PPC_DTPMOD32 +0+ +gd \+ 0
-0+10688 +0+124e R_PPC_DTPREL32 +0+ +gd \+ 0
-0+1068c +0+2144 R_PPC_DTPMOD32 +0+1c +gd0 \+ 0
-0+10690 +0+214e R_PPC_DTPREL32 +0+1c +gd0 \+ 0
-0+10694 +0+2249 R_PPC_TPREL32 +0+2c +ie0 \+ 0
+0+49c +0+c0a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
+0+4a4 +0+c0a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
+0+4dc +0+c0a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
+0+4e4 +0+c0a R_PPC_REL24 +0+ +__tls_get_addr \+ 0
+0+4ce +0+b45 R_PPC_TPREL16 +0+30 +le0 \+ 0
+0+4d2 +0+e48 R_PPC_TPREL16_HA +0+34 +le1 \+ 0
+0+4d6 +0+e46 R_PPC_TPREL16_LO +0+34 +le1 \+ 0
+0+4fe +0+245 R_PPC_TPREL16 +0+10508 +\.tdata \+ 1051c
+0+502 +0+248 R_PPC_TPREL16_HA +0+10508 +\.tdata \+ 10520
+0+506 +0+246 R_PPC_TPREL16_LO +0+10508 +\.tdata \+ 10520
+0+105d4 +0+44 R_PPC_DTPMOD32 +0+
+0+105dc +0+44 R_PPC_DTPMOD32 +0+
+0+105e0 +0+4e R_PPC_DTPREL32 +0+
+0+105e4 +0+a44 R_PPC_DTPMOD32 +0+ +gd \+ 0
+0+105e8 +0+a4e R_PPC_DTPREL32 +0+ +gd \+ 0
+0+105ec +0+1944 R_PPC_DTPMOD32 +0+1c +gd0 \+ 0
+0+105f0 +0+194e R_PPC_DTPREL32 +0+1c +gd0 \+ 0
+0+105f4 +0+1a49 R_PPC_TPREL32 +0+2c +ie0 \+ 0
 
-Relocation section '\.rela\.plt' at offset 0x52c contains 1 entries:
+Relocation section '\.rela\.plt' at offset 0x[0-9a-f]+ contains 1 entries:
  Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
-0+106e0 +0+1415 R_PPC_JMP_SLOT +0+ +__tls_get_addr \+ 0
+0+10640 +0+c15 R_PPC_JMP_SLOT +0+ +__tls_get_addr \+ 0
 
-Symbol table '\.dynsym' contains 36 entries:
+Symbol table '\.dynsym' contains 28 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+b4 +0 SECTION LOCAL +DEFAULT +1 
- +2: 0+190 +0 SECTION LOCAL +DEFAULT +2 
- +3: 0+3d0 +0 SECTION LOCAL +DEFAULT +3 
- +4: 0+454 +0 SECTION LOCAL +DEFAULT +4 
- +5: 0+52c +0 SECTION LOCAL +DEFAULT +5 
- +6: 0+538 +0 SECTION LOCAL +DEFAULT +6 
- +7: 0+105a8 +0 SECTION LOCAL +DEFAULT +7 
- +8: 0+105a8 +0 SECTION LOCAL +DEFAULT +8 
- +9: 0+105c4 +0 SECTION LOCAL +DEFAULT +9 
- +10: 0+105c4 +0 SECTION LOCAL +DEFAULT +10 
- +11: 0+10664 +0 SECTION LOCAL +DEFAULT +11 
- +12: 0+10698 +0 SECTION LOCAL +DEFAULT +12 
- +13: 0+10698 +0 SECTION LOCAL +DEFAULT +13 
- +14: 0+10698 +0 SECTION LOCAL +DEFAULT +14 
- +15: 0+10698 +0 SECTION LOCAL +DEFAULT +15 
- +16: 0+106ec +0 SECTION LOCAL +DEFAULT +16 
- +17: 0+105c4 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +18: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +19: 0+30 +0 TLS +GLOBAL DEFAULT +9 le0
- +20: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
- +21: 0+20 +0 TLS +GLOBAL DEFAULT +9 ld0
- +22: 0+34 +0 TLS +GLOBAL DEFAULT +9 le1
- +23: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +24: 0+538 +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +25: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS __end
- +26: 0+18698 +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
- +27: 0+28 +0 TLS +GLOBAL DEFAULT +9 ld2
- +28: 0+24 +0 TLS +GLOBAL DEFAULT +9 ld1
- +29: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +30: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +31: 0+10668 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +32: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +33: 0+1c +0 TLS +GLOBAL DEFAULT +9 gd0
- +34: 0+2c +0 TLS +GLOBAL DEFAULT +9 ie0
- +35: 0+18698 +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
+ +[0-9]+: 0+498 +0 SECTION LOCAL +DEFAULT +6 
+ +[0-9]+: 0+10508 +0 SECTION LOCAL +DEFAULT +7 
+ +[0-9]+: 0+10524 +0 SECTION LOCAL +DEFAULT +8 
+ +[0-9]+: 0+105c4 +0 SECTION LOCAL +DEFAULT +10 
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +12 
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +13 
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +14 
+ +[0-9]+: 0+1064c +0 SECTION LOCAL +DEFAULT +16 
+ +[0-9]+: 0+10524 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+30 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+20 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+34 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
+ +[0-9]+: 0+28 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+24 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+105c8 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+2c +0 TLS +GLOBAL DEFAULT +8 ie0
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
 
 Symbol table '\.symtab' contains 46 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+b4 +0 SECTION LOCAL +DEFAULT +1 
- +2: 0+190 +0 SECTION LOCAL +DEFAULT +2 
- +3: 0+3d0 +0 SECTION LOCAL +DEFAULT +3 
- +4: 0+454 +0 SECTION LOCAL +DEFAULT +4 
- +5: 0+52c +0 SECTION LOCAL +DEFAULT +5 
- +6: 0+538 +0 SECTION LOCAL +DEFAULT +6 
- +7: 0+105a8 +0 SECTION LOCAL +DEFAULT +7 
- +8: 0+105a8 +0 SECTION LOCAL +DEFAULT +8 
- +9: 0+105c4 +0 SECTION LOCAL +DEFAULT +9 
- +10: 0+105c4 +0 SECTION LOCAL +DEFAULT +10 
- +11: 0+10664 +0 SECTION LOCAL +DEFAULT +11 
- +12: 0+10698 +0 SECTION LOCAL +DEFAULT +12 
- +13: 0+10698 +0 SECTION LOCAL +DEFAULT +13 
- +14: 0+10698 +0 SECTION LOCAL +DEFAULT +14 
- +15: 0+10698 +0 SECTION LOCAL +DEFAULT +15 
- +16: 0+106ec +0 SECTION LOCAL +DEFAULT +16 
- +17: 0+ +0 SECTION LOCAL +DEFAULT +17 
- +18: 0+ +0 SECTION LOCAL +DEFAULT +18 
- +19: 0+ +0 SECTION LOCAL +DEFAULT +19 
- +20: 0+ +0 TLS +LOCAL +DEFAULT +8 gd4
- +21: 0+4 +0 TLS +LOCAL +DEFAULT +8 ld4
- +22: 0+8 +0 TLS +LOCAL +DEFAULT +8 ld5
- +23: 0+c +0 TLS +LOCAL +DEFAULT +8 ld6
- +24: 0+10 +0 TLS +LOCAL +DEFAULT +8 ie4
- +25: 0+14 +0 TLS +LOCAL +DEFAULT +8 le4
- +26: 0+18 +0 TLS +LOCAL +DEFAULT +8 le5
- +27: 0+105c4 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +28: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +29: 0+30 +0 TLS +GLOBAL DEFAULT +9 le0
- +30: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
- +31: 0+20 +0 TLS +GLOBAL DEFAULT +9 ld0
- +32: 0+34 +0 TLS +GLOBAL DEFAULT +9 le1
- +33: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +34: 0+538 +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +35: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS __end
- +36: 0+18698 +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
- +37: 0+28 +0 TLS +GLOBAL DEFAULT +9 ld2
- +38: 0+24 +0 TLS +GLOBAL DEFAULT +9 ld1
- +39: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +40: 0+10698 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +41: 0+10668 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +42: 0+106ec +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +43: 0+1c +0 TLS +GLOBAL DEFAULT +9 gd0
- +44: 0+2c +0 TLS +GLOBAL DEFAULT +9 ie0
- +45: 0+18698 +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 
+ +[0-9]+: 0+498 +0 SECTION LOCAL +DEFAULT +6 
+ +[0-9]+: 0+10508 +0 SECTION LOCAL +DEFAULT +7 
+ +[0-9]+: 0+10524 +0 SECTION LOCAL +DEFAULT +8 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 
+ +[0-9]+: 0+105c4 +0 SECTION LOCAL +DEFAULT +10 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +12 
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +13 
+ +[0-9]+: 0+105f8 +0 SECTION LOCAL +DEFAULT +14 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 
+ +[0-9]+: 0+1064c +0 SECTION LOCAL +DEFAULT +16 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +17 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +18 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +19 
+ +[0-9]+: 0+ +0 TLS +LOCAL +DEFAULT +7 gd4
+ +[0-9]+: 0+4 +0 TLS +LOCAL +DEFAULT +7 ld4
+ +[0-9]+: 0+8 +0 TLS +LOCAL +DEFAULT +7 ld5
+ +[0-9]+: 0+c +0 TLS +LOCAL +DEFAULT +7 ld6
+ +[0-9]+: 0+10 +0 TLS +LOCAL +DEFAULT +7 ie4
+ +[0-9]+: 0+14 +0 TLS +LOCAL +DEFAULT +7 le4
+ +[0-9]+: 0+18 +0 TLS +LOCAL +DEFAULT +7 le5
+ +[0-9]+: 0+10524 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+30 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+20 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+34 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +13 _SDA_BASE_
+ +[0-9]+: 0+28 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+24 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+105c8 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+2c +0 TLS +GLOBAL DEFAULT +8 ie0
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +12 _SDA2_BASE_
--- ld/testsuite/ld-powerpc/tlsso32.d.jj	2004-05-05 14:55:02.337207265 +0200
+++ ld/testsuite/ld-powerpc/tlsso32.d	2004-05-06 14:08:34.082893833 +0200
@@ -8,38 +8,38 @@
 
 Disassembly of section \.text:
 
-0+538 <_start>:
- 538:	38 7f 00 1c 	addi    r3,r31,28
- 53c:	48 00 00 01 	bl      53c .*
- 540:	38 7f 00 0c 	addi    r3,r31,12
- 544:	48 00 00 01 	bl      544 .*
- 548:	38 7f 00 24 	addi    r3,r31,36
- 54c:	48 01 01 95 	bl      106e0 .*
- 550:	38 7f 00 0c 	addi    r3,r31,12
- 554:	48 01 01 8d 	bl      106e0 .*
- 558:	39 23 80 20 	addi    r9,r3,-32736
- 55c:	3d 23 00 00 	addis   r9,r3,0
- 560:	81 49 80 24 	lwz     r10,-32732\(r9\)
- 564:	81 3f 00 2c 	lwz     r9,44\(r31\)
- 568:	7d 49 12 2e 	lhzx    r10,r9,r2
- 56c:	89 42 00 00 	lbz     r10,0\(r2\)
- 570:	3d 22 00 00 	addis   r9,r2,0
- 574:	99 49 00 00 	stb     r10,0\(r9\)
- 578:	38 7e 00 14 	addi    r3,r30,20
- 57c:	48 00 00 01 	bl      57c .*
- 580:	38 7e 00 0c 	addi    r3,r30,12
- 584:	48 00 00 01 	bl      584 .*
- 588:	91 43 80 04 	stw     r10,-32764\(r3\)
- 58c:	3d 23 00 00 	addis   r9,r3,0
- 590:	91 49 80 08 	stw     r10,-32760\(r9\)
- 594:	81 3e 00 2c 	lwz     r9,44\(r30\)
- 598:	7d 49 13 2e 	sthx    r10,r9,r2
- 59c:	a1 42 00 00 	lhz     r10,0\(r2\)
- 5a0:	3d 22 00 00 	addis   r9,r2,0
- 5a4:	a9 49 00 00 	lha     r10,0\(r9\)
+0+498 <_start>:
+ 498:	38 7f 00 1c 	addi    r3,r31,28
+ 49c:	48 00 00 01 	bl      49c .*
+ 4a0:	38 7f 00 0c 	addi    r3,r31,12
+ 4a4:	48 00 00 01 	bl      4a4 .*
+ 4a8:	38 7f 00 24 	addi    r3,r31,36
+ 4ac:	48 01 01 95 	bl      10640 .*
+ 4b0:	38 7f 00 0c 	addi    r3,r31,12
+ 4b4:	48 01 01 8d 	bl      10640 .*
+ 4b8:	39 23 80 20 	addi    r9,r3,-32736
+ 4bc:	3d 23 00 00 	addis   r9,r3,0
+ 4c0:	81 49 80 24 	lwz     r10,-32732\(r9\)
+ 4c4:	81 3f 00 2c 	lwz     r9,44\(r31\)
+ 4c8:	7d 49 12 2e 	lhzx    r10,r9,r2
+ 4cc:	89 42 00 00 	lbz     r10,0\(r2\)
+ 4d0:	3d 22 00 00 	addis   r9,r2,0
+ 4d4:	99 49 00 00 	stb     r10,0\(r9\)
+ 4d8:	38 7e 00 14 	addi    r3,r30,20
+ 4dc:	48 00 00 01 	bl      4dc .*
+ 4e0:	38 7e 00 0c 	addi    r3,r30,12
+ 4e4:	48 00 00 01 	bl      4e4 .*
+ 4e8:	91 43 80 04 	stw     r10,-32764\(r3\)
+ 4ec:	3d 23 00 00 	addis   r9,r3,0
+ 4f0:	91 49 80 08 	stw     r10,-32760\(r9\)
+ 4f4:	81 3e 00 2c 	lwz     r9,44\(r30\)
+ 4f8:	7d 49 13 2e 	sthx    r10,r9,r2
+ 4fc:	a1 42 00 00 	lhz     r10,0\(r2\)
+ 500:	3d 22 00 00 	addis   r9,r2,0
+ 504:	a9 49 00 00 	lha     r10,0\(r9\)
 Disassembly of section \.got:
 
-00010664 <\.got>:
-   10664:	4e 80 00 21 	blrl
-   10668:	00 01 05 c4 	\.long 0x105c4
+000105c4 <\.got>:
+   105c4:	4e 80 00 21 	blrl
+   105c8:	00 01 05 24 	\.long 0x10524
 	\.\.\.
--- ld/testsuite/ld-powerpc/tlsexe32.r.jj	2004-05-06 13:53:29.402024424 +0200
+++ ld/testsuite/ld-powerpc/tlsexe32.r	2004-05-06 14:10:43.951619667 +0200
@@ -10,26 +10,26 @@ There are 21 section headers.*
 Section Headers:
  +\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
  +\[ 0\] +NULL +00000000 000000 000000 00 +0 +0 +0
- +\[ 1\] \.interp +PROGBITS +01800114 000114 000011 00 +A +0 +0 +1
- +\[ 2\] \.hash +HASH +01800128 000128 00003c 04 +A +3 +0 +4
- +\[ 3\] \.dynsym +DYNSYM +01800164 000164 0000a0 10 +A +4 +1 +4
- +\[ 4\] \.dynstr +STRTAB +01800204 000204 000064 00 +A +0 +0 +1
- +\[ 5\] \.rela\.dyn +RELA +01800268 000268 000018 0c +A +3 +0 +4
- +\[ 6\] \.rela\.plt +RELA +01800280 000280 00000c 0c +A +3 +16 +4
+ +\[ 1\] \.interp +.*
+ +\[ 2\] \.hash +.*
+ +\[ 3\] \.dynsym +.*
+ +\[ 4\] \.dynstr +.*
+ +\[ 5\] \.rela\.dyn +.*
+ +\[ 6\] \.rela\.plt +.*
  +\[ 7\] \.text +PROGBITS +0180028c 00028c 000070 00 +AX +0 +0 +1
- +\[ 8\] \.sdata2 +PROGBITS +018002fc 0002fc 000000 00 +A +0 +0 +4
- +\[ 9\] \.data +PROGBITS +018102fc 0002fc 000000 00 +WA +0 +0 +1
- +\[10\] \.tdata +PROGBITS +018102fc 0002fc 00001c 00 WAT +0 +0 +4
- +\[11\] \.tbss +NOBITS +01810318 000318 00001c 00 WAT +0 +0 +4
- +\[12\] \.dynamic +DYNAMIC +01810318 000318 0000a0 08 +WA +4 +0 +4
+ +\[ 8\] \.sdata2 +PROGBITS +.*
+ +\[ 9\] \.tdata +PROGBITS +018102fc 0002fc 00001c 00 WAT +0 +0 +4
+ +\[10\] \.tbss +NOBITS +01810318 000318 00001c 00 WAT +0 +0 +4
+ +\[11\] \.dynamic +DYNAMIC +01810318 000318 0000a0 08 +WA +4 +0 +4
+ +\[12\] \.data +PROGBITS +018103b8 0003b8 000000 00 +WA +0 +0 +1
  +\[13\] \.got +PROGBITS +018103b8 0003b8 00001c 04 WAX +0 +0 +4
  +\[14\] \.sdata +PROGBITS +018103d4 0003d4 000000 00 +WA +0 +0 +4
  +\[15\] \.sbss +NOBITS +018103d4 0003d4 000000 00 +WA +0 +0 +1
- +\[16\] \.plt +NOBITS +018103d4 0003d4 000054 00 WAX +0 +0 +4
- +\[17\] \.bss +NOBITS +01810428 0003d4 000000 00 +WA +0 +0 +1
- +\[18\] \.shstrtab +STRTAB +00000000 0003d4 00008e 00 +0 +0 +1
- +\[19\] \.symtab +SYMTAB +00000000 0007ac 0002f0 10 +20 +28 +4
- +\[20\] \.strtab +STRTAB +00000000 000a9c 0000a9 00 +0 +0 +1
+ +\[16\] \.plt +NOBITS +.*
+ +\[17\] \.bss +NOBITS +.*
+ +\[18\] \.shstrtab +STRTAB +.*
+ +\[19\] \.symtab +SYMTAB +.*
+ +\[20\] \.strtab +STRTAB +.*
 #...
 
 Elf file type is EXEC \(Executable file\)
@@ -80,49 +80,49 @@ Symbol table '\.dynsym' contains 10 entr
 Symbol table '\.symtab' contains 47 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
  +0: 00000000 +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 01800114 +0 SECTION LOCAL +DEFAULT +1 
- +2: 01800128 +0 SECTION LOCAL +DEFAULT +2 
- +3: 01800164 +0 SECTION LOCAL +DEFAULT +3 
- +4: 01800204 +0 SECTION LOCAL +DEFAULT +4 
- +5: 01800268 +0 SECTION LOCAL +DEFAULT +5 
- +6: 01800280 +0 SECTION LOCAL +DEFAULT +6 
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 
+ +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 
+ +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 
+ +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 
  +7: 0180028c +0 SECTION LOCAL +DEFAULT +7 
- +8: 018002fc +0 SECTION LOCAL +DEFAULT +8 
+ +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 
  +9: 018102fc +0 SECTION LOCAL +DEFAULT +9 
- +10: 018102fc +0 SECTION LOCAL +DEFAULT +10 
+ +10: 01810318 +0 SECTION LOCAL +DEFAULT +10 
  +11: 01810318 +0 SECTION LOCAL +DEFAULT +11 
- +12: 01810318 +0 SECTION LOCAL +DEFAULT +12 
+ +12: 018103b8 +0 SECTION LOCAL +DEFAULT +12 
  +13: 018103b8 +0 SECTION LOCAL +DEFAULT +13 
  +14: 018103d4 +0 SECTION LOCAL +DEFAULT +14 
  +15: 018103d4 +0 SECTION LOCAL +DEFAULT +15 
- +16: 018103d4 +0 SECTION LOCAL +DEFAULT +16 
- +17: 01810428 +0 SECTION LOCAL +DEFAULT +17 
- +18: 00000000 +0 SECTION LOCAL +DEFAULT +18 
- +19: 00000000 +0 SECTION LOCAL +DEFAULT +19 
- +20: 00000000 +0 SECTION LOCAL +DEFAULT +20 
- +21: 00000000 +0 TLS +LOCAL +DEFAULT +10 gd4
- +22: 00000004 +0 TLS +LOCAL +DEFAULT +10 ld4
- +23: 00000008 +0 TLS +LOCAL +DEFAULT +10 ld5
- +24: 0000000c +0 TLS +LOCAL +DEFAULT +10 ld6
- +25: 00000010 +0 TLS +LOCAL +DEFAULT +10 ie4
- +26: 00000014 +0 TLS +LOCAL +DEFAULT +10 le4
- +27: 00000018 +0 TLS +LOCAL +DEFAULT +10 le5
+ +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 
+ +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 
+ +18: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +18 
+ +19: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 
+ +20: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 
+ +21: 00000000 +0 TLS +LOCAL +DEFAULT +9 gd4
+ +22: 00000004 +0 TLS +LOCAL +DEFAULT +9 ld4
+ +23: 00000008 +0 TLS +LOCAL +DEFAULT +9 ld5
+ +24: 0000000c +0 TLS +LOCAL +DEFAULT +9 ld6
+ +25: 00000010 +0 TLS +LOCAL +DEFAULT +9 ie4
+ +26: 00000014 +0 TLS +LOCAL +DEFAULT +9 le4
+ +27: 00000018 +0 TLS +LOCAL +DEFAULT +9 le5
  +28: 01810318 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
  +29: 00000000 +0 TLS +GLOBAL DEFAULT +UND gd
- +30: 00000030 +0 TLS +GLOBAL DEFAULT +11 le0
- +31: 0181041c +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
- +32: 00000020 +0 TLS +GLOBAL DEFAULT +11 ld0
- +33: 00000034 +0 TLS +GLOBAL DEFAULT +11 le1
+ +30: 00000030 +0 TLS +GLOBAL DEFAULT +10 le0
+ +31: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+ +32: 00000020 +0 TLS +GLOBAL DEFAULT +10 ld0
+ +33: 00000034 +0 TLS +GLOBAL DEFAULT +10 le1
  +34: 00000000 +0 TLS +GLOBAL DEFAULT +UND ld
- +35: 0180028c +0 NOTYPE +GLOBAL DEFAULT +7 _start
- +36: 01810428 +0 NOTYPE +GLOBAL DEFAULT +ABS __end
- +37: 018183d4 +0 OBJECT +GLOBAL DEFAULT +14 _SDA_BASE_
- +38: 00000028 +0 TLS +GLOBAL DEFAULT +11 ld2
- +39: 00000024 +0 TLS +GLOBAL DEFAULT +11 ld1
- +40: 018103d4 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +41: 018103d4 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +35: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +7 _start
+ +36: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __end
+ +37: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +14 _SDA_BASE_
+ +38: 00000028 +0 TLS +GLOBAL DEFAULT +10 ld2
+ +39: 00000024 +0 TLS +GLOBAL DEFAULT +10 ld1
+ +40: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +41: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
  +42: 018103bc +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_
- +43: 01810428 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +44: 0000001c +0 TLS +GLOBAL DEFAULT +11 gd0
- +45: 0000002c +0 TLS +GLOBAL DEFAULT +11 ie0
- +46: 018082fc +0 OBJECT +GLOBAL DEFAULT +8 _SDA2_BASE_
+ +43: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +44: 0000001c +0 TLS +GLOBAL DEFAULT +10 gd0
+ +45: 0000002c +0 TLS +GLOBAL DEFAULT +10 ie0
+ +46: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +8 _SDA2_BASE_
--- ld/testsuite/ld-powerpc/tlsexe.r.jj	2004-05-06 13:53:29.248052017 +0200
+++ ld/testsuite/ld-powerpc/tlsexe.r	2004-05-06 14:09:42.772583746 +0200
@@ -10,25 +10,25 @@ There are 20 section headers.*
 Section Headers:
  +\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
  +\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.interp +PROGBITS +0+10000190 0+190 0+11 0+ +A +0 +0 +1
- +\[ 2\] \.hash +HASH +0+100001a8 0+1a8 0+3c 04 +A +3 +0 +8
- +\[ 3\] \.dynsym +DYNSYM +0+100001e8 0+1e8 0+f0 18 +A +4 +1 +8
- +\[ 4\] \.dynstr +STRTAB +0+100002d8 0+2d8 0+50 0+ +A +0 +0 +1
- +\[ 5\] \.rela\.dyn +RELA +0+10000328 0+328 0+48 18 +A +3 +0 +8
- +\[ 6\] \.rela\.plt +RELA +0+10000370 0+370 0+18 18 +A +3 +15 +8
+ +\[ 1\] \.interp +.*
+ +\[ 2\] \.hash +.*
+ +\[ 3\] \.dynsym +.*
+ +\[ 4\] \.dynstr +.*
+ +\[ 5\] \.rela\.dyn +.*
+ +\[ 6\] \.rela\.plt +.*
  +\[ 7\] \.text +PROGBITS +0+10000388 0+388 0+fc 0+ +AX +0 +0 +4
- +\[ 8\] \.data +PROGBITS +0+10010488 0+488 0+ 0+ +WA +0 +0 +1
- +\[ 9\] \.branch_lt +PROGBITS +0+10010488 0+488 0+ 0+ +WA +0 +0 +8
- +\[10\] \.tdata +PROGBITS +0+10010488 0+488 0+38 0+ WAT +0 +0 +8
- +\[11\] \.tbss +NOBITS +0+100104c0 0+4c0 0+38 0+ WAT +0 +0 +8
- +\[12\] \.dynamic +DYNAMIC +0+100104c0 0+4c0 0+150 10 +WA +4 +0 +8
+ +\[ 8\] \.tdata +PROGBITS +0+10010488 0+488 0+38 0+ WAT +0 +0 +8
+ +\[ 9\] \.tbss +NOBITS +0+100104c0 0+4c0 0+38 0+ WAT +0 +0 +8
+ +\[10\] \.dynamic +DYNAMIC +0+100104c0 0+4c0 0+150 10 +WA +4 +0 +8
+ +\[11\] \.data +PROGBITS +0+10010610 0+610 0+ 0+ +WA +0 +0 +1
+ +\[12\] \.branch_lt +.*
  +\[13\] \.got +PROGBITS +0+10010610 0+610 0+30 08 +WA +0 +0 +8
- +\[14\] \.sbss +NOBITS +0+10010640 0+640 0+ 0+ +W +0 +0 +1
- +\[15\] \.plt +NOBITS +0+10010640 0+640 0+30 18 +WA +0 +0 +8
- +\[16\] \.bss +NOBITS +0+10010670 0+640 0+ 0+ +WA +0 +0 +1
- +\[17\] \.shstrtab +STRTAB +0+ 0+640 0+8a 0+ +0 +0 +1
- +\[18\] \.symtab +SYMTAB +0+ 0+bd0 0+408 18 +19 +27 +8
- +\[19\] \.strtab +STRTAB +0+ 0+fd8 0+86 0+ +0 +0 +1
+ +\[14\] \.sbss +.*
+ +\[15\] \.plt +.*
+ +\[16\] \.bss +.*
+ +\[17\] \.shstrtab +.*
+ +\[18\] \.symtab +.*
+ +\[19\] \.strtab +.*
 #...
 
 Elf file type is EXEC \(Executable file\)
@@ -72,7 +72,7 @@ Symbol table '\.dynsym' contains 10 entr
  +3: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
  +4: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
  +5: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
- +6: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
+ +6: 0+50 +0 TLS +GLOBAL DEFAULT +9 ld2
  +7: 0+10010640 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
  +8: 0+10010640 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
  +9: 0+10010670 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
@@ -80,45 +80,45 @@ Symbol table '\.dynsym' contains 10 entr
 Symbol table '\.symtab' contains 43 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
  +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+10000190 +0 SECTION LOCAL +DEFAULT +1 
- +2: 0+100001a8 +0 SECTION LOCAL +DEFAULT +2 
- +3: 0+100001e8 +0 SECTION LOCAL +DEFAULT +3 
- +4: 0+100002d8 +0 SECTION LOCAL +DEFAULT +4 
- +5: 0+10000328 +0 SECTION LOCAL +DEFAULT +5 
- +6: 0+10000370 +0 SECTION LOCAL +DEFAULT +6 
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 
+ +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 
+ +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 
+ +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 
  +7: 0+10000388 +0 SECTION LOCAL +DEFAULT +7 
  +8: 0+10010488 +0 SECTION LOCAL +DEFAULT +8 
- +9: 0+10010488 +0 SECTION LOCAL +DEFAULT +9 
- +10: 0+10010488 +0 SECTION LOCAL +DEFAULT +10 
- +11: 0+100104c0 +0 SECTION LOCAL +DEFAULT +11 
- +12: 0+100104c0 +0 SECTION LOCAL +DEFAULT +12 
+ +9: 0+100104c0 +0 SECTION LOCAL +DEFAULT +9 
+ +10: 0+100104c0 +0 SECTION LOCAL +DEFAULT +10 
+ +11: 0+10010610 +0 SECTION LOCAL +DEFAULT +11 
+ +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 
  +13: 0+10010610 +0 SECTION LOCAL +DEFAULT +13 
- +14: 0+10010640 +0 SECTION LOCAL +DEFAULT +14 
- +15: 0+10010640 +0 SECTION LOCAL +DEFAULT +15 
- +16: 0+10010670 +0 SECTION LOCAL +DEFAULT +16 
+ +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 
+ +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 
+ +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 
  +17: 0+ +0 SECTION LOCAL +DEFAULT +17 
  +18: 0+ +0 SECTION LOCAL +DEFAULT +18 
  +19: 0+ +0 SECTION LOCAL +DEFAULT +19 
- +20: 0+ +0 TLS +LOCAL +DEFAULT +10 gd4
- +21: 0+8 +0 TLS +LOCAL +DEFAULT +10 ld4
- +22: 0+10 +0 TLS +LOCAL +DEFAULT +10 ld5
- +23: 0+18 +0 TLS +LOCAL +DEFAULT +10 ld6
- +24: 0+20 +0 TLS +LOCAL +DEFAULT +10 ie4
- +25: 0+28 +0 TLS +LOCAL +DEFAULT +10 le4
- +26: 0+30 +0 TLS +LOCAL +DEFAULT +10 le5
+ +20: 0+ +0 TLS +LOCAL +DEFAULT +8 gd4
+ +21: 0+8 +0 TLS +LOCAL +DEFAULT +8 ld4
+ +22: 0+10 +0 TLS +LOCAL +DEFAULT +8 ld5
+ +23: 0+18 +0 TLS +LOCAL +DEFAULT +8 ld6
+ +24: 0+20 +0 TLS +LOCAL +DEFAULT +8 ie4
+ +25: 0+28 +0 TLS +LOCAL +DEFAULT +8 le4
+ +26: 0+30 +0 TLS +LOCAL +DEFAULT +8 le5
  +27: 0+100104c0 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
  +28: 0+ +0 TLS +GLOBAL DEFAULT +UND gd
- +29: 0+60 +0 TLS +GLOBAL DEFAULT +11 le0
+ +29: 0+60 +0 TLS +GLOBAL DEFAULT +9 le0
  +30: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
  +31: 0+ +0 FUNC +GLOBAL DEFAULT +UND \.__tls_get_addr
- +32: 0+40 +0 TLS +GLOBAL DEFAULT +11 ld0
- +33: 0+68 +0 TLS +GLOBAL DEFAULT +11 le1
+ +32: 0+40 +0 TLS +GLOBAL DEFAULT +9 ld0
+ +33: 0+68 +0 TLS +GLOBAL DEFAULT +9 le1
  +34: 0+ +0 TLS +GLOBAL DEFAULT +UND ld
- +35: 0+100003a4 +0 NOTYPE +GLOBAL DEFAULT +7 _start
- +36: 0+50 +0 TLS +GLOBAL DEFAULT +11 ld2
- +37: 0+48 +0 TLS +GLOBAL DEFAULT +11 ld1
- +38: 0+10010640 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +39: 0+10010640 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +40: 0+10010670 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +41: 0+38 +0 TLS +GLOBAL DEFAULT +11 gd0
- +42: 0+58 +0 TLS +GLOBAL DEFAULT +11 ie0
+ +35: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +7 _start
+ +36: 0+50 +0 TLS +GLOBAL DEFAULT +9 ld2
+ +37: 0+48 +0 TLS +GLOBAL DEFAULT +9 ld1
+ +38: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +39: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +40: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +41: 0+38 +0 TLS +GLOBAL DEFAULT +9 gd0
+ +42: 0+58 +0 TLS +GLOBAL DEFAULT +9 ie0
--- ld/testsuite/ld-powerpc/tlsso32.t.jj	2004-05-05 14:55:02.358203502 +0200
+++ ld/testsuite/ld-powerpc/tlsso32.t	2004-05-06 14:08:34.087892937 +0200
@@ -7,5 +7,5 @@
 .*: +file format elf32-powerpc
 
 Contents of section \.tdata:
- 105a8 12345678 23456789 3456789a 456789ab  .*
- 105b8 56789abc 6789abcd 789abcde           .*
+ 10508 12345678 23456789 3456789a 456789ab  .*
+ 10518 56789abc 6789abcd 789abcde           .*
--- ld/testsuite/ld-powerpc/tlstocso.r.jj	2004-05-06 13:53:29.404024065 +0200
+++ ld/testsuite/ld-powerpc/tlstocso.r	2004-05-06 14:13:54.363495379 +0200
@@ -9,36 +9,36 @@ There are 19 section headers.*
 Section Headers:
  +\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
  +\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
- +\[ 1\] \.hash +HASH +0+120 0+120 0+c8 04 +A +2 +0 +8
- +\[ 2\] \.dynsym +DYNSYM +0+1e8 0+1e8 0+2e8 18 +A +3 +16 +8
- +\[ 3\] \.dynstr +STRTAB +0+4d0 0+4d0 0+53 0+ +A +0 +0 +1
- +\[ 4\] \.rela\.dyn +RELA +0+528 0+528 0+108 18 +A +2 +0 +8
- +\[ 5\] \.rela\.plt +RELA +0+630 0+630 0+18 18 +A +2 +14 +8
- +\[ 6\] \.text +PROGBITS +0+648 0+648 0+bc 0+ +AX +0 +0 +4
- +\[ 7\] \.data +PROGBITS +0+10708 0+708 0+ 0+ +WA +0 +0 +1
- +\[ 8\] \.branch_lt +PROGBITS +0+10708 0+708 0+ 0+ +WA +0 +0 +8
- +\[ 9\] \.tdata +PROGBITS +0+10708 0+708 0+38 0+ WAT +0 +0 +8
- +\[10\] \.tbss +NOBITS +0+10740 0+740 0+38 0+ WAT +0 +0 +8
- +\[11\] \.dynamic +DYNAMIC +0+10740 0+740 0+150 10 +WA +3 +0 +8
- +\[12\] \.got +PROGBITS +0+10890 0+890 0+58 08 +WA +0 +0 +8
- +\[13\] \.sbss +NOBITS +0+108e8 0+8e8 0+ 0+ +W +0 +0 +1
- +\[14\] \.plt +NOBITS +0+108e8 0+8e8 0+30 18 +WA +0 +0 +8
- +\[15\] \.bss +NOBITS +0+10918 0+8e8 0+ 0+ +WA +0 +0 +1
- +\[16\] \.shstrtab +STRTAB +0+ 0+8e8 0+82 0+ +0 +0 +1
- +\[17\] \.symtab +SYMTAB +0+ 0+e30 0+408 18 +18 +28 +8
- +\[18\] \.strtab +STRTAB +0+ 0+1238 0+8c 0+ +0 +0 +1
+ +\[ 1\] \.hash +.*
+ +\[ 2\] \.dynsym +.*
+ +\[ 3\] \.dynstr +.*
+ +\[ 4\] \.rela\.dyn +.*
+ +\[ 5\] \.rela\.plt +.*
+ +\[ 6\] \.text +PROGBITS +0+550 0+550 0+bc 0+ +AX +0 +0 +4
+ +\[ 7\] \.tdata +PROGBITS +0+10610 0+610 0+38 0+ WAT +0 +0 +8
+ +\[ 8\] \.tbss +NOBITS +0+10648 0+648 0+38 0+ WAT +0 +0 +8
+ +\[ 9\] \.dynamic +DYNAMIC +0+10648 0+648 0+150 10 +WA +3 +0 +8
+ +\[10\] \.data +PROGBITS +0+10798 0+798 0+ 0+ +WA +0 +0 +1
+ +\[11\] \.branch_lt +.*
+ +\[12\] \.got +PROGBITS +0+10798 0+798 0+58 08 +WA +0 +0 +8
+ +\[13\] \.sbss +.*
+ +\[14\] \.plt +.*
+ +\[15\] \.bss +.*
+ +\[16\] \.shstrtab +.*
+ +\[17\] \.symtab +.*
+ +\[18\] \.strtab +.*
 #...
 
 Elf file type is DYN \(Shared object file\)
-Entry point 0x664
+Entry point 0x[0-9a-f]+
 There are 4 program headers.*
 
 Program Headers:
  +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
- +LOAD +0x0+ 0x0+ 0x0+ 0x0+704 0x0+704 R E 0x10000
- +LOAD +0x0+708 0x0+10708 0x0+10708 0x0+1e0 0x0+210 RW +0x10000
- +DYNAMIC +0x0+740 0x0+10740 0x0+10740 0x0+150 0x0+150 RW +0x8
- +TLS +0x0+708 0x0+10708 0x0+10708 0x0+38 0x0+70 R +0x8
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+60c 0x0+60c R E 0x10000
+ +LOAD +0x0+610 0x0+10610 0x0+10610 0x0+1e0 0x0+210 RW +0x10000
+ +DYNAMIC +0x0+648 0x0+10648 0x0+10648 0x0+150 0x0+150 RW +0x8
+ +TLS +0x0+610 0x0+10610 0x0+10610 0x0+38 0x0+70 R +0x8
 
  Section to Segment mapping:
  +Segment Sections\.\.\.
@@ -49,98 +49,89 @@ Program Headers:
 
 Relocation section '\.rela\.dyn' at offset .* contains 11 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+6b2 +0+1200000045 R_PPC64_TPREL16 +0+60 le0 \+ 0
-0+6b6 +0+1500000048 R_PPC64_TPREL16_HA +0+68 le1 \+ 0
-0+6ba +0+1500000046 R_PPC64_TPREL16_LO +0+68 le1 \+ 0
-0+10898 +0+1100000044 R_PPC64_DTPMOD64 +0+ gd \+ 0
-0+108a0 +0+110000004e R_PPC64_DTPREL64 +0+ gd \+ 0
-0+108a8 +0+1600000044 R_PPC64_DTPMOD64 +0+ ld \+ 0
-0+108b8 +0+1d00000044 R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
-0+108c0 +0+1d0000004e R_PPC64_DTPREL64 +0+38 gd0 \+ 0
-0+108c8 +0+1400000044 R_PPC64_DTPMOD64 +0+40 ld0 \+ 0
-0+108d8 +0+180000004e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
-0+108e0 +0+1e00000049 R_PPC64_TPREL64 +0+58 ie0 \+ 0
+0+5ba +0+90+45 R_PPC64_TPREL16 +0+60 le0 \+ 0
+0+5be +0+c0+48 R_PPC64_TPREL16_HA +0+68 le1 \+ 0
+0+5c2 +0+c0+46 R_PPC64_TPREL16_LO +0+68 le1 \+ 0
+0+107a0 +0+80+44 R_PPC64_DTPMOD64 +0+ gd \+ 0
+0+107a8 +0+80+4e R_PPC64_DTPREL64 +0+ gd \+ 0
+0+107b0 +0+d0+44 R_PPC64_DTPMOD64 +0+ ld \+ 0
+0+107c0 +0+140+44 R_PPC64_DTPMOD64 +0+38 gd0 \+ 0
+0+107c8 +0+140+4e R_PPC64_DTPREL64 +0+38 gd0 \+ 0
+0+107d0 +0+b0+44 R_PPC64_DTPMOD64 +0+40 ld0 \+ 0
+0+107e0 +0+f0+4e R_PPC64_DTPREL64 +0+50 ld2 \+ 0
+0+107e8 +0+150+49 R_PPC64_TPREL64 +0+58 ie0 \+ 0
 
 Relocation section '\.rela\.plt' at offset .* contains 1 entries:
  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+10900 +0+1300000015 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
+0+10808 +0+a0+15 R_PPC64_JMP_SLOT +0+ __tls_get_addr \+ 0
 
-Symbol table '\.dynsym' contains 31 entries:
+Symbol table '\.dynsym' contains 22 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+120 +0 SECTION LOCAL +DEFAULT +1 
- +2: 0+1e8 +0 SECTION LOCAL +DEFAULT +2 
- +3: 0+4d0 +0 SECTION LOCAL +DEFAULT +3 
- +4: 0+528 +0 SECTION LOCAL +DEFAULT +4 
- +5: 0+630 +0 SECTION LOCAL +DEFAULT +5 
- +6: 0+648 +0 SECTION LOCAL +DEFAULT +6 
- +7: 0+10708 +0 SECTION LOCAL +DEFAULT +7 
- +8: 0+10708 +0 SECTION LOCAL +DEFAULT +8 
- +9: 0+10708 +0 SECTION LOCAL +DEFAULT +9 
- +10: 0+10740 +0 SECTION LOCAL +DEFAULT +10 
- +11: 0+10740 +0 SECTION LOCAL +DEFAULT +11 
- +12: 0+10890 +0 SECTION LOCAL +DEFAULT +12 
- +13: 0+108e8 +0 SECTION LOCAL +DEFAULT +13 
- +14: 0+108e8 +0 SECTION LOCAL +DEFAULT +14 
- +15: 0+10918 +0 SECTION LOCAL +DEFAULT +15 
- +16: 0+10740 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +17: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +18: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
- +19: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
- +20: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
- +21: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
- +22: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +23: 0+664 +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +24: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
- +25: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
- +26: 0+108e8 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +27: 0+108e8 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +28: 0+10918 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +29: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
- +30: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
+ +[0-9]+: 0+550 +0 SECTION LOCAL +DEFAULT +6 
+ +[0-9]+: 0+10610 +0 SECTION LOCAL +DEFAULT +7 
+ +[0-9]+: 0+10648 +0 SECTION LOCAL +DEFAULT +8 
+ +[0-9]+: 0+10798 +0 SECTION LOCAL +DEFAULT +10 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 
+ +[0-9]+: 0+10648 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+40 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+50 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+48 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+38 +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+58 +0 TLS +GLOBAL DEFAULT +8 ie0
 
 Symbol table '\.symtab' contains 43 entries:
  +Num: +Value +Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
- +1: 0+120 +0 SECTION LOCAL +DEFAULT +1 
- +2: 0+1e8 +0 SECTION LOCAL +DEFAULT +2 
- +3: 0+4d0 +0 SECTION LOCAL +DEFAULT +3 
- +4: 0+528 +0 SECTION LOCAL +DEFAULT +4 
- +5: 0+630 +0 SECTION LOCAL +DEFAULT +5 
- +6: 0+648 +0 SECTION LOCAL +DEFAULT +6 
- +7: 0+10708 +0 SECTION LOCAL +DEFAULT +7 
- +8: 0+10708 +0 SECTION LOCAL +DEFAULT +8 
- +9: 0+10708 +0 SECTION LOCAL +DEFAULT +9 
- +10: 0+10740 +0 SECTION LOCAL +DEFAULT +10 
- +11: 0+10740 +0 SECTION LOCAL +DEFAULT +11 
- +12: 0+10890 +0 SECTION LOCAL +DEFAULT +12 
- +13: 0+108e8 +0 SECTION LOCAL +DEFAULT +13 
- +14: 0+108e8 +0 SECTION LOCAL +DEFAULT +14 
- +15: 0+10918 +0 SECTION LOCAL +DEFAULT +15 
- +16: 0+ +0 SECTION LOCAL +DEFAULT +16 
- +17: 0+ +0 SECTION LOCAL +DEFAULT +17 
- +18: 0+ +0 SECTION LOCAL +DEFAULT +18 
- +19: 0+ +0 TLS +LOCAL +DEFAULT +9 gd4
- +20: 0+8 +0 TLS +LOCAL +DEFAULT +9 ld4
- +21: 0+10 +0 TLS +LOCAL +DEFAULT +9 ld5
- +22: 0+18 +0 TLS +LOCAL +DEFAULT +9 ld6
- +23: 0+20 +0 TLS +LOCAL +DEFAULT +9 ie4
- +24: 0+28 +0 TLS +LOCAL +DEFAULT +9 le4
- +25: 0+30 +0 TLS +LOCAL +DEFAULT +9 le5
- +26: 0+108e0 +0 NOTYPE +LOCAL +DEFAULT +12 \.Lie0
- +27: 0+648 +0 NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
- +28: 0+10740 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
- +29: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
- +30: 0+60 +0 TLS +GLOBAL DEFAULT +10 le0
- +31: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
- +32: 0+40 +0 TLS +GLOBAL DEFAULT +10 ld0
- +33: 0+68 +0 TLS +GLOBAL DEFAULT +10 le1
- +34: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
- +35: 0+664 +0 NOTYPE +GLOBAL DEFAULT +6 _start
- +36: 0+50 +0 TLS +GLOBAL DEFAULT +10 ld2
- +37: 0+48 +0 TLS +GLOBAL DEFAULT +10 ld1
- +38: 0+108e8 +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
- +39: 0+108e8 +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
- +40: 0+10918 +0 NOTYPE +GLOBAL DEFAULT +ABS _end
- +41: 0+38 +0 TLS +GLOBAL DEFAULT +10 gd0
- +42: 0+58 +0 TLS +GLOBAL DEFAULT +10 ie0
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND 
+ +[0-9]+: 0+120 +0 SECTION LOCAL +DEFAULT +1 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 
+ +[0-9]+: 0+550 +0 SECTION LOCAL +DEFAULT +6 
+ +[0-9]+: 0+10610 +0 SECTION LOCAL +DEFAULT +7 
+ +[0-9]+: 0+10648 +0 SECTION LOCAL +DEFAULT +8 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 
+ +[0-9]+: 0+10798 +0 SECTION LOCAL +DEFAULT +10 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +16 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +17 
+ +[0-9]+: 0+ +0 SECTION LOCAL +DEFAULT +18 
+ +[0-9]+: 0+ +0 TLS +LOCAL +DEFAULT +7 gd4
+ +[0-9]+: 0+8 +0 TLS +LOCAL +DEFAULT +7 ld4
+ +[0-9]+: 0+10 +0 TLS +LOCAL +DEFAULT +7 ld5
+ +[0-9]+: 0+18 +0 TLS +LOCAL +DEFAULT +7 ld6
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +7 ie4
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +7 le4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +7 le5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +LOCAL +DEFAULT +12 \.Lie0
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +LOCAL +DEFAULT +6 \.__tls_get_addr
+ +[0-9]+: 0+10648 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND gd
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 le0
+ +[0-9]+: 0+ +24 OBJECT +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+40 +0 TLS +GLOBAL DEFAULT +8 ld0
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 le1
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND ld
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+50 +0 TLS +GLOBAL DEFAULT +8 ld2
+ +[0-9]+: 0+48 +0 TLS +GLOBAL DEFAULT +8 ld1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+38 +0 TLS +GLOBAL DEFAULT +8 gd0
+ +[0-9]+: 0+58 +0 TLS +GLOBAL DEFAULT +8 ie0
--- ld/testsuite/ld-powerpc/tlsso.g.jj	2004-05-05 14:55:02.334207802 +0200
+++ ld/testsuite/ld-powerpc/tlsso.g	2004-05-06 14:08:34.082893833 +0200
@@ -7,9 +7,9 @@
 .*: +file format elf64-powerpc
 
 Contents of section \.got:
- 10948 00000000 00018948 00000000 00000000  .*
- 10958 00000000 00000000 00000000 00000000  .*
- 10968 00000000 00000000 00000000 00000000  .*
- 10978 00000000 00000000 00000000 00000000  .*
- 10988 00000000 00000000 00000000 00000000  .*
- 10998 00000000 00000000 00000000 00000000  .*
+ 10850 00000000 00018850 00000000 00000000  .*
+ 10860 00000000 00000000 00000000 00000000  .*
+ 10870 00000000 00000000 00000000 00000000  .*
+ 10880 00000000 00000000 00000000 00000000  .*
+ 10890 00000000 00000000 00000000 00000000  .*
+ 108a0 00000000 00000000 00000000 00000000  .*
--- ld/testsuite/ld-i386/tlsbinpic.s.jj	2004-05-05 14:55:02.379199739 +0200
+++ ld/testsuite/ld-i386/tlsbinpic.s	2004-05-06 14:08:34.090892400 +0200
@@ -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
--- ld/testsuite/ld-i386/tlspic.dd.jj	2004-05-05 14:55:02.400195976 +0200
+++ ld/testsuite/ld-i386/tlspic.dd	2004-05-06 14:08:34.094891683 +0200
@@ -16,13 +16,13 @@ Disassembly of section .text:
  [0-9a-f]+:	50[ 	]+push   %eax
  [0-9a-f]+:	e8 00 00 00 00[ 	]+call   [0-9a-f]+ <fn1\+0xa>
  [0-9a-f]+:	5b[ 	]+pop    %ebx
- [0-9a-f]+:	81 c3 [0-9a-f ]+[ 	]+add    \$0x[0-9a-f]+,%ebx
+ [0-9a-f]+:	81 c3 42 14 00 00[ 	]+add    \$0x[0-9a-f]+,%ebx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  GD
- [0-9a-f]+:	8d 04 1d 5c 00 00 00 	lea    0x5c\(,%ebx,1\),%eax
+ [0-9a-f]+:	8d 04 1d d4 ff ff ff[ 	]+lea    0xffffffd4\(,%ebx,1\),%eax
 #				->R_386_TLS_DTPMOD32	sg1
  [0-9a-f]+:	e8 cf ff ff ff[ 	]+call   [0-9a-f]+ <___tls_get_addr@plt>
 #				->R_386_JUMP_SLOT	___tls_get_addr
@@ -32,7 +32,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE because variable is referenced through @gottpoff too
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	2b 83 78 00 00 00[ 	]+sub    0x78\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 f0 ff ff ff[ 	]+sub    0xfffffff0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sg2
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -40,7 +40,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE because variable is referenced through @gotntpoff too
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	03 83 3c 00 00 00[ 	]+add    0x3c\(%ebx\),%eax
+ [0-9a-f]+:	03 83 b4 ff ff ff[ 	]+add    0xffffffb4\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	sg3
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -48,14 +48,14 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE because variable is referenced through @gottpoff and
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	2b 83 48 00 00 00[ 	]+sub    0x48\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 c0 ff ff ff[ 	]+sub    0xffffffc0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sg4
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  GD against local variable
- [0-9a-f]+:	8d 04 1d 10 00 00 00 	lea    0x10\(,%ebx,1\),%eax
+ [0-9a-f]+:	8d 04 1d 88 ff ff ff[ 	]+lea    0xffffff88\(,%ebx,1\),%eax
 #				->R_386_TLS_DTPMOD32	[0x00000000 0x20000000]
  [0-9a-f]+:	e8 8f ff ff ff[ 	]+call   [0-9a-f]+ <___tls_get_addr@plt>
 #				->R_386_JUMP_SLOT	___tls_get_addr
@@ -65,7 +65,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against local variable referenced through @gottpoff too
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	2b 83 18 00 00 00[ 	]+sub    0x18\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 90 ff ff ff[ 	]+sub    0xffffff90\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0xdcffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -73,7 +73,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against local variable referenced through @gotntpoff
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	03 83 1c 00 00 00[ 	]+add    0x1c\(%ebx\),%eax
+ [0-9a-f]+:	03 83 94 ff ff ff[ 	]+add    0xffffff94\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	[0x28000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -81,14 +81,14 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against local variable referenced through @gottpoff and
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	2b 83 20 00 00 00[ 	]+sub    0x20\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 98 ff ff ff[ 	]+sub    0xffffff98\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0xd4ffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  GD against hidden and local variable
- [0-9a-f]+:	8d 04 1d 7c 00 00 00 	lea    0x7c\(,%ebx,1\),%eax
+ [0-9a-f]+:	8d 04 1d f4 ff ff ff[ 	]+lea    0xfffffff4\(,%ebx,1\),%eax
 #				->R_386_TLS_DTPMOD32	[0x00000000 0x40000000]
  [0-9a-f]+:	e8 4f ff ff ff[ 	]+call   [0-9a-f]+ <___tls_get_addr@plt>
 #				->R_386_JUMP_SLOT	___tls_get_addr
@@ -98,7 +98,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against hidden and local variable referenced through @gottpoff too
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	2b 83 84 00 00 00[ 	]+sub    0x84\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 fc ff ff ff[ 	]+sub    0xfffffffc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0xbcffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -106,7 +106,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against hidden and local variable referenced through @gotntpoff too
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	03 83 40 00 00 00[ 	]+add    0x40\(%ebx\),%eax
+ [0-9a-f]+:	03 83 b8 ff ff ff[ 	]+add    0xffffffb8\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	[0x48000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -114,14 +114,14 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against hidden and local variable referenced through @gottpoff and @gotntpoff too
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	2b 83 64 00 00 00[ 	]+sub    0x64\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 dc ff ff ff[ 	]+sub    0xffffffdc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0xb4ffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  GD against hidden but not local variable
- [0-9a-f]+:	8d 04 1d 34 00 00 00 	lea    0x34\(,%ebx,1\),%eax
+ [0-9a-f]+:	8d 04 1d ac ff ff ff[ 	]+lea    0xffffffac\(,%ebx,1\),%eax
 #				->R_386_TLS_DTPMOD32	[0x00000000 0x60000000]
  [0-9a-f]+:	e8 0f ff ff ff[ 	]+call   [0-9a-f]+ <___tls_get_addr@plt>
 #				->R_386_JUMP_SLOT	___tls_get_addr
@@ -131,7 +131,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against hidden but not local variable referenced through
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	2b 83 44 00 00 00[ 	]+sub    0x44\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 bc ff ff ff[ 	]+sub    0xffffffbc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0x9cffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -139,7 +139,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against hidden but not local variable referenced through
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	03 83 6c 00 00 00[ 	]+add    0x6c\(%ebx\),%eax
+ [0-9a-f]+:	03 83 e4 ff ff ff[ 	]+add    0xffffffe4\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	[0x68000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -147,14 +147,14 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  GD -> IE against hidden but not local variable referenced through
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- [0-9a-f]+:	2b 83 54 00 00 00[ 	]+sub    0x54\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 cc ff ff ff[ 	]+sub    0xffffffcc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0x94ffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  LD
- [0-9a-f]+:	8d 83 2c 00 00 00[ 	]+lea    0x2c\(%ebx\),%eax
+ [0-9a-f]+:	8d 83 a4 ff ff ff[ 	]+lea    0xffffffa4\(%ebx\),%eax
 #				->R_386_TLS_DTPMOD32	[0x00000000 0x00000000]
  [0-9a-f]+:	e8 d0 fe ff ff[ 	]+call   [0-9a-f]+ <___tls_get_addr@plt>
 #				->R_386_JUMP_SLOT	___tls_get_addr
@@ -171,7 +171,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  LD against hidden and local variables
- [0-9a-f]+:	8d 83 2c 00 00 00[ 	]+lea    0x2c\(%ebx\),%eax
+ [0-9a-f]+:	8d 83 a4 ff ff ff[ 	]+lea    0xffffffa4\(%ebx\),%eax
 #				->R_386_TLS_DTPMOD32	[0x00000000 0x00000000]
  [0-9a-f]+:	e8 b1 fe ff ff[ 	]+call   [0-9a-f]+ <___tls_get_addr@plt>
 #				->R_386_JUMP_SLOT	___tls_get_addr
@@ -188,7 +188,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  LD against hidden but not local variables
- [0-9a-f]+:	8d 83 2c 00 00 00[ 	]+lea    0x2c\(%ebx\),%eax
+ [0-9a-f]+:	8d 83 a4 ff ff ff[ 	]+lea    0xffffffa4\(%ebx\),%eax
 #				->R_386_TLS_DTPMOD32	[0x00000000 0x00000000]
  [0-9a-f]+:	e8 92 fe ff ff[ 	]+call   [0-9a-f]+ <___tls_get_addr@plt>
 #				->R_386_JUMP_SLOT	___tls_get_addr
@@ -203,10 +203,10 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gottpoff IE against global var
- [0-9a-f]+:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ [0-9a-f]+:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	2b 8b 78 00 00 00[ 	]+sub    0x78\(%ebx\),%ecx
+ [0-9a-f]+:	2b 8b f0 ff ff ff[ 	]+sub    0xfffffff0\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF32	sg2
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -216,17 +216,17 @@ Disassembly of section .text:
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	2b 83 48 00 00 00[ 	]+sub    0x48\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 c0 ff ff ff[ 	]+sub    0xffffffc0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sg4
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gotntpoff IE against global var
- [0-9a-f]+:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ [0-9a-f]+:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	03 8b 3c 00 00 00[ 	]+add    0x3c\(%ebx\),%ecx
+ [0-9a-f]+:	03 8b b4 ff ff ff[ 	]+add    0xffffffb4\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF	sg3
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -236,17 +236,17 @@ Disassembly of section .text:
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	03 83 4c 00 00 00[ 	]+add    0x4c\(%ebx\),%eax
+ [0-9a-f]+:	03 83 c4 ff ff ff[ 	]+add    0xffffffc4\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	sg4
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gottpoff IE against local var
- [0-9a-f]+:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ [0-9a-f]+:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	2b 8b 18 00 00 00[ 	]+sub    0x18\(%ebx\),%ecx
+ [0-9a-f]+:	2b 8b 90 ff ff ff[ 	]+sub    0xffffff90\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF32	[0xdcffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -256,17 +256,17 @@ Disassembly of section .text:
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	2b 83 20 00 00 00[ 	]+sub    0x20\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 98 ff ff ff[ 	]+sub    0xffffff98\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0xd4ffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gotntpoff IE against local var
- [0-9a-f]+:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ [0-9a-f]+:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	03 8b 1c 00 00 00[ 	]+add    0x1c\(%ebx\),%ecx
+ [0-9a-f]+:	03 8b 94 ff ff ff[ 	]+add    0xffffff94\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF	[0x28000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -276,17 +276,17 @@ Disassembly of section .text:
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	03 83 24 00 00 00[ 	]+add    0x24\(%ebx\),%eax
+ [0-9a-f]+:	03 83 9c ff ff ff[ 	]+add    0xffffff9c\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	[0x2c000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gottpoff IE against hidden and local var
- [0-9a-f]+:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ [0-9a-f]+:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	2b 8b 84 00 00 00[ 	]+sub    0x84\(%ebx\),%ecx
+ [0-9a-f]+:	2b 8b fc ff ff ff[ 	]+sub    0xfffffffc\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF32	[0xbcffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -296,17 +296,17 @@ Disassembly of section .text:
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	2b 83 64 00 00 00[ 	]+sub    0x64\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 dc ff ff ff[ 	]+sub    0xffffffdc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0xb4ffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gotntpoff IE against hidden and local var
- [0-9a-f]+:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ [0-9a-f]+:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	03 8b 40 00 00 00[ 	]+add    0x40\(%ebx\),%ecx
+ [0-9a-f]+:	03 8b b8 ff ff ff[ 	]+add    0xffffffb8\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF	[0x48000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -316,17 +316,17 @@ Disassembly of section .text:
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	03 83 68 00 00 00[ 	]+add    0x68\(%ebx\),%eax
+ [0-9a-f]+:	03 83 e0 ff ff ff[ 	]+add    0xffffffe0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	[0x4c000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gottpoff IE against hidden but not local var
- [0-9a-f]+:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ [0-9a-f]+:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	2b 8b 44 00 00 00[ 	]+sub    0x44\(%ebx\),%ecx
+ [0-9a-f]+:	2b 8b bc ff ff ff[ 	]+sub    0xffffffbc\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF32	[0x9cffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -336,17 +336,17 @@ Disassembly of section .text:
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	2b 83 54 00 00 00[ 	]+sub    0x54\(%ebx\),%eax
+ [0-9a-f]+:	2b 83 cc ff ff ff[ 	]+sub    0xffffffcc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	[0x94ffffff]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gotntpoff IE against hidden but not local var
- [0-9a-f]+:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ [0-9a-f]+:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	03 8b 6c 00 00 00[ 	]+add    0x6c\(%ebx\),%ecx
+ [0-9a-f]+:	03 8b e4 ff ff ff[ 	]+add    0xffffffe4\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF	[0x68000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -356,7 +356,7 @@ Disassembly of section .text:
  [0-9a-f]+:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	03 83 58 00 00 00[ 	]+add    0x58\(%ebx\),%eax
+ [0-9a-f]+:	03 83 d0 ff ff ff[ 	]+add    0xffffffd0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	[0x6c000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -364,7 +364,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  Direct access through %gs
 #  @gotntpoff IE against global var
- [0-9a-f]+:	8b 8b 50 00 00 00[ 	]+mov    0x50\(%ebx\),%ecx
+ [0-9a-f]+:	8b 8b c8 ff ff ff[ 	]+mov    0xffffffc8\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF	sg5
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -374,7 +374,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gotntpoff IE against local var
- [0-9a-f]+:	8b 83 28 00 00 00[ 	]+mov    0x28\(%ebx\),%eax
+ [0-9a-f]+:	8b 83 a0 ff ff ff[ 	]+mov    0xffffffa0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	[0x30000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -384,7 +384,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gotntpoff IE against hidden and local var
- [0-9a-f]+:	8b 93 70 00 00 00[ 	]+mov    0x70\(%ebx\),%edx
+ [0-9a-f]+:	8b 93 e8 ff ff ff[ 	]+mov    0xffffffe8\(%ebx\),%edx
 #				->R_386_TLS_TPOFF	[0x50000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -394,7 +394,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  @gotntpoff IE against hidden but not local var
- [0-9a-f]+:	8b 8b 74 00 00 00[ 	]+mov    0x74\(%ebx\),%ecx
+ [0-9a-f]+:	8b 8b ec ff ff ff[ 	]+mov    0xffffffec\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF	[0x70000000]
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
--- ld/testsuite/ld-i386/tlspic.rd.jj	2004-05-05 14:55:02.403195439 +0200
+++ ld/testsuite/ld-i386/tlspic.rd	2004-05-06 14:08:34.094891683 +0200
@@ -17,15 +17,16 @@ Section Headers:
   \[ 5\] \.rel.plt +.*
   \[ 6\] \.plt +.*
   \[ 7\] \.text +.*
-  \[ 8\] \.data +.*
-  \[ 9\] .tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000060 00 WAT  0   0  1
-  \[10\] .tbss +NOBITS +[0-9aa-f]+ [0-9a-f]+ 000020 00 WAT  0   0  1
-  \[11\] \.dynamic +.*
-  \[12\] \.got +.*
-  \[13\] \.bss +.*
-  \[14\] \.shstrtab +.*
-  \[15\] \.symtab +.*
-  \[16\] \.strtab +.*
+  \[ 8\] \.tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000060 00 WAT  0   0  1
+  \[ 9\] \.tbss +NOBITS +[0-9aa-f]+ [0-9a-f]+ 000020 00 WAT  0   0  1
+  \[10\] \.dynamic +.*
+  \[11\] \.got +.*
+  \[12\] \.got.plt +.*
+  \[13\] \.data +.*
+  \[14\] \.bss +.*
+  \[15\] \.shstrtab +.*
+  \[16\] \.symtab +.*
+  \[17\] \.strtab +.*
 Key to Flags:
 .*
 .*
@@ -45,7 +46,7 @@ Program Headers:
  Section to Segment mapping:
   Segment Sections...
    00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text *
-   01 +.tdata .tbss .dynamic .got *
+   01 +.tdata .tbss .dynamic .got .got.plt *
    02 +.tbss .dynamic *
    03 +.tdata .tbss *
 
@@ -70,105 +71,98 @@ Relocation section '.rel.dyn' at offset 
 [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
--- ld/testsuite/ld-i386/tlsnopic.rd.jj	2004-05-05 14:55:02.406194901 +0200
+++ ld/testsuite/ld-i386/tlsnopic.rd	2004-05-06 14:08:34.095891504 +0200
@@ -5,7 +5,7 @@
 #readelf: -Ssrl
 #target: i?86-*-*
 
-There are 14 section headers, starting at offset 0x[0-9a-f]+:
+There are 16 section headers, starting at offset 0x[0-9a-f]+:
 
 Section Headers:
   \[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
@@ -15,14 +15,16 @@ Section Headers:
   \[ 3\] \.dynstr +.*
   \[ 4\] \.rel.dyn +.*
   \[ 5\] \.text +PROGBITS +0+1000 .*
-  \[ 6\] \.data +.*
-  \[ 7\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000024 00 WAT  0   0  1
+  \[ 6\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000024 00 WAT  0   0  1
+  \[ 7\] \.data.rel.ro +PROGBITS +.*
   \[ 8\] \.dynamic +DYNAMIC +0+2000 .*
   \[ 9\] \.got +PROGBITS +0+2080 .*
-  \[10\] \.bss +.*
-  \[11\] \.shstrtab +.*
-  \[12\] \.symtab +.*
-  \[13\] \.strtab +.*
+  \[10\] \.got.plt +PROGBITS +0+2098 .*
+  \[11\] \.data +.*
+  \[12\] \.bss +.*
+  \[13\] \.shstrtab +.*
+  \[14\] \.symtab +.*
+  \[15\] \.strtab +.*
 Key to Flags:
 .*
 .*
@@ -42,7 +44,7 @@ Program Headers:
  Section to Segment mapping:
   Segment Sections...
    00 +.hash .dynsym .dynstr .rel.dyn .text *
-   01 +.tbss .dynamic .got *
+   01 +.tbss .dynamic .got .got.plt *
    02 +.tbss .dynamic *
    03 +.tbss *
 
@@ -54,80 +56,77 @@ Relocation section '.rel.dyn' at offset 
 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
--- ld/testsuite/ld-i386/tlsbin.dd.jj	2004-05-05 14:55:02.386198485 +0200
+++ ld/testsuite/ld-i386/tlsbin.dd	2004-05-06 14:08:34.091892220 +0200
@@ -25,14 +25,14 @@ Disassembly of section .text:
  8049004:	50[ 	]+push   %eax
  8049005:	e8 00 00 00 00[ 	]+call   804900a <fn2\+0xa>
  804900a:	5b[ 	]+pop    %ebx
- 804900b:	81 c3 f6 10 00 00[ 	]+add    \$0x10f6,%ebx
+ 804900b:	81 c3 1a 11 00 00[ 	]+add    \$0x111a,%ebx
  8049011:	90[ 	]+nop *
  8049012:	90[ 	]+nop *
  8049013:	90[ 	]+nop *
  8049014:	90[ 	]+nop *
 #  GD -> IE because variable is not defined in executable
  8049015:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- 804901b:	2b 83 2c 00 00 00[ 	]+sub    0x2c\(%ebx\),%eax
+ 804901b:	2b 83 f8 ff ff ff[ 	]+sub    0xfffffff8\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sG1
  8049021:	90[ 	]+nop *
  8049022:	90[ 	]+nop *
@@ -41,7 +41,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is not defined in executable where
 #  the variable is referenced through @gottpoff too
  8049025:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- 804902b:	2b 83 1c 00 00 00[ 	]+sub    0x1c\(%ebx\),%eax
+ 804902b:	2b 83 e8 ff ff ff[ 	]+sub    0xffffffe8\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sG2
  8049031:	90[ 	]+nop *
  8049032:	90[ 	]+nop *
@@ -50,7 +50,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is not defined in executable where
 #  the variable is referenced through @gotntpoff too
  8049035:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- 804903b:	2b 83 10 00 00 00[ 	]+sub    0x10\(%ebx\),%eax
+ 804903b:	2b 83 dc ff ff ff[ 	]+sub    0xffffffdc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	sG3
  8049041:	90[ 	]+nop *
  8049042:	90[ 	]+nop *
@@ -59,7 +59,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is not defined in executable where
 #  the variable is referenced through @gottpoff and @gotntpoff too
  8049045:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- 804904b:	2b 83 20 00 00 00[ 	]+sub    0x20\(%ebx\),%eax
+ 804904b:	2b 83 ec ff ff ff[ 	]+sub    0xffffffec\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sG4
  8049051:	90[ 	]+nop *
  8049052:	90[ 	]+nop *
@@ -67,7 +67,7 @@ Disassembly of section .text:
  8049054:	90[ 	]+nop *
 #  GD -> LE with global variable defined in executable
  8049055:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- 804905b:	81 e8 a0 00 00 00[ 	]+sub    \$0xa0,%eax
+ 804905b:	81 e8 00 10 00 00[ 	]+sub    \$0x1000,%eax
 #							sg1
  8049061:	90[ 	]+nop *
  8049062:	90[ 	]+nop *
@@ -75,7 +75,7 @@ Disassembly of section .text:
  8049064:	90[ 	]+nop *
 #  GD -> LE with local variable defined in executable
  8049065:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- 804906b:	81 e8 80 00 00 00[ 	]+sub    \$0x80,%eax
+ 804906b:	81 e8 e0 0f 00 00[ 	]+sub    \$0xfe0,%eax
 #							sl1
  8049071:	90[ 	]+nop *
  8049072:	90[ 	]+nop *
@@ -83,7 +83,7 @@ Disassembly of section .text:
  8049074:	90[ 	]+nop *
 #  GD -> LE with hidden variable defined in executable
  8049075:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
- 804907b:	81 e8 60 00 00 00[ 	]+sub    \$0x60,%eax
+ 804907b:	81 e8 c0 0f 00 00[ 	]+sub    \$0xfc0,%eax
 #							sh1
  8049081:	90[ 	]+nop *
  8049082:	90[ 	]+nop *
@@ -95,11 +95,11 @@ Disassembly of section .text:
  804908c:	8d 74 26 00[ 	]+lea    0x0\(%esi\),%esi
  8049090:	90[ 	]+nop *
  8049091:	90[ 	]+nop *
- 8049092:	8d 90 80 ff ff ff[ 	]+lea    0xffffff80\(%eax\),%edx
+ 8049092:	8d 90 20 f0 ff ff[ 	]+lea    0xfffff020\(%eax\),%edx
 #							sl1
  8049098:	90[ 	]+nop *
  8049099:	90[ 	]+nop *
- 804909a:	8d 88 84 ff ff ff[ 	]+lea    0xffffff84\(%eax\),%ecx
+ 804909a:	8d 88 24 f0 ff ff[ 	]+lea    0xfffff024\(%eax\),%ecx
 #							sl2
  80490a0:	90[ 	]+nop *
  80490a1:	90[ 	]+nop *
@@ -111,21 +111,21 @@ Disassembly of section .text:
  80490ab:	8d 74 26 00[ 	]+lea    0x0\(%esi\),%esi
  80490af:	90[ 	]+nop *
  80490b0:	90[ 	]+nop *
- 80490b1:	8d 90 a0 ff ff ff[ 	]+lea    0xffffffa0\(%eax\),%edx
+ 80490b1:	8d 90 40 f0 ff ff[ 	]+lea    0xfffff040\(%eax\),%edx
 #							sh1
  80490b7:	90[ 	]+nop *
  80490b8:	90[ 	]+nop *
- 80490b9:	8d 88 a4 ff ff ff[ 	]+lea    0xffffffa4\(%eax\),%ecx
+ 80490b9:	8d 88 44 f0 ff ff[ 	]+lea    0xfffff044\(%eax\),%ecx
 #							sh2
  80490bf:	90[ 	]+nop *
  80490c0:	90[ 	]+nop *
  80490c1:	90[ 	]+nop *
  80490c2:	90[ 	]+nop *
 #  @gottpoff IE against global var
- 80490c3:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ 80490c3:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  80490ca:	90[ 	]+nop *
  80490cb:	90[ 	]+nop *
- 80490cc:	2b 8b 1c 00 00 00[ 	]+sub    0x1c\(%ebx\),%ecx
+ 80490cc:	2b 8b e8 ff ff ff[ 	]+sub    0xffffffe8\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF32	sG2
  80490d2:	90[ 	]+nop *
  80490d3:	90[ 	]+nop *
@@ -135,17 +135,17 @@ Disassembly of section .text:
  80490d6:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  80490dc:	90[ 	]+nop *
  80490dd:	90[ 	]+nop *
- 80490de:	2b 83 20 00 00 00[ 	]+sub    0x20\(%ebx\),%eax
+ 80490de:	2b 83 ec ff ff ff[ 	]+sub    0xffffffec\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sG4
  80490e4:	90[ 	]+nop *
  80490e5:	90[ 	]+nop *
  80490e6:	90[ 	]+nop *
  80490e7:	90[ 	]+nop *
 #  @gotntpoff IE against global var
- 80490e8:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ 80490e8:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  80490ef:	90[ 	]+nop *
  80490f0:	90[ 	]+nop *
- 80490f1:	03 8b 10 00 00 00[ 	]+add    0x10\(%ebx\),%ecx
+ 80490f1:	03 8b dc ff ff ff[ 	]+add    0xffffffdc\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF	sG3
  80490f7:	90[ 	]+nop *
  80490f8:	90[ 	]+nop *
@@ -155,37 +155,37 @@ Disassembly of section .text:
  80490fb:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  8049101:	90[ 	]+nop *
  8049102:	90[ 	]+nop *
- 8049103:	03 83 24 00 00 00[ 	]+add    0x24\(%ebx\),%eax
+ 8049103:	03 83 f0 ff ff ff[ 	]+add    0xfffffff0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	sG4
  8049109:	90[ 	]+nop *
  804910a:	90[ 	]+nop *
  804910b:	90[ 	]+nop *
  804910c:	90[ 	]+nop *
 #  @gottpoff IE -> LE against global var defined in exec
- 804910d:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ 804910d:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  8049114:	90[ 	]+nop *
  8049115:	90[ 	]+nop *
- 8049116:	81 e9 a0 00 00 00[ 	]+sub    \$0xa0,%ecx
+ 8049116:	81 e9 00 10 00 00[ 	]+sub    \$0x1000,%ecx
 #							sg1
  804911c:	90[ 	]+nop *
  804911d:	90[ 	]+nop *
  804911e:	90[ 	]+nop *
  804911f:	90[ 	]+nop *
 #  @gotntpoff IE -> LE against local var
- 8049120:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ 8049120:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  8049127:	90[ 	]+nop *
  8049128:	90[ 	]+nop *
- 8049129:	81 c0 80 ff ff ff[ 	]+add    \$0xffffff80,%eax
+ 8049129:	81 c0 20 f0 ff ff[ 	]+add    \$0xfffff020,%eax
 #							sl1
  804912f:	90[ 	]+nop *
  8049130:	90[ 	]+nop *
  8049131:	90[ 	]+nop *
  8049132:	90[ 	]+nop *
 #  @gottpoff IE -> LE against hidden var
- 8049133:	65 8b 0d 00 00 00 00 	mov    %gs:0x0,%ecx
+ 8049133:	65 8b 0d 00 00 00 00[ 	]+mov    %gs:0x0,%ecx
  804913a:	90[ 	]+nop *
  804913b:	90[ 	]+nop *
- 804913c:	81 e9 60 00 00 00[ 	]+sub    \$0x60,%ecx
+ 804913c:	81 e9 c0 0f 00 00[ 	]+sub    \$0xfc0,%ecx
 #							sh1
  8049142:	90[ 	]+nop *
  8049143:	90[ 	]+nop *
@@ -193,7 +193,7 @@ Disassembly of section .text:
  8049145:	90[ 	]+nop *
 #  Direct access through %gs
 #  @gotntpoff IE against global var
- 8049146:	8b 8b 14 00 00 00[ 	]+mov    0x14\(%ebx\),%ecx
+ 8049146:	8b 8b e0 ff ff ff[ 	]+mov    0xffffffe0\(%ebx\),%ecx
 #				->R_386_TLS_TPOFF	sG5
  804914c:	90[ 	]+nop *
  804914d:	90[ 	]+nop *
@@ -203,7 +203,7 @@ Disassembly of section .text:
  8049153:	90[ 	]+nop *
  8049154:	90[ 	]+nop *
 #  @gotntpoff IE->LE against local var
- 8049155:	c7 c0 90 ff ff ff[ 	]+mov    \$0xffffff90,%eax
+ 8049155:	c7 c0 30 f0 ff ff[ 	]+mov    \$0xfffff030,%eax
 #							sl5
  804915b:	90[ 	]+nop *
  804915c:	90[ 	]+nop *
@@ -213,7 +213,7 @@ Disassembly of section .text:
  8049162:	90[ 	]+nop *
  8049163:	90[ 	]+nop *
 #  @gotntpoff IE->LE against hidden var
- 8049164:	c7 c2 b0 ff ff ff[ 	]+mov    \$0xffffffb0,%edx
+ 8049164:	c7 c2 50 f0 ff ff[ 	]+mov    \$0xfffff050,%edx
 #							sh5
  804916a:	90[ 	]+nop *
  804916b:	90[ 	]+nop *
@@ -226,21 +226,21 @@ Disassembly of section .text:
  8049176:	c9[ 	]+leave *
  8049177:	c3[ 	]+ret *
 
-08049178 <_start>:
+0+8049178 <_start>:
  8049178:	55[ 	]+push   %ebp
  8049179:	89 e5[ 	]+mov    %esp,%ebp
  804917b:	e8 00 00 00 00[ 	]+call   8049180 <_start\+0x8>
  8049180:	59[ 	]+pop    %ecx
- 8049181:	81 c1 80 0f 00 00[ 	]+add    \$0xf80,%ecx
+ 8049181:	81 c1 a4 0f 00 00[ 	]+add    \$0xfa4,%ecx
  8049187:	90[ 	]+nop *
  8049188:	90[ 	]+nop *
  8049189:	90[ 	]+nop *
  804918a:	90[ 	]+nop *
 #  @gottpoff IE against global var
- 804918b:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
+ 804918b:	65 8b 15 00 00 00 00[ 	]+mov    %gs:0x0,%edx
  8049192:	90[ 	]+nop *
  8049193:	90[ 	]+nop *
- 8049194:	2b 91 28 00 00 00[ 	]+sub    0x28\(%ecx\),%edx
+ 8049194:	2b 91 f4 ff ff ff[ 	]+sub    0xfffffff4\(%ecx\),%edx
 #				->R_386_TLS_TPOFF32	sG6
  804919a:	90[ 	]+nop *
  804919b:	90[ 	]+nop *
@@ -250,14 +250,14 @@ Disassembly of section .text:
  804919e:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  80491a4:	90[ 	]+nop *
  80491a5:	90[ 	]+nop *
- 80491a6:	03 05 18 a1 04 08[ 	]+add    0x804a118,%eax
+ 80491a6:	03 05 08 a1 04 08[ 	]+add    0x804a108,%eax
 #				->R_386_TLS_TPOFF	sG7
  80491ac:	90[ 	]+nop *
  80491ad:	90[ 	]+nop *
  80491ae:	90[ 	]+nop *
  80491af:	90[ 	]+nop *
 #  @indntpoff direct %gs access IE against global var
- 80491b0:	8b 15 30 a1 04 08[ 	]+mov    0x804a130,%edx
+ 80491b0:	8b 15 20 a1 04 08[ 	]+mov    0x804a120,%edx
 #				->R_386_TLS_TPOFF	sG8
  80491b6:	90[ 	]+nop *
  80491b7:	90[ 	]+nop *
@@ -267,10 +267,10 @@ Disassembly of section .text:
  80491bd:	90[ 	]+nop *
  80491be:	90[ 	]+nop *
 #  @gottpoff IE -> LE against global var defined in exec
- 80491bf:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
+ 80491bf:	65 8b 15 00 00 00 00[ 	]+mov    %gs:0x0,%edx
  80491c6:	90[ 	]+nop *
  80491c7:	90[ 	]+nop *
- 80491c8:	81 ea 2c 00 00 00[ 	]+sub    \$0x2c,%edx
+ 80491c8:	81 ea 8c 0f 00 00[ 	]+sub    \$0xf8c,%edx
 #							bg6
  80491ce:	90[ 	]+nop *
  80491cf:	90[ 	]+nop *
@@ -280,7 +280,7 @@ Disassembly of section .text:
  80491d2:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  80491d8:	90[ 	]+nop *
  80491d9:	90[ 	]+nop *
- 80491da:	81 c0 d8 ff ff ff[ 	]+add    \$0xffffffd8,%eax
+ 80491da:	81 c0 78 f0 ff ff[ 	]+add    \$0xfffff078,%eax
 #							bg7
  80491e0:	90[ 	]+nop *
  80491e1:	90[ 	]+nop *
@@ -288,7 +288,7 @@ Disassembly of section .text:
  80491e3:	90[ 	]+nop *
 #  @indntpoff direct %gs access IE -> LE against global var defined
 #  in exec
- 80491e4:	c7 c2 dc ff ff ff[ 	]+mov    \$0xffffffdc,%edx
+ 80491e4:	c7 c2 7c f0 ff ff[ 	]+mov    \$0xfffff07c,%edx
 #							bg8
  80491ea:	90[ 	]+nop *
  80491eb:	90[ 	]+nop *
@@ -298,10 +298,10 @@ Disassembly of section .text:
  80491f1:	90[ 	]+nop *
  80491f2:	90[ 	]+nop *
 #  @gottpoff IE -> LE against local var
- 80491f3:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
+ 80491f3:	65 8b 15 00 00 00 00[ 	]+mov    %gs:0x0,%edx
  80491fa:	90[ 	]+nop *
  80491fb:	90[ 	]+nop *
- 80491fc:	81 ea 0c 00 00 00[ 	]+sub    \$0xc,%edx
+ 80491fc:	81 ea 6c 0f 00 00[ 	]+sub    \$0xf6c,%edx
 #							bl6
  8049202:	90[ 	]+nop *
  8049203:	90[ 	]+nop *
@@ -311,14 +311,14 @@ Disassembly of section .text:
  8049206:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  804920c:	90[ 	]+nop *
  804920d:	90[ 	]+nop *
- 804920e:	81 c0 f8 ff ff ff[ 	]+add    \$0xfffffff8,%eax
+ 804920e:	81 c0 98 f0 ff ff[ 	]+add    \$0xfffff098,%eax
 #							bl7
  8049214:	90[ 	]+nop *
  8049215:	90[ 	]+nop *
  8049216:	90[ 	]+nop *
  8049217:	90[ 	]+nop *
 #  @indntpoff direct %gs access IE -> LE against local var
- 8049218:	c7 c2 fc ff ff ff[ 	]+mov    \$0xfffffffc,%edx
+ 8049218:	c7 c2 9c f0 ff ff[ 	]+mov    \$0xfffff09c,%edx
 #							bl8
  804921e:	90[ 	]+nop *
  804921f:	90[ 	]+nop *
@@ -328,10 +328,10 @@ Disassembly of section .text:
  8049225:	90[ 	]+nop *
  8049226:	90[ 	]+nop *
 #  @gottpoff IE -> LE against hidden but not local var
- 8049227:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
+ 8049227:	65 8b 15 00 00 00 00[ 	]+mov    %gs:0x0,%edx
  804922e:	90[ 	]+nop *
  804922f:	90[ 	]+nop *
- 8049230:	81 ea 4c 00 00 00[ 	]+sub    \$0x4c,%edx
+ 8049230:	81 ea ac 0f 00 00[ 	]+sub    \$0xfac,%edx
 #							sh6
  8049236:	90[ 	]+nop *
  8049237:	90[ 	]+nop *
@@ -341,7 +341,7 @@ Disassembly of section .text:
  804923a:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  8049240:	90[ 	]+nop *
  8049241:	90[ 	]+nop *
- 8049242:	81 c0 b8 ff ff ff[ 	]+add    \$0xffffffb8,%eax
+ 8049242:	81 c0 58 f0 ff ff[ 	]+add    \$0xfffff058,%eax
 #							sh7
  8049248:	90[ 	]+nop *
  8049249:	90[ 	]+nop *
@@ -349,7 +349,7 @@ Disassembly of section .text:
  804924b:	90[ 	]+nop *
 #  @indntpoff direct %gs access IE -> LE against hidden but not
 #  local var
- 804924c:	c7 c2 bc ff ff ff[ 	]+mov    \$0xffffffbc,%edx
+ 804924c:	c7 c2 5c f0 ff ff[ 	]+mov    \$0xfffff05c,%edx
 #							sh8
  8049252:	90[ 	]+nop *
  8049253:	90[ 	]+nop *
@@ -359,7 +359,7 @@ Disassembly of section .text:
  8049259:	90[ 	]+nop *
  804925a:	90[ 	]+nop *
 #  LE @tpoff, global var defined in exec
- 804925b:	ba a0 00 00 00[ 	]+mov    \$0xa0,%edx
+ 804925b:	ba 00 10 00 00[ 	]+mov    \$0x1000,%edx
 #							sg1
  8049260:	90[ 	]+nop *
  8049261:	90[ 	]+nop *
@@ -372,11 +372,11 @@ Disassembly of section .text:
  804926e:	90[ 	]+nop *
  804926f:	90[ 	]+nop *
 #  LE @tpoff, local var
- 8049270:	b8 1f 00 00 00[ 	]+mov    \$0x1f,%eax
+ 8049270:	b8 7f 0f 00 00[ 	]+mov    \$0xf7f,%eax
 #							bl1+1
  8049275:	90[ 	]+nop *
  8049276:	90[ 	]+nop *
- 8049277:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
+ 8049277:	65 8b 15 00 00 00 00[ 	]+mov    %gs:0x0,%edx
  804927e:	90[ 	]+nop *
  804927f:	90[ 	]+nop *
  8049280:	29 c2[ 	]+sub    %eax,%edx
@@ -385,11 +385,11 @@ Disassembly of section .text:
  8049284:	90[ 	]+nop *
  8049285:	90[ 	]+nop *
 #  LE @tpoff, hidden var defined in exec
- 8049286:	b8 5d 00 00 00[ 	]+mov    \$0x5d,%eax
+ 8049286:	b8 bd 0f 00 00[ 	]+mov    \$0xfbd,%eax
 #							sh1+3
  804928b:	90[ 	]+nop *
  804928c:	90[ 	]+nop *
- 804928d:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
+ 804928d:	65 8b 15 00 00 00 00[ 	]+mov    %gs:0x0,%edx
  8049294:	90[ 	]+nop *
  8049295:	90[ 	]+nop *
  8049296:	29 c2[ 	]+sub    %eax,%edx
@@ -401,18 +401,18 @@ Disassembly of section .text:
  804929c:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
  80492a2:	90[ 	]+nop *
  80492a3:	90[ 	]+nop *
- 80492a4:	8d 90 64 ff ff ff[ 	]+lea    0xffffff64\(%eax\),%edx
+ 80492a4:	8d 90 04 f0 ff ff[ 	]+lea    0xfffff004\(%eax\),%edx
 #							sg2
  80492aa:	90[ 	]+nop *
  80492ab:	90[ 	]+nop *
  80492ac:	90[ 	]+nop *
  80492ad:	90[ 	]+nop *
 #  LE @ntpoff, local var, non-canonical sequence
- 80492ae:	b8 e6 ff ff ff[ 	]+mov    \$0xffffffe6,%eax
+ 80492ae:	b8 86 f0 ff ff[ 	]+mov    \$0xfffff086,%eax
 #							bl2+2
  80492b3:	90[ 	]+nop *
  80492b4:	90[ 	]+nop *
- 80492b5:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
+ 80492b5:	65 8b 15 00 00 00 00[ 	]+mov    %gs:0x0,%edx
  80492bc:	90[ 	]+nop *
  80492bd:	90[ 	]+nop *
  80492be:	01 c2[ 	]+add    %eax,%edx
@@ -421,31 +421,31 @@ Disassembly of section .text:
  80492c2:	90[ 	]+nop *
  80492c3:	90[ 	]+nop *
 #  LE @ntpoff, hidden var defined in exec, non-canonical sequence
- 80492c4:	65 8b 15 00 00 00 00 	mov    %gs:0x0,%edx
+ 80492c4:	65 8b 15 00 00 00 00[ 	]+mov    %gs:0x0,%edx
  80492cb:	90[ 	]+nop *
  80492cc:	90[ 	]+nop *
- 80492cd:	81 c2 a5 ff ff ff[ 	]+add    \$0xffffffa5,%edx
+ 80492cd:	81 c2 45 f0 ff ff[ 	]+add    \$0xfffff045,%edx
 #							sh2+1
  80492d3:	90[ 	]+nop *
  80492d4:	90[ 	]+nop *
  80492d5:	90[ 	]+nop *
  80492d6:	90[ 	]+nop *
 #  LE @ntpoff, global var defined in exec
- 80492d7:	65 a1 68 ff ff ff[ 	]+mov    %gs:0xffffff68,%eax
+ 80492d7:	65 a1 08 f0 ff ff[ 	]+mov    %gs:0xfffff008,%eax
 #							sg3
  80492dd:	90[ 	]+nop *
  80492de:	90[ 	]+nop *
  80492df:	90[ 	]+nop *
  80492e0:	90[ 	]+nop *
 #  LE @ntpoff, local var
- 80492e1:	65 8b 15 eb ff ff ff 	mov    %gs:0xffffffeb,%edx
+ 80492e1:	65 8b 15 8b f0 ff ff[ 	]+mov    %gs:0xfffff08b,%edx
 #							bl3+3
  80492e8:	90[ 	]+nop *
  80492e9:	90[ 	]+nop *
  80492ea:	90[ 	]+nop *
  80492eb:	90[ 	]+nop *
 #  LE @ntpoff, hidden var defined in exec
- 80492ec:	65 8b 15 a9 ff ff ff 	mov    %gs:0xffffffa9,%edx
+ 80492ec:	65 8b 15 49 f0 ff ff[ 	]+mov    %gs:0xfffff049,%edx
 #							sh3+1
  80492f3:	90[ 	]+nop *
  80492f4:	90[ 	]+nop *
--- ld/testsuite/ld-i386/tlsnopic1.s.jj	2004-05-05 14:55:02.382199201 +0200
+++ ld/testsuite/ld-i386/tlsnopic1.s	2004-05-06 14:08:34.090892400 +0200
@@ -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
--- ld/testsuite/ld-i386/tlsnopic.sd.jj	2004-05-05 14:55:02.389197947 +0200
+++ ld/testsuite/ld-i386/tlsnopic.sd	2004-05-06 14:08:34.091892220 +0200
@@ -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  +.*
--- ld/testsuite/ld-i386/tlsbin.sd.jj	2004-05-05 14:55:02.372200993 +0200
+++ ld/testsuite/ld-i386/tlsbin.sd	2004-05-06 14:08:34.089892579 +0200
@@ -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  +.*
--- ld/testsuite/ld-i386/tlspic.sd.jj	2004-05-05 14:55:02.410194184 +0200
+++ ld/testsuite/ld-i386/tlspic.sd	2004-05-06 14:08:34.095891504 +0200
@@ -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  .*
--- ld/testsuite/ld-i386/tlsbin.rd.jj	2004-05-05 14:55:02.393197230 +0200
+++ ld/testsuite/ld-i386/tlsbin.rd	2004-05-06 14:08:34.092892041 +0200
@@ -5,7 +5,7 @@
 #readelf: -Ssrl
 #target: i?86-*-*
 
-There are 18 section headers, starting at offset 0x[0-9a-f]+:
+There are 19 section headers, starting at offset 0x[0-9a-f]+:
 
 Section Headers:
   \[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
@@ -18,15 +18,16 @@ Section Headers:
   \[ 6\] \.rel.plt +.*
   \[ 7\] \.plt +.*
   \[ 8\] \.text +PROGBITS +0+8049000 .*
-  \[ 9\] \.data +.*
-  \[10\] .tdata +PROGBITS +0+804a000 [0-9a-f]+ 000060 00 WAT  0   0  1
-  \[11\] .tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000040 00 WAT  0   0  1
-  \[12\] \.dynamic +DYNAMIC +0+804a060 .*
-  \[13\] \.got +PROGBITS +0+804a100 .*
-  \[14\] \.bss +.*
-  \[15\] \.shstrtab +.*
-  \[16\] \.symtab +.*
-  \[17\] \.strtab +.*
+  \[ 9\] \.tdata +PROGBITS +0+804a000 [0-9a-f]+ 000060 00 WAT  0   0 4096
+  \[10\] \.tbss +NOBITS +[0-9a-f]+ [0-9a-f]+ 000040 00 WAT  0   0  1
+  \[11\] \.dynamic +DYNAMIC +0+804a060 .*
+  \[12\] \.got +PROGBITS +0+804a100 .*
+  \[13\] \.got\.plt +PROGBITS +0+804a124 .*
+  \[14\] \.data +.*
+  \[15\] \.bss +.*
+  \[16\] \.shstrtab +.*
+  \[17\] \.symtab +.*
+  \[18\] \.strtab +.*
 Key to Flags:
 .*
 .*
@@ -44,124 +45,125 @@ Program Headers:
   LOAD.*
   LOAD.*
   DYNAMIC.*
-  TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1
+  TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000
 
  Section to Segment mapping:
   Segment Sections...
    00 +
    01 +.interp *
    02 +.interp .hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text *
-   03 +.tdata .tbss .dynamic .got *
+   03 +.tdata .tbss .dynamic .got .got.plt *
    04 +.tbss .dynamic *
    05 +.tdata .tbss *
 
 Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries:
  Offset +Info +Type +Sym.Value +Sym. Name
-0+804a110  0000010e R_386_TLS_TPOFF +0+ +sG3
-0+804a114  0000020e R_386_TLS_TPOFF +0+ +sG5
-0+804a118  0000040e R_386_TLS_TPOFF +0+ +sG7
-0+804a11c  00000525 R_386_TLS_TPOFF32 0+ +sG2
-0+804a120  00000625 R_386_TLS_TPOFF32 0+ +sG4
-0+804a124  0000060e R_386_TLS_TPOFF +0+ +sG4
-0+804a128  00000825 R_386_TLS_TPOFF32 0+ +sG6
-0+804a12c  00000925 R_386_TLS_TPOFF32 0+ +sG1
-0+804a130  00000d0e R_386_TLS_TPOFF +0+ +sG8
+0+804a100  0000010e R_386_TLS_TPOFF +0+ +sG3
+0+804a104  0000020e R_386_TLS_TPOFF +0+ +sG5
+0+804a108  0000040e R_386_TLS_TPOFF +0+ +sG7
+0+804a10c  00000525 R_386_TLS_TPOFF32 0+ +sG2
+0+804a110  00000625 R_386_TLS_TPOFF32 0+ +sG4
+0+804a114  0000060e R_386_TLS_TPOFF +0+ +sG4
+0+804a118  00000825 R_386_TLS_TPOFF32 0+ +sG6
+0+804a11c  00000925 R_386_TLS_TPOFF32 0+ +sG1
+0+804a120  00000d0e R_386_TLS_TPOFF +0+ +sG8
 
 Relocation section '.rel.plt' at offset 0x30c contains 1 entries:
  Offset +Info +Type +Sym.Value  Sym. Name
-0+804a10c  00000e07 R_386_JUMP_SLOT +[0-9a-f]+ +___tls_get_addr
+0+804a130  00000e07 R_386_JUMP_SLOT +[0-9a-f]+ +___tls_get_addr
 
 Symbol table '.dynsym' contains 15 entries:
  +Num: +Value  Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE  LOCAL  DEFAULT  UND *
- +1: 0+ +0 TLS +GLOBAL DEFAULT  UND sG3
- +2: 0+ +0 TLS +GLOBAL DEFAULT  UND sG5
- +3: 0+804a060 +0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
- +4: 0+ +0 TLS +GLOBAL DEFAULT  UND sG7
- +5: 0+ +0 TLS +GLOBAL DEFAULT  UND sG2
- +6: 0+ +0 TLS +GLOBAL DEFAULT  UND sG4
- +7: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
- +8: 0+ +0 TLS +GLOBAL DEFAULT  UND sG6
- +9: 0+ +0 TLS +GLOBAL DEFAULT  UND sG1
- +10: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _edata
- +11: 0+804a100 +0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
- +12: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _end
- +13: 0+ +0 TLS +GLOBAL DEFAULT  UND sG8
- +14: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT  UND ___tls_get_addr
+ +[0-9]+: 0+ +0 NOTYPE  LOCAL  DEFAULT  UND *
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG5
+ +[0-9]+: 0+804a060 +0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG7
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG4
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _end
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG8
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT  UND ___tls_get_addr
 
-Symbol table '.symtab' contains 74 entries:
+Symbol table '.symtab' contains 75 entries:
  +Num: +Value  Size Type +Bind +Vis +Ndx Name
- +0: 0+ +0 NOTYPE  LOCAL  DEFAULT  UND *
- +1: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +1 *
- +2: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +2 *
- +3: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +3 *
- +4: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +4 *
- +5: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +5 *
- +6: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +6 *
- +7: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +7 *
- +8: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +8 *
- +9: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +9 *
- +10: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +10 *
- +11: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +11 *
- +12: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +12 *
- +13: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +13 *
- +14: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +14 *
- +15: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +15 *
- +16: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +16 *
- +17: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +17 *
- +18: 00000020 +0 TLS +LOCAL  DEFAULT +10 sl1
- +19: 00000024 +0 TLS +LOCAL  DEFAULT +10 sl2
- +20: 00000028 +0 TLS +LOCAL  DEFAULT +10 sl3
- +21: 0000002c +0 TLS +LOCAL  DEFAULT +10 sl4
- +22: 00000030 +0 TLS +LOCAL  DEFAULT +10 sl5
- +23: 00000034 +0 TLS +LOCAL  DEFAULT +10 sl6
- +24: 00000038 +0 TLS +LOCAL  DEFAULT +10 sl7
- +25: 0000003c +0 TLS +LOCAL  DEFAULT +10 sl8
- +26: 00000080 +0 TLS +LOCAL  DEFAULT +11 bl1
- +27: 00000084 +0 TLS +LOCAL  DEFAULT +11 bl2
- +28: 00000088 +0 TLS +LOCAL  DEFAULT +11 bl3
- +29: 0000008c +0 TLS +LOCAL  DEFAULT +11 bl4
- +30: 00000090 +0 TLS +LOCAL  DEFAULT +11 bl5
- +31: 00000094 +0 TLS +LOCAL  DEFAULT +11 bl6
- +32: 00000098 +0 TLS +LOCAL  DEFAULT +11 bl7
- +33: 0000009c +0 TLS +LOCAL  DEFAULT +11 bl8
- +34: 0+ +0 TLS +GLOBAL DEFAULT  UND sG3
- +35: 0000001c +0 TLS +GLOBAL DEFAULT +10 sg8
- +36: 0000007c +0 TLS +GLOBAL DEFAULT +11 bg8
- +37: 00000074 +0 TLS +GLOBAL DEFAULT +11 bg6
- +38: 0+ +0 TLS +GLOBAL DEFAULT  UND sG5
- +39: 00000068 +0 TLS +GLOBAL DEFAULT +11 bg3
- +40: 0+804a060 +0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
- +41: 00000008 +0 TLS +GLOBAL DEFAULT +10 sg3
- +42: 0+ +0 TLS +GLOBAL DEFAULT  UND sG7
- +43: 00000048 +0 TLS +GLOBAL HIDDEN +10 sh3
- +44: 0+ +0 TLS +GLOBAL DEFAULT  UND sG2
- +45: 0000000c +0 TLS +GLOBAL DEFAULT +10 sg4
- +46: 0+ +0 TLS +GLOBAL DEFAULT  UND sG4
- +47: 00000010 +0 TLS +GLOBAL DEFAULT +10 sg5
- +48: 00000070 +0 TLS +GLOBAL DEFAULT +11 bg5
- +49: 00000058 +0 TLS +GLOBAL HIDDEN +10 sh7
- +50: 0000005c +0 TLS +GLOBAL HIDDEN +10 sh8
- +51: 0+ +0 TLS +GLOBAL DEFAULT +10 sg1
- +52: 0+8049178 +0 FUNC +GLOBAL DEFAULT +8 _start
- +53: 0000004c +0 TLS +GLOBAL HIDDEN +10 sh4
- +54: 00000078 +0 TLS +GLOBAL DEFAULT +11 bg7
- +55: 00000050 +0 TLS +GLOBAL HIDDEN +10 sh5
- +56: 0+804a134 +0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
- +57: 0+ +0 TLS +GLOBAL DEFAULT  UND sG6
- +58: 0+8049000 +0 FUNC +GLOBAL DEFAULT +8 fn2
- +59: 00000004 +0 TLS +GLOBAL DEFAULT +10 sg2
- +60: 0+ +0 TLS +GLOBAL DEFAULT  UND sG1
- +61: 00000040 +0 TLS +GLOBAL HIDDEN +10 sh1
- +62: 00000014 +0 TLS +GLOBAL DEFAULT +10 sg6
- +63: 00000018 +0 TLS +GLOBAL DEFAULT +10 sg7
- +64: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _edata
- +65: 0+804a100 +0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
- +66: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _end
- +67: 00000044 +0 TLS +GLOBAL HIDDEN +10 sh2
- +68: 00000054 +0 TLS +GLOBAL HIDDEN +10 sh6
- +69: 0+ +0 TLS +GLOBAL DEFAULT  UND sG8
- +70: 00000064 +0 TLS +GLOBAL DEFAULT +11 bg2
- +71: 00000060 +0 TLS +GLOBAL DEFAULT +11 bg1
- +72: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT  UND ___tls_get_addr
- +73: 0000006c +0 TLS +GLOBAL DEFAULT +11 bg4
+ +[0-9]+: 0+ +0 NOTYPE  LOCAL  DEFAULT  UND *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +1 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +2 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +3 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +4 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +5 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +6 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +7 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +8 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +9 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +10 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +11 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +12 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +13 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +14 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +15 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +16 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +17 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL  DEFAULT +18 *
+ +[0-9]+: 00000020 +0 TLS +LOCAL  DEFAULT +9 sl1
+ +[0-9]+: 00000024 +0 TLS +LOCAL  DEFAULT +9 sl2
+ +[0-9]+: 00000028 +0 TLS +LOCAL  DEFAULT +9 sl3
+ +[0-9]+: 0000002c +0 TLS +LOCAL  DEFAULT +9 sl4
+ +[0-9]+: 00000030 +0 TLS +LOCAL  DEFAULT +9 sl5
+ +[0-9]+: 00000034 +0 TLS +LOCAL  DEFAULT +9 sl6
+ +[0-9]+: 00000038 +0 TLS +LOCAL  DEFAULT +9 sl7
+ +[0-9]+: 0000003c +0 TLS +LOCAL  DEFAULT +9 sl8
+ +[0-9]+: 00000080 +0 TLS +LOCAL  DEFAULT +10 bl1
+ +[0-9]+: 00000084 +0 TLS +LOCAL  DEFAULT +10 bl2
+ +[0-9]+: 00000088 +0 TLS +LOCAL  DEFAULT +10 bl3
+ +[0-9]+: 0000008c +0 TLS +LOCAL  DEFAULT +10 bl4
+ +[0-9]+: 00000090 +0 TLS +LOCAL  DEFAULT +10 bl5
+ +[0-9]+: 00000094 +0 TLS +LOCAL  DEFAULT +10 bl6
+ +[0-9]+: 00000098 +0 TLS +LOCAL  DEFAULT +10 bl7
+ +[0-9]+: 0000009c +0 TLS +LOCAL  DEFAULT +10 bl8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG3
+ +[0-9]+: 0000001c +0 TLS +GLOBAL DEFAULT +9 sg8
+ +[0-9]+: 0000007c +0 TLS +GLOBAL DEFAULT +10 bg8
+ +[0-9]+: 00000074 +0 TLS +GLOBAL DEFAULT +10 bg6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG5
+ +[0-9]+: 00000068 +0 TLS +GLOBAL DEFAULT +10 bg3
+ +[0-9]+: 0+804a060 +0 OBJECT  GLOBAL DEFAULT  ABS _DYNAMIC
+ +[0-9]+: 00000008 +0 TLS +GLOBAL DEFAULT +9 sg3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG7
+ +[0-9]+: 00000048 +0 TLS +GLOBAL HIDDEN +9 sh3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG2
+ +[0-9]+: 0000000c +0 TLS +GLOBAL DEFAULT +9 sg4
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG4
+ +[0-9]+: 00000010 +0 TLS +GLOBAL DEFAULT +9 sg5
+ +[0-9]+: 00000070 +0 TLS +GLOBAL DEFAULT +10 bg5
+ +[0-9]+: 00000058 +0 TLS +GLOBAL HIDDEN +9 sh7
+ +[0-9]+: 0000005c +0 TLS +GLOBAL HIDDEN +9 sh8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +9 sg1
+ +[0-9]+: 0+8049178 +0 FUNC +GLOBAL DEFAULT +8 _start
+ +[0-9]+: 0000004c +0 TLS +GLOBAL HIDDEN +9 sh4
+ +[0-9]+: 00000078 +0 TLS +GLOBAL DEFAULT +10 bg7
+ +[0-9]+: 00000050 +0 TLS +GLOBAL HIDDEN +9 sh5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG6
+ +[0-9]+: 0+8049000 +0 FUNC +GLOBAL DEFAULT +8 fn2
+ +[0-9]+: 00000004 +0 TLS +GLOBAL DEFAULT +9 sg2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG1
+ +[0-9]+: 00000040 +0 TLS +GLOBAL HIDDEN +9 sh1
+ +[0-9]+: 00000014 +0 TLS +GLOBAL DEFAULT +9 sg6
+ +[0-9]+: 00000018 +0 TLS +GLOBAL DEFAULT +9 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 OBJECT  GLOBAL DEFAULT  ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE  GLOBAL DEFAULT  ABS _end
+ +[0-9]+: 00000044 +0 TLS +GLOBAL HIDDEN +9 sh2
+ +[0-9]+: 00000054 +0 TLS +GLOBAL HIDDEN +9 sh6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT  UND sG8
+ +[0-9]+: 00000064 +0 TLS +GLOBAL DEFAULT +10 bg2
+ +[0-9]+: 00000060 +0 TLS +GLOBAL DEFAULT +10 bg1
+ +[0-9]+: [0-9a-f]+ +0 FUNC +GLOBAL DEFAULT  UND ___tls_get_addr
+ +[0-9]+: 0000006c +0 TLS +GLOBAL DEFAULT +10 bg4
--- ld/testsuite/ld-i386/tlsnopic.dd.jj	2004-05-05 14:55:02.396196693 +0200
+++ ld/testsuite/ld-i386/tlsnopic.dd	2004-05-06 14:08:34.093891862 +0200
@@ -16,14 +16,14 @@ Disassembly of section .text:
     1003:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
     1009:	90[ 	]+nop *
     100a:	90[ 	]+nop *
-    100b:	03 05 94 20 00 00[ 	]+add    0x2094,%eax
+    100b:	03 05 88 20 00 00[ 	]+add    0x2088,%eax
 #				->R_386_TLS_TPOFF	sg1
     1011:	90[ 	]+nop *
     1012:	90[ 	]+nop *
     1013:	90[ 	]+nop *
     1014:	90[ 	]+nop *
 #  @indntpoff direct %gs access IE against global var
-    1015:	8b 15 98 20 00 00[ 	]+mov    0x2098,%edx
+    1015:	8b 15 8c 20 00 00[ 	]+mov    0x208c,%edx
 #				->R_386_TLS_TPOFF	sg2
     101b:	90[ 	]+nop *
     101c:	90[ 	]+nop *
@@ -36,14 +36,14 @@ Disassembly of section .text:
     1024:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
     102a:	90[ 	]+nop *
     102b:	90[ 	]+nop *
-    102c:	03 05 9c 20 00 00[ 	]+add    0x209c,%eax
+    102c:	03 05 90 20 00 00[ 	]+add    0x2090,%eax
 #				->R_386_TLS_TPOFF	[0x14000000]
     1032:	90[ 	]+nop *
     1033:	90[ 	]+nop *
     1034:	90[ 	]+nop *
     1035:	90[ 	]+nop *
 #  @indntpoff direct %gs access IE against hidden var
-    1036:	8b 15 a0 20 00 00[ 	]+mov    0x20a0,%edx
+    1036:	8b 15 94 20 00 00[ 	]+mov    0x2094,%edx
 #				->R_386_TLS_TPOFF	[0x18000000]
     103c:	90[ 	]+nop *
     103d:	90[ 	]+nop *
@@ -56,14 +56,14 @@ Disassembly of section .text:
     1045:	65 a1 00 00 00 00[ 	]+mov    %gs:0x0,%eax
     104b:	90[ 	]+nop *
     104c:	90[ 	]+nop *
-    104d:	03 05 8c 20 00 00[ 	]+add    0x208c,%eax
+    104d:	03 05 80 20 00 00[ 	]+add    0x2080,%eax
 #				->R_386_TLS_TPOFF	[0x00000000]
     1053:	90[ 	]+nop *
     1054:	90[ 	]+nop *
     1055:	90[ 	]+nop *
     1056:	90[ 	]+nop *
 #  @indntpoff direct %gs access IE against local var
-    1057:	8b 15 90 20 00 00[ 	]+mov    0x2090,%edx
+    1057:	8b 15 84 20 00 00[ 	]+mov    0x2084,%edx
 #				->R_386_TLS_TPOFF	[0x04000000]
     105d:	90[ 	]+nop *
     105e:	90[ 	]+nop *
--- ld/testsuite/ld-i386/combreloc.d.jj	2004-05-05 14:55:02.375200456 +0200
+++ ld/testsuite/ld-i386/combreloc.d	2004-05-06 14:08:34.089892579 +0200
@@ -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
--- ld/testsuite/ld-elfvsb/elfvsb.exp.jj	2004-05-05 14:55:02.414193468 +0200
+++ ld/testsuite/ld-elfvsb/elfvsb.exp	2004-05-06 14:08:34.096891325 +0200
@@ -292,6 +292,7 @@ proc visibility_run {visibility} {
 		 || [ string match $visibility "protected_weak" ]
 		 || [ string match $visibility "normal" ] } {
 		setup_xfail "powerpc-*-linux*"
+		setup_xfail "s390x-*-linux*"
 		if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainnp.o] } {
 		    setup_xfail "sparc*-*-linux*"
 		}
--- bfd/elf-bfd.h.jj	2004-05-05 14:55:02.000000000 +0200
+++ bfd/elf-bfd.h	2004-05-06 14:08:34.111888637 +0200
@@ -1211,6 +1211,9 @@ struct elf_obj_tdata
   /* Segment flags for the PT_GNU_STACK segment.  */
   unsigned int stack_flags;  
 
+  /* Should the PT_GNU_RELRO segment be emitted?  */
+  bfd_boolean relro;
+
   /* Symbol version definitions in external objects.  */
   Elf_Internal_Verdef *verdef;
 
--- bfd/elf64-x86-64.c.jj	2004-05-05 14:55:02.424191676 +0200
+++ bfd/elf64-x86-64.c	2004-05-06 14:08:34.107889354 +0200
@@ -1911,9 +1911,11 @@ elf64_x86_64_relocate_section (bfd *outp
 	  if (off >= (bfd_vma) -2)
 	    abort ();
 
-	  relocation = htab->sgot->output_offset + off;
-	  if (r_type == R_X86_64_GOTPCREL)
-	    relocation += htab->sgot->output_section->vma;
+	  relocation = htab->sgot->output_section->vma
+		       + htab->sgot->output_offset + off;
+	  if (r_type != R_X86_64_GOTPCREL)
+	    relocation -= htab->sgotplt->output_section->vma
+			  - htab->sgotplt->output_offset;
 
 	  break;
 
@@ -2664,7 +2666,8 @@ elf64_x86_64_finish_dynamic_sections (bf
 	      continue;
 
 	    case DT_PLTGOT:
-	      dyn.d_un.d_ptr = htab->sgot->output_section->vma;
+	      s = htab->sgotplt;
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
 	      break;
 
 	    case DT_JMPREL:
@@ -2755,6 +2758,10 @@ elf64_x86_64_finish_dynamic_sections (bf
 	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;
 }
 
--- bfd/elf.c.jj	2004-05-05 14:55:02.417192930 +0200
+++ bfd/elf.c	2004-05-06 14:08:34.100890608 +0200
@@ -974,6 +974,7 @@ _bfd_elf_print_private_bfd_data (bfd *ab
 	    case PT_TLS: pt = "TLS"; break;
 	    case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break;
 	    case PT_GNU_STACK: pt = "STACK"; break;
+	    case PT_GNU_RELRO: pt = "RELRO"; break;
 	    default: sprintf (buf, "0x%lx", p->p_type); pt = buf; break;
 	    }
 	  fprintf (f, "%8s off    0x", pt);
@@ -2300,6 +2301,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_In
     case PT_GNU_STACK:
       return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "stack");
 
+    case PT_GNU_RELRO:
+      return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "relro");
+
     default:
       /* Check for any processor-specific program segment types.
          If no handler for them, default to making "segment" sections.  */
@@ -3547,6 +3551,21 @@ map_sections_to_segments (bfd *abfd)
       pm = &m->next;
     }
 
+  if (elf_tdata (abfd)->relro)
+    {
+      amt = sizeof (struct elf_segment_map);
+      m = bfd_zalloc (abfd, amt);
+      if (m == NULL)
+	goto error_return;
+      m->next = NULL;
+      m->p_type = PT_GNU_RELRO;
+      m->p_flags = PF_R;
+      m->p_flags_valid = 1;
+
+      *pm = m;
+      pm = &m->next;
+    }
+
   free (sections);
   sections = NULL;
 
@@ -4081,6 +4100,37 @@ Error: First section in segment (%s) sta
 	      if (! m->p_paddr_valid)
 		p->p_paddr = phdrs_paddr;
 	    }
+	  else if (p->p_type == PT_GNU_RELRO)
+	    {
+	      Elf_Internal_Phdr *lp;
+
+	      for (lp = phdrs; lp < phdrs + count; ++lp)
+		{
+		  if (lp->p_type == PT_LOAD
+		      && lp->p_vaddr <= link_info->relro_end
+		      && lp->p_vaddr >= link_info->relro_start
+		      && lp->p_vaddr + lp->p_filesz
+			 >= link_info->relro_end)
+		    break;
+		}
+
+	      if (lp < phdrs + count
+		  && link_info->relro_end > lp->p_vaddr)
+		{
+		  p->p_vaddr = lp->p_vaddr;
+		  p->p_paddr = lp->p_paddr;
+		  p->p_offset = lp->p_offset;
+		  p->p_filesz = link_info->relro_end - lp->p_vaddr;
+		  p->p_memsz = p->p_filesz;
+		  p->p_align = 1;
+		  p->p_flags = (lp->p_flags & ~PF_W);
+		}
+	      else
+		{
+		  memset (p, 0, sizeof *p);
+		  p->p_type = PT_NULL;
+		}
+	    }
 	}
     }
 
@@ -4168,6 +4218,12 @@ get_program_header_size (bfd *abfd)
       ++segs;
     }
 
+  if (elf_tdata (abfd)->relro)
+    {
+      /* We need a PT_GNU_RELRO segment.  */
+      ++segs;
+    }
+
   for (s = abfd->sections; s != NULL; s = s->next)
     {
       if ((s->flags & SEC_LOAD) != 0
--- bfd/elf32-i386.c.jj	2004-05-05 14:55:02.428190959 +0200
+++ bfd/elf32-i386.c	2004-05-06 14:08:34.110888816 +0200
@@ -2261,24 +2261,29 @@ elf_i386_relocate_section (bfd *output_b
 	  if (off >= (bfd_vma) -2)
 	    abort ();
 
-	  relocation = htab->sgot->output_offset + off;
+	  relocation = htab->sgot->output_section->vma
+		       + htab->sgot->output_offset + off
+		       - htab->sgotplt->output_section->vma
+		       - htab->sgotplt->output_offset;
 	  break;
 
 	case R_386_GOTOFF:
 	  /* Relocation is relative to the start of the global offset
 	     table.  */
 
-	  /* Note that sgot->output_offset is not involved in this
-	     calculation.  We always want the start of .got.  If we
-	     defined _GLOBAL_OFFSET_TABLE in a different way, as is
+	  /* Note that sgot is not involved in this
+	     calculation.  We always want the start of .got.plt.  If we
+	     defined _GLOBAL_OFFSET_TABLE_ in a different way, as is
 	     permitted by the ABI, we might have to change this
 	     calculation.  */
-	  relocation -= htab->sgot->output_section->vma;
+	  relocation -= htab->sgotplt->output_section->vma
+			+ htab->sgotplt->output_offset;
 	  break;
 
 	case R_386_GOTPC:
 	  /* Use global offset table as symbol value.  */
-	  relocation = htab->sgot->output_section->vma;
+	  relocation = htab->sgotplt->output_section->vma
+		       + htab->sgotplt->output_offset;
 	  unresolved_reloc = FALSE;
 	  break;
 
@@ -2699,12 +2704,15 @@ elf_i386_relocate_section (bfd *output_b
 	    abort ();
 	  if (r_type == ELF32_R_TYPE (rel->r_info))
 	    {
-	      relocation = htab->sgot->output_offset + off;
+	      bfd_vma g_o_t = htab->sgotplt->output_section->vma
+			      + htab->sgotplt->output_offset;
+	      relocation = htab->sgot->output_section->vma
+			   + htab->sgot->output_offset + off - g_o_t;
 	      if ((r_type == R_386_TLS_IE || r_type == R_386_TLS_GOTIE)
 		  && tls_type == GOT_TLS_IE_BOTH)
 		relocation += 4;
 	      if (r_type == R_386_TLS_IE)
-		relocation += htab->sgot->output_section->vma;
+		relocation += g_o_t;
 	      unresolved_reloc = FALSE;
 	    }
 	  else
@@ -2761,7 +2769,11 @@ elf_i386_relocate_section (bfd *output_b
 		  if (tls_type == GOT_TLS_IE_BOTH)
 		    off += 4;
 		}
-	      bfd_put_32 (output_bfd, htab->sgot->output_offset + off,
+	      bfd_put_32 (output_bfd,
+			  htab->sgot->output_section->vma
+			  + htab->sgot->output_offset + off
+			  - htab->sgotplt->output_section->vma
+			  - htab->sgotplt->output_offset,
 			  contents + roff + 8);
 	      /* Skip R_386_PLT32.  */
 	      rel++;
@@ -2823,7 +2835,10 @@ elf_i386_relocate_section (bfd *output_b
 	      bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
 	      htab->tls_ldm_got.offset |= 1;
 	    }
-	  relocation = htab->sgot->output_offset + off;
+	  relocation = htab->sgot->output_section->vma
+		       + htab->sgot->output_offset + off
+		       - htab->sgotplt->output_section->vma
+		       - htab->sgotplt->output_offset;
 	  unresolved_reloc = FALSE;
 	  break;
 
@@ -3159,7 +3174,8 @@ elf_i386_finish_dynamic_sections (bfd *o
 	      continue;
 
 	    case DT_PLTGOT:
-	      dyn.d_un.d_ptr = htab->sgot->output_section->vma;
+	      s = htab->sgotplt;
+	      dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
 	      break;
 
 	    case DT_JMPREL:
@@ -3245,6 +3261,10 @@ elf_i386_finish_dynamic_sections (bfd *o
 
       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;
 }
 
--- bfd/elflink.c.jj	2004-05-05 14:55:02.421192213 +0200
+++ bfd/elflink.c	2004-05-06 14:08:34.105889712 +0200
@@ -622,8 +622,36 @@ _bfd_elf_link_renumber_dynsyms (bfd *out
     {
       asection *p;
       for (p = output_bfd->sections; p ; p = p->next)
-	if ((p->flags & SEC_EXCLUDE) == 0)
-	  elf_section_data (p)->dynindx = ++dynsymcount;
+	if ((p->flags & SEC_EXCLUDE) == 0
+	    && (p->flags & SEC_ALLOC) != 0)
+	  switch (elf_section_data (p)->this_hdr.sh_type)
+	    {
+	    case SHT_PROGBITS:
+	    case SHT_NOBITS:
+	      /* If sh_type is yet undecided, assume it could be
+		 SHT_PROGBITS/SHT_NOBITS.  */
+	    case SHT_NULL:
+	      if (strcmp (p->name, ".got") == 0
+		  || strcmp (p->name, ".got.plt") == 0
+		  || strcmp (p->name, ".plt") == 0)
+		{
+		  asection *ip;
+		  bfd *dynobj = elf_hash_table (info)->dynobj;
+
+		  if (dynobj != NULL
+		      && (ip = bfd_get_section_by_name (dynobj, p->name))
+			 != NULL
+		      && (ip->flags & SEC_LINKER_CREATED)
+		      && ip->output_section == p)
+		    continue;
+		}
+	      elf_section_data (p)->dynindx = ++dynsymcount;
+	      break;
+	      /* There shouldn't be section relative relocations
+		 against any other section.  */
+	    default:
+	      break;
+	    }
     }
 
   if (elf_hash_table (info)->dynlocal)
@@ -4621,6 +4649,7 @@ bfd_elf_size_dynamic_sections (bfd *outp
   if (!is_elf_hash_table (info->hash))
     return TRUE;
 
+  elf_tdata (output_bfd)->relro = info->relro;
   if (info->execstack)
     elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
   else if (info->noexecstack)
@@ -7654,16 +7683,18 @@ bfd_elf_final_link (bfd *abfd, struct bf
 	      bfd_byte *dest;
 	      long dynindx;
 
-	      indx = elf_section_data (s)->this_idx;
 	      dynindx = elf_section_data (s)->dynindx;
+	      if (dynindx <= 0)
+		continue;
+	      indx = elf_section_data (s)->this_idx;
 	      BFD_ASSERT (indx > 0);
 	      sym.st_shndx = indx;
 	      sym.st_value = s->vma;
 	      dest = dynsym + dynindx * bed->s->sizeof_sym;
+	      if (last_local < dynindx)
+		last_local = dynindx;
 	      bed->s->swap_symbol_out (abfd, &sym, dest, 0);
 	    }
-
-	  last_local = bfd_count_sections (abfd);
 	}
 
       /* Write out the local dynsyms.  */
--- include/elf/common.h.jj	2004-05-05 14:55:02.000000000 +0200
+++ include/elf/common.h	2004-05-06 14:08:34.113888278 +0200
@@ -288,8 +288,9 @@
 #define PT_LOPROC	0x70000000	/* Processor-specific */
 #define PT_HIPROC	0x7FFFFFFF	/* Processor-specific */
 
-#define PT_GNU_EH_FRAME	(PT_LOOS + 0x474e550)
-#define PT_GNU_STACK	(PT_LOOS + 0x474e551)
+#define PT_GNU_EH_FRAME	(PT_LOOS + 0x474e550) /* Frame unwind information */
+#define PT_GNU_STACK	(PT_LOOS + 0x474e551) /* Stack flags */
+#define PT_GNU_RELRO	(PT_LOOS + 0x474e552) /* Read-only after relocation */
 
 /* Program segment permissions, in program header p_flags field.  */
 
--- include/bfdlink.h.jj	2004-05-05 14:55:02.000000000 +0200
+++ include/bfdlink.h	2004-05-06 14:08:34.112888458 +0200
@@ -302,6 +302,9 @@ struct bfd_link_info
      flags.  */
   unsigned int noexecstack: 1;
 
+  /* TRUE if PT_GNU_RELRO segment should be created.  */
+  unsigned int relro: 1;
+
   /* What to do with unresolved symbols in an object file.
      When producing executables the default is GENERATE_ERROR.
      When producing shared libraries the default is IGNORE.  The
@@ -391,6 +394,9 @@ struct bfd_link_info
 
   /* May be used to set DT_FLAGS_1 for ELF. */
   bfd_vma flags_1;
+
+  /* Start and end of RELRO region.  */
+  bfd_vma relro_start, relro_end;
 };
 
 /* This structures holds a set of callback functions.  These are
--- binutils/readelf.c.jj	2004-05-05 14:55:02.442188451 +0200
+++ binutils/readelf.c	2004-05-06 14:08:34.117887562 +0200
@@ -2172,6 +2172,7 @@ get_segment_type (unsigned long p_type)
     case PT_GNU_EH_FRAME:
 			return "GNU_EH_FRAME";
     case PT_GNU_STACK:	return "STACK";
+    case PT_GNU_RELRO:  return "GNU_RELRO";
 
     default:
       if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))


	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]