Date: Mon, 2 Oct 2017 20:33:16 +0000 (UTC) From: Michael Zhilin <mizhka@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r324219 - head/lib/libthr/thread Message-ID: <201710022033.v92KXGsm030130@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mizhka Date: Mon Oct 2 20:33:16 2017 New Revision: 324219 URL: https://svnweb.freebsd.org/changeset/base/324219 Log: [libthr] revert change of visibility of _thread_keytable to unbreak debugger Fix regression by r318539. The sysutils/pstack uses library libthread_db to read information about threads state. The function pt_ta_new makes lookup of several key symbols including _thread_keytable. But r318539 mades this field static. It causes silent ignore of libthr library by pstack and as result sysutils/pstack doesn't output any thread information. This fix changes this field back to non-static. MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D11738 Modified: head/lib/libthr/thread/thr_private.h head/lib/libthr/thread/thr_spec.c Modified: head/lib/libthr/thread/thr_private.h ============================================================================== --- head/lib/libthr/thread/thr_private.h Mon Oct 2 20:02:25 2017 (r324218) +++ head/lib/libthr/thread/thr_private.h Mon Oct 2 20:33:16 2017 (r324219) @@ -719,6 +719,8 @@ extern char *_usrstack __hidden; extern int _libthr_debug; extern int _thread_event_mask; extern struct pthread *_thread_last_event; +/* Used in symbol lookup of libthread_db */ +extern struct pthread_key _thread_keytable[]; /* List of all threads: */ extern pthreadlist _thread_list; Modified: head/lib/libthr/thread/thr_spec.c ============================================================================== --- head/lib/libthr/thread/thr_spec.c Mon Oct 2 20:02:25 2017 (r324218) +++ head/lib/libthr/thread/thr_spec.c Mon Oct 2 20:33:16 2017 (r324219) @@ -42,7 +42,8 @@ __FBSDID("$FreeBSD$"); #include "thr_private.h" -static struct pthread_key _thread_keytable[PTHREAD_KEYS_MAX]; +/* Used in symbol lookup of libthread_db */ +struct pthread_key _thread_keytable[PTHREAD_KEYS_MAX]; __weak_reference(_pthread_key_create, pthread_key_create); __weak_reference(_pthread_key_delete, pthread_key_delete);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710022033.v92KXGsm030130>