From patchwork Fri Nov 23 13:34:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pedro Alves X-Patchwork-Id: 30267 Received: (qmail 17743 invoked by alias); 23 Nov 2018 13:34:10 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 17275 invoked by uid 89); 23 Nov 2018 13:34:09 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=gdbbuildbotsergiodjnet, gdb-buildbot@sergiodj.net, U*gdb-buildbot, 2144 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 23 Nov 2018 13:34:06 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id AD21D307D84E; Fri, 23 Nov 2018 13:34:05 +0000 (UTC) Received: from [127.0.0.1] (ovpn04.gateway.prod.ext.ams2.redhat.com [10.39.146.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id E8436704B7; Fri, 23 Nov 2018 13:34:03 +0000 (UTC) Subject: Re: Breakage on builder Solaris11-amd64-m64, revision 080363310650c93ad8e93018bcb6760ba5d32d1c To: gdb-buildbot@sergiodj.net, gdb-patches@sourceware.org, Rainer Orth References: From: Pedro Alves Message-ID: <96729b3f-3568-1d41-4bb8-fbe4d037da93@redhat.com> Date: Fri, 23 Nov 2018 13:34:01 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: On 11/22/2018 04:49 PM, gdb-buildbot@sergiodj.net wrote: > Undefined first referenced > symbol in file > is_exited(ptid_t) procfs.o > ld: fatal: symbol referencing errors > collect2: error: ld returned 1 exit status > gmake[2]: *** [Makefile:1912: gdb] Error 1 > gmake[2]: Leaving directory '/opt/gdb-buildbot/home/solaris11-amd64/solaris11-amd64-m64/build/gdb' > gmake[1]: *** [Makefile:8792: all-gdb] Error 2 > gmake[1]: Leaving directory '/opt/gdb-buildbot/home/solaris11-amd64/solaris11-amd64-m64/build' > gmake: *** [Makefile:849: all] Error 2 > ============================ Whoops, sorry about that. I assume this works, but I haven't tried it. From a48ec78677f732cc78eeefecc149742eb4ca0624 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Fri, 23 Nov 2018 13:13:35 +0000 Subject: [PATCH] Fix Solaris build The recent commit 080363310650 ("Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc.") removed the definitions of is_running/is_stopped/is_exited but missed updating a couple uses of is_exited in Solaris-specific code. gdb/ChangeLog: 2018-11-23 Pedro Alves * procfs.c (procfs_notice_thread): Replace uses of in_thread_list/is_exited with find_thread_ptid/THREAD_EXITED. * sol-thread.c (sol_thread_target::wait) (sol_update_thread_list_callback): Likewise. --- gdb/procfs.c | 3 ++- gdb/sol-thread.c | 14 ++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/gdb/procfs.c b/gdb/procfs.c index 0d8f9df966..f82fc83987 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -3133,7 +3133,8 @@ procfs_notice_thread (procinfo *pi, procinfo *thread, void *ptr) { ptid_t gdb_threadid = ptid_t (pi->pid, thread->tid, 0); - if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) + thread_info *thr = find_thread_ptid (gdb_threadid); + if (thr == NULL || thr->state == THREAD_EXITED) add_thread (gdb_threadid); return 0; diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c index 682302a40b..0a57c4d1a6 100644 --- a/gdb/sol-thread.c +++ b/gdb/sol-thread.c @@ -462,9 +462,11 @@ sol_thread_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, /* See if we have a new thread. */ if (rtnval.tid_p () && rtnval != save_ptid - && (!in_thread_list (rtnval) - || is_exited (rtnval))) - add_thread (rtnval); + { + thread_info *thr = find_thread_ptid (rtnval); + if (thr == NULL || thr->state == THREAD_EXITED) + add_thread (rtnval); + } } /* During process initialization, we may get here without the thread @@ -1035,14 +1037,14 @@ sol_update_thread_list_callback (const td_thrhandle_t *th, void *ignored) { td_err_e retval; td_thrinfo_t ti; - ptid_t ptid; retval = p_td_thr_get_info (th, &ti); if (retval != TD_OK) return -1; - ptid = ptid_t (inferior_ptid.pid (), 0, ti.ti_tid); - if (!in_thread_list (ptid) || is_exited (ptid)) + ptid_t ptid = ptid_t (inferior_ptid.pid (), 0, ti.ti_tid); + thread_info *thr = find_thread_ptid (ptid); + if (thr == NULL || thr->state == THREAD_EXITED) add_thread (ptid); return 0;