mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
* descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
we always define the padding space. [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC stopped supporting its own extensions fully. [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper struct also called `header', so `header.multiple_threads' is the field name to use on all machines. * allocatestack.c (allocate_stack): Use `header.' prefix. * sysdeps/pthread/createthread.c (create_thread): Likewise. * pthread_create.c (__pthread_create_2_1): Likewise. * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise. (THREAD_SELF): Likewise. * sysdeps/x86_64/tls.h: Likewise. * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P): Likewise. * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (SINGLE_THREAD_P): Likewise. * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18] value directly.
This commit is contained in:
parent
55c11fbdb0
commit
5228750594
@ -1,3 +1,28 @@
|
||||
2003-03-14 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
|
||||
we always define the padding space.
|
||||
[!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
|
||||
stopped supporting its own extensions fully.
|
||||
[TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
|
||||
struct also called `header', so `header.multiple_threads' is the field
|
||||
name to use on all machines.
|
||||
* allocatestack.c (allocate_stack): Use `header.' prefix.
|
||||
* sysdeps/pthread/createthread.c (create_thread): Likewise.
|
||||
* pthread_create.c (__pthread_create_2_1): Likewise.
|
||||
* sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
|
||||
(THREAD_SELF): Likewise.
|
||||
* sysdeps/x86_64/tls.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
|
||||
(SINGLE_THREAD_P): Likewise.
|
||||
* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
|
||||
(SINGLE_THREAD_P): Likewise.
|
||||
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
|
||||
(SINGLE_THREAD_P): Likewise.
|
||||
|
||||
* sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
|
||||
value directly.
|
||||
|
||||
2003-03-14 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* pthread_create.c (start_thread): setjmp is expected to return 0.
|
||||
|
@ -35,10 +35,8 @@ td_ta_map_lwp2thr (const td_thragent_t *ta, lwpid_t lwpid, td_thrhandle_t *th)
|
||||
if (ps_lgetregs (ta->ph, lwpid, regs) != PS_OK)
|
||||
return TD_ERR;
|
||||
|
||||
/* Get the thread area for the addressed thread. */
|
||||
if (ps_get_thread_area (ta->ph, lwpid, regs[18] >> 3, &th->th_unique)
|
||||
!= PS_OK)
|
||||
return TD_ERR; /* XXX Other error value? */
|
||||
/* S390 thread register is ACR0, aka register 18. */
|
||||
th->th_unique = (void *) regs[18];
|
||||
|
||||
/* Found it. Now complete the `td_thrhandle_t' object. */
|
||||
th->th_ta_p = (td_thragent_t *) ta;
|
||||
|
@ -41,7 +41,7 @@ td_thr_tls_get_addr (const td_thrhandle_t *th __attribute__ ((unused)),
|
||||
|
||||
psaddr_t dtvpp = th->th_unique;
|
||||
#if TLS_TCB_AT_TP
|
||||
dtvpp += offsetof (struct pthread, dtv);
|
||||
dtvpp += offsetof (struct pthread, header.dtv);
|
||||
#elif TLS_DTV_AT_TP
|
||||
dtvpp += TLS_PRE_TCB_SIZE + offsetof (tcbhead_t, dtv);
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user