]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
2004-03-13 Jakub Jelinek <jakub@redhat.com>
authorRoland McGrath <roland@gnu.org>
Sun, 14 Mar 2004 03:39:57 +0000 (03:39 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 14 Mar 2004 03:39:57 +0000 (03:39 +0000)
* db_info.c: Don't use TLS_TP_OFFSET in the #if, but
TLS_TCB_SIZE == 0 ?: in the DESC macro.

nptl_db/db_info.c

index 6ffe8bb058596f76b71ff19792180461a16304f3..5000b99ba549145d60c0418c05e8ba03512e5541 100644 (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