diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-05-08 01:01:08 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-05-08 01:01:08 +0000 |
commit | 3142b1ac55b1a807b196844f8f4ec6a9c1f5a0a5 (patch) | |
tree | a72183ab81a50751e110eea3dbcc510d328b689a /nptl/sysdeps/unix | |
parent | 4461cf48cf0f58d4ea402b69cea9965be56a61df (diff) | |
download | glibc-3142b1ac55b1a807b196844f8f4ec6a9c1f5a0a5.tar glibc-3142b1ac55b1a807b196844f8f4ec6a9c1f5a0a5.tar.gz glibc-3142b1ac55b1a807b196844f8f4ec6a9c1f5a0a5.tar.bz2 glibc-3142b1ac55b1a807b196844f8f4ec6a9c1f5a0a5.zip |
[BZ #2644]
2006-05-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure
functions pointer is reloaded after pthread_cancel_init calls.
[BZ #2644]
* sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
pointers are reloaded after pthread_cancel_init calls.
Diffstat (limited to 'nptl/sysdeps/unix')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c b/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c index fb44b426bc..a788fa31f9 100644 --- a/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c +++ b/nptl/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. +/* Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. @@ -33,6 +33,10 @@ _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *context) { if (__builtin_expect (libgcc_s_getbsp == NULL, 0)) - pthread_cancel_init (); + { + pthread_cancel_init (); + /* The function pointer has changed, ensure we reload it. */ + asm volatile ("" : "+m" (libgcc_s_getbsp)); + } return libgcc_s_getbsp (context); } |