diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 7 | ||||
-rw-r--r-- | linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h | 11 |
2 files changed, 17 insertions, 1 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index a7b22cf22f..557aa1868d 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,10 @@ +2003-07-04 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use + different symbol for the cancellation syscall wrapper and + non-cancellation syscall wrapper. + (PSEUDO_END): Define. + 2003-07-05 Richard Henderson <rth@redhat.com> * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end. diff --git a/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h b/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h index 2545c9fe0a..ec17a37b9c 100644 --- a/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h +++ b/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h @@ -38,6 +38,11 @@ ENTRY (name) \ cmp.eq p6,p0=-1,r10; \ (p6) br.cond.spnt.few __syscall_error; \ ret;; \ + .endp name; \ + .proc __GC_##name; \ + .globl __GC_##name; \ + .hidden __GC_##name; \ +__GC_##name: \ .Lpseudo_cancel: \ .prologue; \ .regstk args, 5, args, 0; \ @@ -62,12 +67,13 @@ ENTRY (name) \ mov ar.pfs = loc0; \ .Lpseudo_end: \ ret; \ - .endp name; \ + .endp __GC_##name; \ .section .gnu.linkonce.t.__syscall_error_##args, "ax"; \ .align 32; \ .proc __syscall_error_##args; \ .global __syscall_error_##args; \ .hidden __syscall_error_##args; \ + .size __syscall_error_##args, 64; \ __syscall_error_##args: \ .prologue; \ .regstk args, 5, args, 0; \ @@ -82,6 +88,9 @@ __syscall_error_##args: \ mov r8 = -1; \ mov ar.pfs = loc0 +#undef PSEUDO_END +#define PSEUDO_END(name) .endp + # ifdef IS_IN_libpthread # define CENABLE br.call.sptk.many b0 = __pthread_enable_asynccancel # define CDISABLE br.call.sptk.many b0 = __pthread_disable_asynccancel |