about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-05-09 15:19:13 +0000
committerUlrich Drepper <drepper@redhat.com>2006-05-09 15:19:13 +0000
commitbe434a72b023edab7851c13da8f0639e46ee4fa8 (patch)
tree99f98e631af6a49de5add8870d12413a61e7fc47 /nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
parentbf3635d31d18ed1d6274115ed332db374a3e7bcf (diff)
downloadglibc-be434a72b023edab7851c13da8f0639e46ee4fa8.tar.gz
glibc-be434a72b023edab7851c13da8f0639e46ee4fa8.tar.xz
glibc-be434a72b023edab7851c13da8f0639e46ee4fa8.zip
[BZ #2644]
2006-05-09  Ulrich Drepper  <drepper@redhat.com>
	[BZ #2644]
	* sysdeps/pthread/unwind-forcedunwind.c: Different solution for
	the reload problem.  Change the one path in pthread_cancel_init
	which causes the problem.  Force gcc to reload.  Simplify callers.
	* sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
	(_Unwind_GetBSP): Undo last patch.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c b/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
index a788fa31f9..d0c77a62e6 100644
--- a/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
+++ b/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
@@ -33,10 +33,7 @@ _Unwind_Word
 _Unwind_GetBSP (struct _Unwind_Context *context)
 {
   if (__builtin_expect (libgcc_s_getbsp == NULL, 0))
-    {
-      pthread_cancel_init ();
-      /* The function pointer has changed, ensure we reload it.  */
-      asm volatile ("" : "+m" (libgcc_s_getbsp));
-    }
+    pthread_cancel_init ();
+
   return libgcc_s_getbsp (context);
 }