2004-03-13 Jakub Jelinek <jakub@redhat.com>

* db_info.c: Don't use TLS_TP_OFFSET in the #if, but
	TLS_TCB_SIZE == 0 ?: in the DESC macro.
This commit is contained in:
Roland McGrath 2004-03-14 03:39:57 +00:00
parent ab0fcbfaaa
commit 6964ccb2fe
1 changed files with 5 additions and 11 deletions

View File

@ -53,19 +53,13 @@ typedef struct link_map link_map;
#if TLS_TCB_AT_TP
# define dtvp header.dtv
#elif TLS_DTV_AT_TP && TLS_TP_OFFSET > 0
/* Special case hack. Really this #if should be TLS_TCB_SIZE == 0, but
when untrue it's a sizeof expression, and that wouldn't fly. In this
flavor (PowerPC), there is no TCB containing the DTV at the TP, but
actually the TCB lies behind the TP, i.e. at the very end of the area
covered by TLS_PRE_TCB_SIZE. */
DESC (_thread_db_pthread_dtvp,
TLS_PRE_TCB_SIZE - sizeof (tcbhead_t) + offsetof (tcbhead_t, dtv),
union dtv)
#elif TLS_DTV_AT_TP
/* Special case hack. */
/* Special case hack. If TLS_TCB_SIZE == 0 (on PowerPC), there is no TCB
containing the DTV at the TP, but actually the TCB lies behind the TP,
i.e. at the very end of the area covered by TLS_PRE_TCB_SIZE. */
DESC (_thread_db_pthread_dtvp,
TLS_PRE_TCB_SIZE + offsetof (tcbhead_t, dtv), union dtv)
TLS_PRE_TCB_SIZE + offsetof (tcbhead_t, dtv)
- (TLS_TCB_SIZE == 0 ? sizeof (tcbhead_t) : 0), union dtv)
#endif