/* This file is included by pthread_create.c to define in libpthread
all the magic symbols required by libthread_db.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
#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. */
DESC (_thread_db_pthread_dtvp,