diff options
Diffstat (limited to 'libpthread/linuxthreads_db')
-rw-r--r-- | libpthread/linuxthreads_db/ChangeLog | 467 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/Makefile.in | 5 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/Makefile.old | 56 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/shlib-versions | 2 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_init.c | 3 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_ta_clear_event.c | 2 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_ta_event_getmsg.c | 1 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_ta_map_id2thr.c | 1 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_ta_map_lwp2thr.c | 1 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_ta_set_event.c | 2 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_ta_thr_iter.c | 5 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_ta_tsd_iter.c | 1 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_thr_clear_event.c | 2 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_thr_tls_get_addr.c | 36 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_thr_tsd.c | 1 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/td_thr_validate.c | 1 | ||||
-rw-r--r-- | libpthread/linuxthreads_db/thread_dbP.h | 2 |
17 files changed, 36 insertions, 552 deletions
diff --git a/libpthread/linuxthreads_db/ChangeLog b/libpthread/linuxthreads_db/ChangeLog deleted file mode 100644 index 9964b4dd4..000000000 --- a/libpthread/linuxthreads_db/ChangeLog +++ /dev/null @@ -1,467 +0,0 @@ -2006-04-25 Bernhard Fischer <rep.nop@aon.at> - - * td_init.c (__td_debug): Only declare when NDEBUG is undefined. - -2006-04-25 Bernhard Fischer <rep.nop@aon.at> - - * thread_dbP.h: Fix Indices typo in comment. - -2005-11-02 Daniel Jacobowitz <dan@codesourcery.com> - - * td_ta_clear_event.c (td_ta_clear_event): Correct arguments to - sizeof. - * td_ta_set_event.c (td_ta_set_event): Likewise. - * td_thr_clear_event.c (td_thr_clear_event): Likewise. - * td_thr_set_event.c (td_thr_set_event): Likewise. - -2005-01-09 Andreas Jaeger <aj@suse.de> - - * td_thr_tlsbase.c (td_thr_tlsbase): Adjust for dtv change. - -2004-05-01 Jakub Jelinek <jakub@redhat.com> - - * thread_dbP.h (LOG): Use write instead of __libc_write. - -2004-03-13 Jakub Jelinek <jakub@redhat.com> - - * td_thr_tlsbase.c: Remove dl-tls.h include. Don't use - TLS_TP_OFFSET in the #if, but TLS_TCB_SIZE == 0 ?:. - -2004-03-12 Roland McGrath <roland@redhat.com> - - * td_thr_tlsbase.c [TLS_DTV_AT_TP && TLS_TP_OFFSET > 0]: Handle this - case (PowerPC) differently. - -2003-11-25 Roland McGrath <roland@redhat.com> - - * td_symbol_list.c (symbol_list_arr) [HAVE_ASM_GLOBAL_DOT_NAME]: - Prepend "." to symbol names for functions. - -2003-08-18 Daniel Jacobowitz <drow@mvista.com> - - * td_thr_getfpregs.c (td_thr_getfpregs): Use the main thread if - the descriptor is uninitialized. - * td_thr_getgregs.c (td_thr_getgregs): Likewise. - -2003-03-15 Roland McGrath <roland@redhat.com> - - * thread_db.h (td_err_e): Add TD_NOTLS and TD_TLSDEFER. - (td_thr_tlsbase): Declare it. - * td_thr_tlsbase.c: New file. - * Makefile (libthread_db-routines): Add it. - * Versions (libthread_db: GLIBC_2.3.3): New set, add td_thr_tlsbase. - * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Use td_thr_tlsbase. - -2003-02-27 Roland McGrath <roland@redhat.com> - - * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Handle TLS_DTV_AT_TP. - - * td_ta_thr_iter.c (handle_descr) [!defined USE_TLS || !TLS_DTV_AT_TP]: - Conditionalize p_header use on this. - -2003-01-29 Roland McGrath <roland@redhat.com> - - * td_ta_new.c (td_ta_new): Cap the `sizeof_descr' value read from the - inferior at `sizeof (struct _pthread_descr_struct)', since we use it - as a length in copies to our own structures. - -2003-01-05 Ulrich Drepper <drepper@redhat.com> - - * Makefile (libthread_db.so-no-z-defs): Define. - -2002-09-29 Ulrich Drepper <drepper@redhat.com> - - * td_thr_tsd.c (td_thr_tsd): Read correct entry from pthread_keys - array. - -2002-09-28 Andreas Jaeger <aj@suse.de> - - * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Fix reference to dtv. - -2002-09-24 Roland McGrath <roland@redhat.com> - - * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Fetch just the - individual members we need, not the whole structures. - -2002-09-24 Ulrich Drepper <drepper@redhat.com> - - * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Change second - parameter to be the address of the link map in the inferior process. - * thread_db.h: Update prototype for td_thr_tls_get_addr. - -2002-08-23 Ulrich Drepper <drepper@redhat.com> - - * thread_dbP.h: Define LINUXTHREADS_VERSION. - * td_symbol_list.c (symbol_list_arr): Add LINUXTHREADS_VERSION string. - * td_ta_new.c (td_ta_new): After verifying the thread library is - there check version. - * thread_db.h: Add new error TD_VERSION. - -2002-08-21 Roland McGrath <roland@redhat.com> - - * td_thr_tls_get_addr.c (td_thr_tls_get_addr): __attribute_used__ -> - __attribute__ ((unused)) for arguments. - -2002-08-07 Ulrich Drepper <drepper@redhat.com> - - * thread_dbP.h: Define LINUXTHREADS_INITIAL_REPORT_EVENTS. - * td_thr_event_enable.c (td_thr_event_enable): If th->th_unique is - null write to __linuxthreads_initial_report_events. - * td_symbol_list.c (symbol_list_arr): Add - __linuxthreads_initial_report_events. - -2002-07-16 Ulrich Drepper <drepper@redhat.com> - - * td_thr_clear_event.c: Yet more changes to help with TLS-enabled - libpthread. - * td_thr_event_enable.c: Likewise. - * td_thr_event_getmsg.c: Likewise. - * td_thr_set_event.c: Likewise. - * td_thr_setfpregs.c: Likewise. - * td_thr_setgregs.c: Likewise. - * td_thr_tsd.c: Likewise. - * td_thr_validate.c: Likewise. - -2002-07-15 Ulrich Drepper <drepper@redhat.com> - - * td_ta_thr_iter.c: Some more changes to enable using TLS-enabled - libpthread. - * td_thr_event_enable.c: Likewise. - * td_thr_getfpregs.c: Likewise. - * td_thr_getgregs.c: Likewise. - -2002-07-14 Ulrich Drepper <drepper@redhat.com> - - * td_ta_map_id2thr.c: Begin fixing implementation for libpthread with - TLS support. - * td_ta_map_lwp2thr.c: Likewise. - * td_ta_thr_iter.c: Likewise. - * td_thr_get_info.c: Likewise. - -2002-07-10 Ulrich Drepper <drepper@redhat.com> - - * Versions [libthread_db] (GLIBC_2.3): Add td_thr_tls_get_addr. - -2002-06-14 H.J. Lu <hjl@gnu.org> - - * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Don't include - "tls.h". Return TD_ERR if USE_TLS is not defined. - -2002-06-12 Ulrich Drepper <drepper@redhat.com> - - * td_thr_tls_get_addr.c: New file. - * thread_db.h: Add prototype for td_thr_tls_get_addr. - * Makefile (libthread_db-routines): Add td_thr_tls_get_addr. - -2002-03-03 Andreas Jaeger <aj@suse.de> - - * thread_dbP.h: Include <unistd.h> for prototypes of __libc_write. - -2002-02-04 Ulrich Drepper <drepper@redhat.com> - - * thread_dbP.h: Include descr.h instead of internals.h. - * td_ta_event_getmsg.c: Also include <linuxthreads/internals.h>. - * td_ta_map_id2thr.c: Likewise. - * td_ta_map_lwp2thr.c: Likewise. - * td_ta_thr_iter.c: Likewise. - * td_ta_tsd_iter.c: Likewise. - * td_thr_tsd.c: Likewise. - * td_thr_validate.c: Likewise. - -2001-12-28 Andreas Jaeger <aj@suse.de> - - * td_init.c (td_init): Don't use __FUNCTION__ as literal. - * td_log.c (td_log): Likewise. - * td_ta_delete.c (td_ta_delete): Likewise. - * td_ta_get_nthreads.c (td_ta_get_nthreads): Likewise. - * td_ta_get_ph.c (td_ta_get_ph): Likewise. - * td_ta_map_id2thr.c (td_ta_map_id2thr): Likewise. - * td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Likewise. - * td_ta_new.c (td_ta_new): Likewise. - * td_ta_clear_event.c (td_ta_clear_event): Likewise. - * td_ta_enable_stats.c (td_ta_enable_stats): Likewise. - * td_ta_event_addr.c (td_ta_event_addr): Likewise. - * td_ta_event_getmsg.c (td_ta_event_getmsg): Likewise. - * td_ta_get_stats.c (td_ta_get_stats): Likewise. - * td_ta_reset_stats.c (td_ta_reset_stats): Likewise. - * td_ta_set_event.c (td_ta_set_event): Likewise. - * td_ta_setconcurrency.c (td_ta_setconcurrency): Likewise. - * td_ta_thr_iter.c (td_ta_thr_iter): Likewise. - * td_ta_tsd_iter.c (td_ta_tsd_iter): Likewise. - * td_thr_clear_event.c (td_thr_clear_event): Likewise. - * td_thr_dbresume.c (td_thr_dbresume): Likewise. - * td_thr_dbsuspend.c (td_thr_dbsuspend): Likewise. - * td_thr_event_enable.c (td_thr_event_enable): Likewise. - * td_thr_event_getmsg.c (td_thr_event_getmsg): Likewise. - * td_thr_get_info.c (td_thr_get_info): Likewise. - * td_thr_getfpregs.c (td_thr_getfpregs): Likewise. - * td_thr_getgregs.c (td_thr_getgregs): Likewise. - * td_thr_getxregs.c (td_thr_getxregs): Likewise. - * td_thr_getxregsize.c (td_thr_getxregsize): Likewise. - * td_thr_set_event.c (td_thr_set_event): Likewise. - * td_thr_setfpregs.c (td_thr_setfpregs): Likewise. - * td_thr_setgregs.c (td_thr_setgregs): Likewise. - * td_thr_setprio.c (td_thr_setprio): Likewise. - * td_thr_setsigpending.c (td_thr_setsigpending): Likewise. - * td_thr_setxregs.c (td_thr_setxregs): Likewise. - * td_thr_sigsetmask.c (td_thr_sigsetmask): Likewise. - * td_thr_tsd.c (td_thr_tsd): Likewise. - * td_thr_validate.c (td_thr_validate): Likewise. - -2001-04-12 Ulrich Drepper <drepper@redhat.com> - - * td_ta_map_id2thr.c: If thread terminated return TD_NOTHR. - * td_thr_validate.c: Likewise. - -2001-04-04 Ulrich Drepper <drepper@redhat.com> - - * td_thr_getfpregs.c: If p_pid is zero use ps_getpid(). - * td_thr_getgregs.c: Likewise. - * td_thr_setfpregs.c: Likewise. - * td_thr_setgregs.c: Likewise. - -2001-03-20 Ulrich Drepper <drepper@redhat.com> - - * Makefile (libthread_db-routines): Add td_symbol_list. - * Versions [libthread_db] (GLIBC_2.2.3): Add td_symbol_list. - * td_symbol_list.c: New file. - * thread_db.h: Add prototype for td_symbol_list. - * thread_dbP.h: Define symbol name indices. - Add prototype for td_lookup. - * td_ta_event_addr.c: Use td_lookup instead of directly using - ps_pglobal_lookup to find symbol address. - * td_ta_get_nthreads.c: Likewise. - * td_ta_new.c: Likewise. - -2001-03-18 Ulrich Drepper <drepper@redhat.com> - - * Makefile: When generating DSO link with libc_nonshared.a. - -2000-08-01 Andreas Jaeger <aj@suse.de> - - * Makefile (distribute): Add missing files. - -2000-04-24 Mark Kettenis <kettenis@gnu.org> - - * td_thr_get_info.c (td_thr_get_info): Set ti_state to - TD_THR_ACTIVE instead of TD_THR_RUN. If the thread is no longer - running but is still joinable, set it to TD_THR_ZOMBIE. Otherwise - set it to TD_THR_UNKNOWN. - -2000-02-25 Andreas Jaeger <aj@suse.de> - - * td_ta_thr_iter.c: Include <alloca.h> for prototype declaration. - * td_ta_tsd_iter.c: Likewise. - -2000-01-20 Andreas Jaeger <aj@suse.de> - - * td_thr_getgregs.c (td_thr_getgregs): Fix typo. - -2000-01-19 Ulrich Drepper <drepper@cygnus.com> - - * td_thr_getgregs.c: Correct size parameter of memset call. - -1999-12-02 Ulrich Drepper <drepper@cygnus.com> - - * proc_service.h: Fix typos in last added declaractions. - -1999-12-01 Ulrich Drepper <drepper@cygnus.com> - - * proc_service.h: Add ps_pstop, ps_pcontinue, ps_lstop, and - ps_lcontinue prototypes. - -1999-11-23 Ulrich Drepper <drepper@cygnus.com> - - * Makefile: Correct dependency for shared object. - -1999-11-22 Ulrich Drepper <drepper@cygnus.com> - - * td_ta_map_lwp2thr.c: Add missing brace in comparison. - - * thread_dbP.h (LOG): Only print message if __td_debug is nonzero. - * td_init.c: Add __td_debug. - -1999-11-12 Ulrich Drepper <drepper@cygnus.com> - - * td_ta_thr_iter.c: Start copying list of descriptors from right - position in target process. - - * td_ta_thr_iter.c: Fix loop starting point over all but main and - manager thread. - - * td_ta_thr_iter.c: Read descriptors for main and manager thread - special since after this we can assume that no new threads will be - created anymore (at least in the gdb implementation). - - * Makefile: Define version correctly. - -1999-11-10 Ulrich Drepper <drepper@cygnus.com> - - * td_ta_map_lwp2thr.c: If p_pid field is zero, this is before the - thread library is initialized and we get the PID from the - debugger. - -1999-11-08 Ulrich Drepper <drepper@cygnus.com> - - * td_thr_get_info.c: Make sure ti_lid is never zero. - - * proc_service.h: Add ps_getpid prototype. - -1999-11-03 Ulrich Drepper <drepper@cygnus.com> - - * thread_dbP.h (ta_ok): New function. - * td_ta_new.c: Add new handle to list. - * td_ta_delete.c: Remove handle from list. - * td_ta_clear_event.c: Use ta_ok to check for correct ta parameter. - * td_ta_enable_stats.c: Likewise. - * td_ta_event_addr.c: Likewise. - * td_ta_event_getmsg.c: Likewise. - * td_ta_get_nthreads.c: Likewise. - * td_ta_get_ph.c: Likewise. - * td_ta_get_stats.c: Likewise. - * td_ta_map_id2thr.c: Likewise. - * td_ta_map_lwp2thr.c: Likewise. - * td_ta_reset_stats.c: Likewise. - * td_ta_set_event.c: Likewise. - * td_ta_setconcurrency.c: Likewise. - * td_ta_thr_iter.c: Likewise. - - * td_ta_tsd_iter.c: Optimize memory retrieving. - - * Versions: New file. - - * td_thr_get_info.c (td_thr_get_info): Initialize ti_traceme. - -1999-11-02 Ulrich Drepper <drepper@cygnus.com> - - * td_ta_thr_iter.c (td_ta_thr_iter): Optimize a bit. Read all - handles at once. - - * thread_dbP.h (struct th_thragent): Add pthread_handle_num. - * td_ta_new.c: Initialize pthread_handle_num. - * td_ta_event_getmsg.c: If last event was already reported search - for another unreported event. - - * td_thr_get_info.c (td_thr_get_info): Initialize ti_events. - - * Makefile (libthread_db-routines): Add td_ta_set_event, - td_ta_event_getmsg, and td_ta_clear_event. - * td_ta_clear_event.c: New file. - * td_ta_event_getmsg.c: New file. - * td_ta_new.c: Get address of __pthread_last_event in target. - * td_ta_set_event.c: Don't overwrite old mask, set additional bits. - * td_thr_set_event.c: Likewise. - * td_thr_clear_event.c: Implement. - * thread_db.h: Declare td_ta_clear_event and td_ta_event_getmsg. - * thread_dbP.h (struct td_thragent): Add pthread_last_event. - - * td_ta_new.c: Don't test for __pthread_threads_debug. Get address - of __pthread_threads_events and fail if this is not possible. - * td_ta_event_addr.c: Implement. - * td_thr_event_enable.c: Implement. - * td_thr_event_getmsg.c: Implement. - * td_thr_set_event.c: Implement. - * td_ta_set_event.c: New file. - * thread_db.h (td_eventbuf_t): Define. - Declare td_ta_set_event. - * thread_dbP.h (struct td_thragent): Add pthread_threads_eventsp. - - * td_thr_getfpregs.c: For terminated threads return empty structure. - * td_thr_getgregs.c: Likewise. - * td_thr_setfpregs.c: Likewise. - * td_thr_setgregs.c: Likewise. - -1999-11-01 Ulrich Drepper <drepper@cygnus.com> - - * thread_db.h: Shuffle types around to make things work for gdb. - * thread_dbP.h: Include proc_service.h before thread_db.h. - - * thread_db.h: It's TD_NOLIBTHREAD, not TD_LIBTHREAD. - * td_ta_new.c: Likewise. - -1999-10-14 Ulrich Drepper <drepper@cygnus.com> - - * td_ta_new.c: p_startfct does not exist anymore. - - * td_thr_get_info.c: Always initialize start function. - - * td_ta_thr_iter.c: Don't return threads which exited (but are not - joined). - - * td_thr_validate.c: Don't skip manager thread. - -1999-10-13 Ulrich Drepper <drepper@cygnus.com> - - * td_ta_thr_iter.c: Use size of descriptor from *TA. - Don't return manager thread before it's actually running. - Actually use state parameter to distingusih at least a few states. - - * td_thr_get_info.c: Handle manager thread special. Fill in ti_lid, - ti_state, and ti_startfunc fields. - -1999-10-12 Andreas Jaeger <aj@suse.de> - - * thread_dbP.h: Include <string.h> for strlen declaration. Remove - __libc_write prototype since this is already declared in - linuxthreads/internals.h. - -1999-10-11 Ulrich Drepper <drepper@cygnus.com> - - * thread_db.h: Fix comment for ti_type. - - * td_thr_get_info.c: Initialize ti_type field. - - * td_ta_thr_iter.c: Also report the manager thread. - -1999-10-08 Andreas Jaeger <aj@suse.de> - - * thread_db.h: Fix typos in comments. - - * td_ta_get_nthreads.c (td_ta_get_nthreads): Don't hardcode - libpthread library name, get it from <gnu/lib-names.h> instead. - * td_ta_new.c (td_ta_new): Likewise. - -1999-10-08 Ulrich Drepper <drepper@cygnus.com> - - * shlib-versions: New file. - -1999-10-07 Ulrich Drepper <drepper@cygnus.com> - - * Makefile: New file. - * proc_service.h: New file. - * td_init.c: New file. - * td_log.c: New file. - * td_ta_delete.c: New file. - * td_ta_enable_stats.c: New file. - * td_ta_event_addr.c: New file. - * td_ta_get_nthreads.c: New file. - * td_ta_get_ph.c: New file. - * td_ta_get_stats.c: New file. - * td_ta_map_id2thr.c: New file. - * td_ta_map_lwp2thr.c: New file. - * td_ta_new.c: New file. - * td_ta_reset_stats.c: New file. - * td_ta_setconcurrency.c: New file. - * td_ta_thr_iter.c: New file. - * td_ta_tsd_iter.c: New file. - * td_thr_clear_event.c: New file. - * td_thr_dbresume.c: New file. - * td_thr_dbsuspend.c: New file. - * td_thr_event_enable.c: New file. - * td_thr_event_getmsg.c: New file. - * td_thr_get_info.c: New file. - * td_thr_getfpregs.c: New file. - * td_thr_getgregs.c: New file. - * td_thr_getxregs.c: New file. - * td_thr_getxregsize.c: New file. - * td_thr_set_event.c: New file. - * td_thr_setfpregs.c: New file. - * td_thr_setgregs.c: New file. - * td_thr_setprio.c: New file. - * td_thr_setsigpending.c: New file. - * td_thr_setxregs.c: New file. - * td_thr_sigsetmask.c: New file. - * td_thr_tsd.c: New file. - * td_thr_validate.c: New file. - * thread_db.h: New file. - * thread_dbP.h: New file. diff --git a/libpthread/linuxthreads_db/Makefile.in b/libpthread/linuxthreads_db/Makefile.in index 52cc7c838..d3ce6f2ee 100644 --- a/libpthread/linuxthreads_db/Makefile.in +++ b/libpthread/linuxthreads_db/Makefile.in @@ -36,17 +36,12 @@ endif lib-a-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.a lib-so-$(PTHREADS_DEBUG_SUPPORT) += $(top_builddir)lib/libthread_db.so -#ifeq ($(DOMULTI),n) ifeq ($(DOPIC),y) $(top_builddir)lib/libthread_db.so: $(top_builddir)lib/libthread_db.a $(libc.depend) else $(top_builddir)lib/libthread_db.so: $(libthread_db_OUT)/libthread_db_so.a $(libc.depend) endif $(call link.so,$(libthread_db_FULL_NAME),1) -#else -#$(top_builddir)lib/libthread_db.so: $(libthread_db_OUT)/libthread_db.oS | $(libc.depend) -# $(call linkm.so,$(libthread_db_FULL_NAME),1) -#endif $(libthread_db_OUT)/libthread_db_so.a: $(libthread_db-so-y) $(Q)$(RM) $@ diff --git a/libpthread/linuxthreads_db/Makefile.old b/libpthread/linuxthreads_db/Makefile.old deleted file mode 100644 index 014ddf835..000000000 --- a/libpthread/linuxthreads_db/Makefile.old +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright (C) 1999, 2000, 2001, 2002, 2003 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 -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. - -# The GNU C Library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public -# License along with the GNU C Library; see the file COPYING.LIB. If -# not, see <http://www.gnu.org/licenses/>. - -# Makefile for linuxthreads debug library subdirectory of GNU C Library. - -subdir := linuxthreads_db - -linuxthreads_db-version = 1.0 - -extra-libs = libthread_db -extra-libs-others := $(extra-libs) - -headers = thread_db.h -libthread_db-routines = td_init td_log td_ta_delete td_ta_get_nthreads \ - td_ta_get_ph td_ta_map_id2thr td_ta_map_lwp2thr \ - td_ta_new td_ta_thr_iter td_ta_tsd_iter \ - td_thr_get_info td_thr_getfpregs td_thr_getgregs \ - td_thr_getxregs td_thr_getxregsize td_thr_setfpregs \ - td_thr_setgregs td_thr_setprio td_thr_setsigpending \ - td_thr_setxregs td_thr_sigsetmask td_thr_tsd \ - td_thr_validate td_thr_dbsuspend td_thr_dbresume \ - td_ta_setconcurrency td_ta_enable_stats \ - td_ta_reset_stats td_ta_get_stats td_ta_event_addr \ - td_thr_event_enable td_thr_set_event \ - td_thr_clear_event td_thr_event_getmsg \ - td_ta_set_event td_ta_event_getmsg \ - td_ta_clear_event td_symbol_list \ - td_thr_tlsbase td_thr_tls_get_addr - -libthread_db-inhibit-o = $(filter-out .os,$(object-suffixes)) - -# The ps_* callback functions are not defined. -libthread_db.so-no-z-defs = yes - -distribute = thread_dbP.h shlib-versions proc_service.h -include ../Rules - -# Depend on libc.so so a DT_NEEDED is generated in the shared objects. -# This ensures they will load libc.so for needed symbols if loaded by -# a statically-linked program that hasn't already loaded it. -$(objpfx)libthread_db.so: $(common-objpfx)libc.so \ - $(common-objpfx)libc_nonshared.a diff --git a/libpthread/linuxthreads_db/shlib-versions b/libpthread/linuxthreads_db/shlib-versions deleted file mode 100644 index 592f7fa28..000000000 --- a/libpthread/linuxthreads_db/shlib-versions +++ /dev/null @@ -1,2 +0,0 @@ -# The thread debug library -.*-.*-linux.* libthread_db=1 diff --git a/libpthread/linuxthreads_db/td_init.c b/libpthread/linuxthreads_db/td_init.c index 1edf53d3a..ecb0d3de2 100644 --- a/libpthread/linuxthreads_db/td_init.c +++ b/libpthread/linuxthreads_db/td_init.c @@ -1,5 +1,5 @@ /* Initialization function of thread debugger support library. - Copyright (C) 1999, 2001, 2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999. @@ -23,7 +23,6 @@ int __td_debug; #endif - td_err_e td_init (void) { diff --git a/libpthread/linuxthreads_db/td_ta_clear_event.c b/libpthread/linuxthreads_db/td_ta_clear_event.c index d912e4478..e827b46ae 100644 --- a/libpthread/linuxthreads_db/td_ta_clear_event.c +++ b/libpthread/linuxthreads_db/td_ta_clear_event.c @@ -21,7 +21,7 @@ td_err_e -td_ta_clear_event(const td_thragent_t *ta, td_thr_events_t *event) +td_ta_clear_event(const td_thragent_t *ta,td_thr_events_t *event) { td_thr_events_t old_event; int i; diff --git a/libpthread/linuxthreads_db/td_ta_event_getmsg.c b/libpthread/linuxthreads_db/td_ta_event_getmsg.c index c23d9264f..b7c2fcd72 100644 --- a/libpthread/linuxthreads_db/td_ta_event_getmsg.c +++ b/libpthread/linuxthreads_db/td_ta_event_getmsg.c @@ -21,7 +21,6 @@ #include <string.h> #include "thread_dbP.h" -#include <linuxthreads/internals.h> td_err_e diff --git a/libpthread/linuxthreads_db/td_ta_map_id2thr.c b/libpthread/linuxthreads_db/td_ta_map_id2thr.c index a90286865..dc24533b8 100644 --- a/libpthread/linuxthreads_db/td_ta_map_id2thr.c +++ b/libpthread/linuxthreads_db/td_ta_map_id2thr.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include "thread_dbP.h" -#include <linuxthreads/internals.h> td_err_e diff --git a/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c b/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c index d8f2254fe..00efc43d6 100644 --- a/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c +++ b/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include "thread_dbP.h" -#include <linuxthreads/internals.h> td_err_e diff --git a/libpthread/linuxthreads_db/td_ta_set_event.c b/libpthread/linuxthreads_db/td_ta_set_event.c index 25330b952..3a75e7b7f 100644 --- a/libpthread/linuxthreads_db/td_ta_set_event.c +++ b/libpthread/linuxthreads_db/td_ta_set_event.c @@ -21,7 +21,7 @@ td_err_e -td_ta_set_event(const td_thragent_t *ta, td_thr_events_t *event) +td_ta_set_event(const td_thragent_t *ta,td_thr_events_t *event) { td_thr_events_t old_event; int i; diff --git a/libpthread/linuxthreads_db/td_ta_thr_iter.c b/libpthread/linuxthreads_db/td_ta_thr_iter.c index 35a2e7834..da230096f 100644 --- a/libpthread/linuxthreads_db/td_ta_thr_iter.c +++ b/libpthread/linuxthreads_db/td_ta_thr_iter.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include "thread_dbP.h" -#include <linuxthreads/internals.h> #include <alloca.h> static int @@ -39,9 +38,7 @@ handle_descr (const td_thragent_t *ta, td_thr_iter_f *callback, memset (&pds, '\0', sizeof (pds)); /* Empty thread descriptor the thread library would create. */ -#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP - pds.p_header.data.self = &pds; -#endif + pds.p_self = &pds; pds.p_nextlive = pds.p_prevlive = &pds; pds.p_tid = PTHREAD_THREADS_MAX; /* The init code also sets up p_lock, p_errnop, p_herrnop, and diff --git a/libpthread/linuxthreads_db/td_ta_tsd_iter.c b/libpthread/linuxthreads_db/td_ta_tsd_iter.c index eb428bf12..758222cd7 100644 --- a/libpthread/linuxthreads_db/td_ta_tsd_iter.c +++ b/libpthread/linuxthreads_db/td_ta_tsd_iter.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include "thread_dbP.h" -#include <linuxthreads/internals.h> #include <alloca.h> td_err_e diff --git a/libpthread/linuxthreads_db/td_thr_clear_event.c b/libpthread/linuxthreads_db/td_thr_clear_event.c index 9674f9f0f..67a592a10 100644 --- a/libpthread/linuxthreads_db/td_thr_clear_event.c +++ b/libpthread/linuxthreads_db/td_thr_clear_event.c @@ -23,7 +23,7 @@ td_err_e -td_thr_clear_event(const td_thrhandle_t *th, td_thr_events_t *event) +td_thr_clear_event(const td_thrhandle_t *th,td_thr_events_t *event) { td_thr_events_t old_event; int i; diff --git a/libpthread/linuxthreads_db/td_thr_tls_get_addr.c b/libpthread/linuxthreads_db/td_thr_tls_get_addr.c index 892acba6b..ac4d706c4 100644 --- a/libpthread/linuxthreads_db/td_thr_tls_get_addr.c +++ b/libpthread/linuxthreads_db/td_thr_tls_get_addr.c @@ -20,24 +20,48 @@ #include <link.h> #include "thread_dbP.h" +/* Value used for dtv entries for which the allocation is delayed. */ +# define TLS_DTV_UNALLOCATED ((void *) -1l) + + td_err_e td_thr_tls_get_addr (const td_thrhandle_t *th __attribute__ ((unused)), void *map_address __attribute__ ((unused)), size_t offset __attribute__ ((unused)), void **address __attribute__ ((unused))) { -#ifdef __UCLIBC_HAS_TLS__ - /* Read the module ID from the link_map. */ +#if defined(USE_TLS) && USE_TLS size_t modid; + union dtv pdtv, *dtvp; + + LOG ("td_thr_tls_get_addr"); + + /* Get the DTV pointer from the thread descriptor. */ + if (ps_pdread (th->th_ta_p->ph, + &((struct _pthread_descr_struct *) th->th_unique)->p_header.data.dtvp, + &dtvp, sizeof dtvp) != PS_OK) + return TD_ERR; /* XXX Other error value? */ + + /* Read the module ID from the link_map. */ if (ps_pdread (th->th_ta_p->ph, &((struct link_map *) map_address)->l_tls_modid, &modid, sizeof modid) != PS_OK) return TD_ERR; /* XXX Other error value? */ - td_err_e result = td_thr_tlsbase (th, modid, address); - if (result == TD_OK) - *address += offset; - return result; + /* Get the corresponding entry in the DTV. */ + if (ps_pdread (th->th_ta_p->ph, dtvp + modid, + &pdtv, sizeof (union dtv)) != PS_OK) + return TD_ERR; /* XXX Other error value? */ + + /* It could be that the memory for this module is not allocated for + the given thread. */ + if (pdtv.pointer == TLS_DTV_UNALLOCATED) + /* There is not much we can do. */ + return TD_NOTALLOC; + + *address = (char *) pdtv.pointer + offset; + + return TD_OK; #else return TD_ERR; #endif diff --git a/libpthread/linuxthreads_db/td_thr_tsd.c b/libpthread/linuxthreads_db/td_thr_tsd.c index 7b0db6b9d..f18832f46 100644 --- a/libpthread/linuxthreads_db/td_thr_tsd.c +++ b/libpthread/linuxthreads_db/td_thr_tsd.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include "thread_dbP.h" -#include <linuxthreads/internals.h> td_err_e diff --git a/libpthread/linuxthreads_db/td_thr_validate.c b/libpthread/linuxthreads_db/td_thr_validate.c index 5108ea97d..ca82637b9 100644 --- a/libpthread/linuxthreads_db/td_thr_validate.c +++ b/libpthread/linuxthreads_db/td_thr_validate.c @@ -18,7 +18,6 @@ <http://www.gnu.org/licenses/>. */ #include "thread_dbP.h" -#include <linuxthreads/internals.h> td_err_e diff --git a/libpthread/linuxthreads_db/thread_dbP.h b/libpthread/linuxthreads_db/thread_dbP.h index 407f30634..64fd2e511 100644 --- a/libpthread/linuxthreads_db/thread_dbP.h +++ b/libpthread/linuxthreads_db/thread_dbP.h @@ -6,7 +6,7 @@ #include <unistd.h> #include "proc_service.h" #include "thread_db.h" -#include "../linuxthreads/descr.h" +#include "internals.h" /* Indices for the symbol names. */ |