diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | nptl/ChangeLog | 11 | ||||
-rw-r--r-- | nptl/Makefile | 1 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h | 6 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h | 7 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigtimedwait.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigwait.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigwaitinfo.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sleep.c | 3 |
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; |