about summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h11
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