aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--nptl/ChangeLog11
-rw-r--r--nptl/sysdeps/s390/tls.h8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/jmp-unwind.c2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/sem_post.c9
-rw-r--r--sysdeps/alpha/dl-machine.h4
7 files changed, 32 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 14ef6e5017..e2aab89815 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
}