2003-02-13  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/alpha/dl-machine.h (elf_machine_rela): Add instead of
	subtracting map->l_tls_offset.
This commit is contained in:
Ulrich Drepper 2003-02-14 06:11:21 +00:00
parent a7720b5e18
commit dac0f77234
7 changed files with 32 additions and 8 deletions

View File

@ -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> 2003-02-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/bits/confname.h: Define _CS_GNU_LIBC_VERSION and * sysdeps/generic/bits/confname.h: Define _CS_GNU_LIBC_VERSION and

View File

@ -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> 2003-02-13 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix

View File

@ -136,13 +136,13 @@ typedef struct
/* Access to data in the thread descriptor is easy. */ /* Access to data in the thread descriptor is easy. */
#define THREAD_GETMEM(descr, member) \ #define THREAD_GETMEM(descr, member) \
THREAD_SELF->member descr->member
#define THREAD_GETMEM_NC(descr, member, idx) \ #define THREAD_GETMEM_NC(descr, member, idx) \
THREAD_SELF->member[idx] descr->member[idx]
#define THREAD_SETMEM(descr, member, value) \ #define THREAD_SETMEM(descr, member, value) \
THREAD_SELF->member = (value) descr->member = (value)
#define THREAD_SETMEM_NC(descr, member, idx, value) \ #define THREAD_SETMEM_NC(descr, member, idx, value) \
THREAD_SELF->member[idx] = (value) descr->member[idx] = (value)
#endif /* __ASSEMBLER__ */ #endif /* __ASSEMBLER__ */

View File

@ -34,7 +34,7 @@ _longjmp_unwind (jmp_buf env, int val)
# define fptr __pthread_cleanup_upto # define fptr __pthread_cleanup_upto
#endif #endif
unsigned int local_var; unsigned char local_var;
if (fptr != NULL) if (fptr != NULL)
fptr (env, &local_var); fptr (env, &local_var);

View File

@ -20,6 +20,7 @@
#include <errno.h> #include <errno.h>
#include <sysdep.h> #include <sysdep.h>
#include <lowlevellock.h> #include <lowlevellock.h>
#include <sys/time.h>
void void

View File

@ -30,9 +30,16 @@ __new_sem_post (sem_t *sem)
{ {
int oldval; int oldval;
int newval; int newval;
int err;
lll_compare_and_swap ((int *) sem, oldval, newval, "lr %2,%1; ahi %2,1"); 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); versioned_symbol (libpthread, __new_sem_post, sem_post, GLIBC_2_1);
#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1) #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)

View File

@ -627,12 +627,12 @@ elf_machine_rela (struct link_map *map,
else if (r_type == R_ALPHA_TPREL64) else if (r_type == R_ALPHA_TPREL64)
{ {
#ifdef RTLD_BOOTSTRAP #ifdef RTLD_BOOTSTRAP
*reloc_addr = sym_raw_value - map->l_tls_offset; *reloc_addr = sym_raw_value + map->l_tls_offset;
#else #else
if (sym_map) if (sym_map)
{ {
CHECK_STATIC_TLS (map, 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 #endif
} }