summaryrefslogtreecommitdiff
path: root/patches/glibc/2.5.1/280-glibc-alpha-sigsuspend.patch
blob: daf1a5d0f48781556b76d0ebf5b6e9563052e151 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
--- glibc-2.5/sysdeps/unix/sysv/linux/alpha/sigsuspend.S.orig	2006-10-22 22:17:01.000000000 +0200
+++ glibc-2.5/sysdeps/unix/sysv/linux/alpha/sigsuspend.S	2006-10-22 22:18:05.000000000 +0200
@@ -31,3 +31,21 @@
 libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
 strong_alias (__sigsuspend, __libc_sigsuspend)
+
+#ifndef NO_CANCELLATION
+	.globl __sigsuspend_nocancel;
+	.align 4;
+	.type __sigsuspend_nocancel, @function;
+	.usepv __sigsuspend_nocancel, std;
+	cfi_startproc;
+__LABEL(__sigsuspend_nocancel)
+	ldgp    gp, 0(pv);
+	PSEUDO_PROF;
+	PSEUDO_PREPARE_ARGS
+	lda     v0, SYS_ify(sigsuspend);
+	call_pal PAL_callsys;
+	bne     a3, SYSCALL_ERROR_LABEL;
+	ret;
+	cfi_endproc;
+	.size __sigsuspend_nocancel, .-__sigsuspend_nocancel
+#endif