diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | nptl/ChangeLog | 11 | ||||
-rw-r--r-- | nptl/sysdeps/s390/tls.h | 8 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/jmp-unwind.c | 2 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c | 1 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/sem_post.c | 9 | ||||
-rw-r--r-- | sysdeps/alpha/dl-machine.h | 4 |
7 files changed, 32 insertions, 8 deletions
@@ -1,3 +1,8 @@ +2003-02-13 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/alpha/dl-machine.h (elf_machine_rela): Add instead of + subtracting map->l_tls_offset. + 2003-02-12 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/bits/confname.h: Define _CS_GNU_LIBC_VERSION and diff --git a/nptl/ChangeLog b/nptl/ChangeLog index c7d442148c..35c5552172 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,14 @@ +2003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, + THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF. + * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid + warning. + * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h> + to avoid warning. + * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return + error if lll_futex_wake failed. + 2003-02-13 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix diff --git a/nptl/sysdeps/s390/tls.h b/nptl/sysdeps/s390/tls.h index fd43564762..9b186f657f 100644 --- a/nptl/sysdeps/s390/tls.h +++ b/nptl/sysdeps/s390/tls.h @@ -136,13 +136,13 @@ typedef struct /* Access to data in the thread descriptor is easy. */ #define THREAD_GETMEM(descr, member) \ - THREAD_SELF->member + descr->member #define THREAD_GETMEM_NC(descr, member, idx) \ - THREAD_SELF->member[idx] + descr->member[idx] #define THREAD_SETMEM(descr, member, value) \ - THREAD_SELF->member = (value) + descr->member = (value) #define THREAD_SETMEM_NC(descr, member, idx, value) \ - THREAD_SELF->member[idx] = (value) + descr->member[idx] = (value) #endif /* __ASSEMBLER__ */ diff --git a/nptl/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/nptl/sysdeps/unix/sysv/linux/s390/jmp-unwind.c index e41c12f8d2..3e81475888 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/jmp-unwind.c +++ b/nptl/sysdeps/unix/sysv/linux/s390/jmp-unwind.c @@ -34,7 +34,7 @@ _longjmp_unwind (jmp_buf env, int val) # define fptr __pthread_cleanup_upto #endif - unsigned int local_var; + unsigned char local_var; if (fptr != NULL) fptr (env, &local_var); diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c index 42ed830786..bc501c7ee4 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c +++ b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c @@ -20,6 +20,7 @@ #include <errno.h> #include <sysdep.h> #include <lowlevellock.h> +#include <sys/time.h> void diff --git a/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c b/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c index 4c26857f50..df64c03ba6 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c +++ b/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c @@ -30,9 +30,16 @@ __new_sem_post (sem_t *sem) { int oldval; int newval; + int err; lll_compare_and_swap ((int *) sem, oldval, newval, "lr %2,%1; ahi %2,1"); - lll_futex_wake ((int *) sem, newval); + err = lll_futex_wake(((int *) sem), newval); + if (err != 0) + { + __set_errno(-err); + return -1; + } + return 0; } versioned_symbol (libpthread, __new_sem_post, sem_post, GLIBC_2_1); #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1) diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index 25359d883e..4704428d93 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -627,12 +627,12 @@ elf_machine_rela (struct link_map *map, else if (r_type == R_ALPHA_TPREL64) { #ifdef RTLD_BOOTSTRAP - *reloc_addr = sym_raw_value - map->l_tls_offset; + *reloc_addr = sym_raw_value + map->l_tls_offset; #else if (sym_map) { CHECK_STATIC_TLS (map, sym_map); - *reloc_addr = sym_raw_value - sym_map->l_tls_offset; + *reloc_addr = sym_raw_value + sym_map->l_tls_offset; } #endif } |