about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-03-24 08:19:18 +0000
committerJakub Jelinek <jakub@redhat.com>2005-03-24 08:19:18 +0000
commit55a24b753a4f6e03ed23e16b2be847bd5c5642a7 (patch)
treec72d70578f8305f1cfedc9a24507d12c45a5ff1c /sysdeps
parentdfaef65dcfc165ef88957b7b4633499cbf612299 (diff)
downloadglibc-55a24b753a4f6e03ed23e16b2be847bd5c5642a7.tar.gz
glibc-55a24b753a4f6e03ed23e16b2be847bd5c5642a7.tar.xz
glibc-55a24b753a4f6e03ed23e16b2be847bd5c5642a7.zip
Updated to fedora-glibc-20050324T0715 cvs/fedora-glibc-2_3_4-17
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/dl-tls.c38
-rw-r--r--sysdeps/ia64/_mcount.S7
-rw-r--r--sysdeps/ia64/elf/initfini.c4
3 files changed, 25 insertions, 24 deletions
diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c
index fdd569b587..4fed570d5c 100644
--- a/sysdeps/generic/dl-tls.c
+++ b/sysdeps/generic/dl-tls.c
@@ -71,26 +71,24 @@ _dl_next_tls_modid (void)
 	 NB: the offset +1 is due to the fact that DTV[0] is used
 	 for something else.  */
       result = GL(dl_tls_static_nelem) + 1;
-      /* If the following would not be true we mustn't have assumed
-	 there is a gap.  */
-      assert (result <= GL(dl_tls_max_dtv_idx));
-      do
-	{
-	  while (result - disp < runp->len)
-	    {
-	      if (runp->slotinfo[result - disp].map == NULL)
-		break;
-
-	      ++result;
-	      assert (result <= GL(dl_tls_max_dtv_idx) + 1);
-	    }
-
-	  if (result - disp < runp->len)
-	    break;
-
-	  disp += runp->len;
-	}
-      while ((runp = runp->next) != NULL);
+      if (result <= GL(dl_tls_max_dtv_idx))
+	do
+	  {
+	    while (result - disp < runp->len)
+	      {
+		if (runp->slotinfo[result - disp].map == NULL)
+		  break;
+
+		++result;
+		assert (result <= GL(dl_tls_max_dtv_idx) + 1);
+	      }
+
+	    if (result - disp < runp->len)
+	      break;
+
+	    disp += runp->len;
+	  }
+	while ((runp = runp->next) != NULL);
 
       if (result > GL(dl_tls_max_dtv_idx))
 	{
diff --git a/sysdeps/ia64/_mcount.S b/sysdeps/ia64/_mcount.S
index aa91cb5d42..8720a9c104 100644
--- a/sysdeps/ia64/_mcount.S
+++ b/sysdeps/ia64/_mcount.S
@@ -72,6 +72,7 @@ LEAF(_mcount)
 	mov b7 = loc0
 	mov rp = in2
 	;;
+	mov r3 = in0
 	mov r8 = loc2
 	mov r15 = loc3
 	mov b6 = r2
@@ -81,10 +82,10 @@ END(_mcount)
 LOCAL_LEAF(_mcount_ret_helper)
 	.prologue
 	.altrp b7
-	.save ar.pfs, r40
+	.save ar.pfs, r3
 	.body
-	alloc r2 = ar.pfs, 0, 0, 9, 0
-	mov ar.pfs = r40
+	alloc r2 = ar.pfs, 0, 0, 8, 0
+	mov ar.pfs = r3
 	br b7
 END(_mcount_ret_helper)
 
diff --git a/sysdeps/ia64/elf/initfini.c b/sysdeps/ia64/elf/initfini.c
index 59674fe6f2..3aa44de8f1 100644
--- a/sysdeps/ia64/elf/initfini.c
+++ b/sysdeps/ia64/elf/initfini.c
@@ -116,13 +116,14 @@ __asm__ (".section .init\n"
 "/*@_init_PROLOG_ENDS*/\n"
 "\n"
 "/*@_init_EPILOG_BEGINS*/\n"
+"	.section .init\n"
 "	.proc _init#\n"
+"_init:\n"
 "	.prologue\n"
 "	.save ar.pfs, r34\n"
 "	.vframe r32\n"
 "	.save rp, r33\n"
 "	.body\n"
-"	.section .init\n"
 "	.regstk 0,2,0,0\n"
 "	mov r12 = r32\n"
 "	mov ar.pfs = r34\n"
@@ -155,6 +156,7 @@ __asm__ (".section .init\n"
 "/*@_fini_EPILOG_BEGINS*/\n"
 "	.section .fini\n"
 "	.proc _fini#\n"
+"_fini:\n"
 "	.prologue\n"
 "	.save ar.pfs, r34\n"
 "	.vframe r32\n"