about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--nptl/ChangeLog11
-rw-r--r--nptl/Makefile1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h7
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h6
-rw-r--r--sysdeps/unix/sysv/linux/sigtimedwait.c1
-rw-r--r--sysdeps/unix/sysv/linux/sigwait.c1
-rw-r--r--sysdeps/unix/sysv/linux/sigwaitinfo.c1
-rw-r--r--sysdeps/unix/sysv/linux/sleep.c3
10 files changed, 43 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d979bd6a81..a11bb66bcd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2003-07-11  Jakub Jelinek  <jakub@redhat.com>
 
+	* sysdeps/unix/sysv/linux/sigwait.c: Include string.h.
+	* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
+	* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
+	* sysdeps/unix/sysv/linux/sleep.c (__sleep): Cast value to unsigned
+	int before assigning to max to avoid warnings.
+
+2003-07-11  Jakub Jelinek  <jakub@redhat.com>
+
 	* sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S (__socket): Add
 	cfi directives.
 	* sysdeps/unix/sysv/linux/s390/s390-32/socket.S (__socket): Likewise.
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 93540dfa66..f00ba09057 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,14 @@
+2003-07-11  Jakub Jelinek  <jakub@redhat.com>
+
+	* Makefile (CFLAGS-pthread_once.c): Add -fexceptions
+	-fasynchronous-unwind-tables.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
+	(PSEUDO): Add cfi directives.
+	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
+	Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
+	Likewise.
+
 2003-07-08  Jakub Jelinek  <jakub@redhat.com>
 
 	* pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
diff --git a/nptl/Makefile b/nptl/Makefile
index a261efbb6d..b562e6618c 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -160,6 +160,7 @@ CFLAGS-forward.c = -fexceptions
 CFLAGS-pthread_testcancel.c = -fexceptions
 CFLAGS-pthread_join.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-pthread_timedjoin.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-pthread_once.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-pthread_cond_wait.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-pthread_cond_timedwait.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-sem_wait.c = -fexceptions -fasynchronous-unwind-tables
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
index 7c669bfb3e..d39425e0f4 100644
--- a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
@@ -30,14 +30,17 @@
 # define PSEUDO(name, syscall_name, args)				\
   .section ".text";							\
   ENTRY (name)								\
+    cfi_startproc;							\
     SINGLE_THREAD_P;							\
     bne- .Lpseudo_cancel;						\
     DO_CALL (SYS_ify (syscall_name));					\
     PSEUDO_RET;								\
   .Lpseudo_cancel:							\
     stwu 1,-48(1);							\
+    cfi_adjust_cfa_offset (48);						\
     mflr 9;								\
     stw 9,52(1);							\
+    cfi_offset (lr, 4);							\
     DOCARGS_##args;	/* save syscall args around CENABLE.  */	\
     CENABLE;								\
     stw 3,16(1);	/* store CENABLE return value (MASK).  */	\
@@ -53,7 +56,8 @@
     lwz 3,8(1);								\
     mtlr 4;								\
     mtcr 0;								\
-    addi 1,1,48;
+    addi 1,1,48;							\
+    cfi_endproc;
 
 # define DOCARGS_0
 # define UNDOCARGS_0
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
index 80671df08a..1f7cff8c41 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
@@ -29,10 +29,16 @@
 # define PSEUDO(name, syscall_name, args)				      \
 	.text;								      \
 L(pseudo_cancel):							      \
+	cfi_startproc;							      \
 	STM_##args							      \
 	stm	%r12,%r15,48(%r15);					      \
+	cfi_offset (%r15, -36);						      \
+	cfi_offset (%r14, -40);						      \
+	cfi_offset (%r13, -44);						      \
+	cfi_offset (%r12, -48);						      \
 	lr	%r14,%r15;						      \
 	ahi	%r15,-96;						      \
+	cfi_adjust_cfa_offset (96);					      \
 	st	%r14,0(%r15);						      \
 	basr    %r13,0;							      \
 0:	l	%r1,1f-0b(%r13);					      \
@@ -46,6 +52,7 @@ L(pseudo_cancel):							      \
 	bas	%r14,0(%r1,%r13);					      \
 	lr	%r2,%r12;						      \
 	lm	%r12,%r15,48+96(%r15);					      \
+	cfi_endproc;							      \
 	j	L(pseudo_check);					      \
 1:	.long	CENABLE-0b;						      \
 2:	.long	CDISABLE-0b;						      \
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
index f3722a0d8f..4d53311f9d 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
@@ -29,10 +29,15 @@
 # define PSEUDO(name, syscall_name, args)				      \
 	.text;								      \
 L(pseudo_cancel):							      \
+	cfi_startproc;							      \
 	STM_##args							      \
 	stmg	%r13,%r15,104(%r15);					      \
+	cfi_offset (%r15,-40);						      \
+	cfi_offset (%r14,-48);						      \
+	cfi_offset (%r13,-56);						      \
 	lgr	%r14,%r15;						      \
 	aghi	%r15,-160;						      \
+	cfi_adjust_cfa_offset (160);					      \
 	stg	%r14,0(%r15);						      \
 	brasl	%r14,CENABLE;						      \
 	lgr	%r0,%r2;						      \
@@ -43,6 +48,7 @@ L(pseudo_cancel):							      \
 	brasl	%r14,CDISABLE;						      \
 	lgr	%r2,%r13;						      \
 	lmg	%r13,%r15,104+160(%r15);				      \
+	cfi_endproc;							      \
 	j	L(pseudo_check);					      \
 ENTRY(name)								      \
 	SINGLE_THREAD_P							      \
diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c
index a016b71ec7..34e986a6af 100644
--- a/sysdeps/unix/sysv/linux/sigtimedwait.c
+++ b/sysdeps/unix/sysv/linux/sigtimedwait.c
@@ -18,6 +18,7 @@
 
 #include <errno.h>
 #include <signal.h>
+#include <string.h>
 
 #include <sysdep-cancel.h>
 #include <sys/syscall.h>
diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c
index 49371cfdfd..e92061d215 100644
--- a/sysdeps/unix/sysv/linux/sigwait.c
+++ b/sysdeps/unix/sysv/linux/sigwait.c
@@ -20,6 +20,7 @@
 #include <signal.h>
 #define __need_NULL
 #include <stddef.h>
+#include <string.h>
 
 #include <sysdep-cancel.h>
 #include <sys/syscall.h>
diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c
index 56cf0c96bb..73c20d1115 100644
--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c
+++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c
@@ -20,6 +20,7 @@
 #include <signal.h>
 #define __need_NULL
 #include <stddef.h>
+#include <string.h>
 
 #include <sysdep-cancel.h>
 #include <sys/syscall.h>
diff --git a/sysdeps/unix/sysv/linux/sleep.c b/sysdeps/unix/sysv/linux/sleep.c
index ade9ff4116..d94e4f62fd 100644
--- a/sysdeps/unix/sysv/linux/sleep.c
+++ b/sysdeps/unix/sysv/linux/sleep.c
@@ -40,7 +40,8 @@ cl (void *arg)
 unsigned int
 __sleep (unsigned int seconds)
 {
-  const unsigned int max = ((unsigned long int) (~((time_t) 0))) >> 1;
+  const unsigned int max
+    = (unsigned int) (((unsigned long int) (~((time_t) 0))) >> 1);
   struct timespec ts;
   sigset_t set, oset;
   unsigned int result;