Breakage on builder Solaris11-amd64-m64, revision 080363310650c93ad8e93018bcb6760ba5d32d1c
Message ID | 96729b3f-3568-1d41-4bb8-fbe4d037da93@redhat.com |
---|---|
State | New, archived |
Headers |
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: <gdb-patches.sourceware.org> List-Unsubscribe: <mailto:gdb-patches-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:gdb-patches-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-help@sourceware.org>, <http://sourceware.org/ml/#faqs> 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 <ro@CeBiTec.Uni-Bielefeld.DE> References: <E1gPsAZ-0004sf-6z@kwanyin.sergiodj.net> From: Pedro Alves <palves@redhat.com> 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: <E1gPsAZ-0004sf-6z@kwanyin.sergiodj.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit |
Commit Message
Pedro Alves
Nov. 23, 2018, 1:34 p.m. UTC
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 <palves@redhat.com> 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 <palves@redhat.com> * 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(-)
Comments
On Friday, November 23 2018, Pedro Alves wrote: > 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. I took the liberty of running try builds with your patch on the Solaris builders: https://gdb-build.sergiodj.net/builders/Solaris11-amd64-m64/builds/410 https://gdb-build.sergiodj.net/builders/Solaris11-sparcv9-m64/builds/408 Unfortunately the build still fails with: ../../binutils-gdb/gdb/sol-thread.c: In member function ‘virtual ptid_t sol_thread_target::wait(ptid_t, target_waitstatus*, int)’: ../../binutils-gdb/gdb/sol-thread.c:465:2: error: expected ‘)’ before ‘{’ token { ^ ../../binutils-gdb/gdb/sol-thread.c:470:5: error: expected primary-expression before ‘}’ token } ^ BTW, it's possible to run try builds on specific builders by using the "-b" option with "buildbot try". E.g.: buildbot try -b Solaris11-amd64-m64 -b Solaris11-sparcv9-m64 Thanks, > From a48ec78677f732cc78eeefecc149742eb4ca0624 Mon Sep 17 00:00:00 2001 > From: Pedro Alves <palves@redhat.com> > 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 <palves@redhat.com> > > * 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; > -- > 2.14.4
On Friday, November 23 2018, I wrote: > On Friday, November 23 2018, Pedro Alves wrote: > >> 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. > > I took the liberty of running try builds with your patch on the Solaris > builders: > > https://gdb-build.sergiodj.net/builders/Solaris11-amd64-m64/builds/410 > https://gdb-build.sergiodj.net/builders/Solaris11-sparcv9-m64/builds/408 > > Unfortunately the build still fails with: > > ../../binutils-gdb/gdb/sol-thread.c: In member function ‘virtual ptid_t sol_thread_target::wait(ptid_t, target_waitstatus*, int)’: > ../../binutils-gdb/gdb/sol-thread.c:465:2: error: expected ‘)’ before ‘{’ token > { > ^ > ../../binutils-gdb/gdb/sol-thread.c:470:5: error: expected primary-expression before ‘}’ token > } > ^ > > BTW, it's possible to run try builds on specific builders by using the > "-b" option with "buildbot try". E.g.: > > buildbot try -b Solaris11-amd64-m64 -b Solaris11-sparcv9-m64 And the actual commit failed with another reason: https://gdb-build.sergiodj.net/builders/Solaris11-amd64-m64/builds/411/steps/compile%20gdb/logs/stdio ../../binutils-gdb/gdb/procfs.c: In function ‘int procfs_notice_thread(procinfo*, procinfo*, void*)’: ../../binutils-gdb/gdb/procfs.c:3136:41: error: ‘is_exited’ was not declared in this scope if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) ^~~~~~~~~ ../../binutils-gdb/gdb/procfs.c:3136:41: note: suggested alternative: ‘inf_exited’ if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) ^~~~~~~~~ inf_exited
Hi Sergio, > On Friday, November 23 2018, I wrote: > >> On Friday, November 23 2018, Pedro Alves wrote: >> >>> 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. >> >> I took the liberty of running try builds with your patch on the Solaris >> builders: >> >> https://gdb-build.sergiodj.net/builders/Solaris11-amd64-m64/builds/410 >> https://gdb-build.sergiodj.net/builders/Solaris11-sparcv9-m64/builds/408 >> >> Unfortunately the build still fails with: >> >> ../../binutils-gdb/gdb/sol-thread.c: In member function ‘virtual ptid_t sol_thread_target::wait(ptid_t, target_waitstatus*, int)’: >> ../../binutils-gdb/gdb/sol-thread.c:465:2: error: expected ‘)’ before ‘{’ token >> { >> ^ >> ../../binutils-gdb/gdb/sol-thread.c:470:5: error: expected primary-expression before ‘}’ token >> } >> ^ >> >> BTW, it's possible to run try builds on specific builders by using the >> "-b" option with "buildbot try". E.g.: >> >> buildbot try -b Solaris11-amd64-m64 -b Solaris11-sparcv9-m64 > > And the actual commit failed with another reason: > > https://gdb-build.sergiodj.net/builders/Solaris11-amd64-m64/builds/411/steps/compile%20gdb/logs/stdio > > ../../binutils-gdb/gdb/procfs.c: In function ‘int procfs_notice_thread(procinfo*, procinfo*, void*)’: > ../../binutils-gdb/gdb/procfs.c:3136:41: error: ‘is_exited’ was not declared in this scope > if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) > ^~~~~~~~~ > ../../binutils-gdb/gdb/procfs.c:3136:41: note: suggested alternative: ‘inf_exited’ > if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) > ^~~~~~~~~ > inf_exited this is weird: I still see a declaration in gdbthread.h (and also is_running and is_stopped), which should go as well. With just the typo above fixed, a local build on amd64-pc-solaris2.11 has just finished; make check running... Rainer
Hi Pedro, >>> And the actual commit failed with another reason: >>> >>> https://gdb-build.sergiodj.net/builders/Solaris11-amd64-m64/builds/411/steps/compile%20gdb/logs/stdio >>> >>> ../../binutils-gdb/gdb/procfs.c: In function ‘int procfs_notice_thread(procinfo*, procinfo*, void*)’: >>> ../../binutils-gdb/gdb/procfs.c:3136:41: error: ‘is_exited’ was not declared in this scope >>> if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) >>> ^~~~~~~~~ >>> ../../binutils-gdb/gdb/procfs.c:3136:41: note: suggested alternative: ‘inf_exited’ >>> if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) >>> ^~~~~~~~~ >>> inf_exited >> >> this is weird: I still see a declaration in gdbthread.h (and also >> is_running and is_stopped), which should go as well. > >That's because I meanwhile pushed this: > https://sourceware.org/ml/gdb-patches/2018-11/msg00380.html I only saw that commit after I'd sent my mail. >So before that we got a link error, and now we get a compile >error, which is expected. > >> >> With just the typo above fixed, a local build on amd64-pc-solaris2.11 >> has just finished; make check running... It took me a bit to double-check, but the differences in testsuite results are within the (usual, mostly thread-related) variations. So the patch is ok with the missing parenthesis added. Thanks. Rainer
On 11/25/2018 02:55 PM, Rainer Orth wrote: > Hi Pedro, > >>>> And the actual commit failed with another reason: >>>> >>>> https://gdb-build.sergiodj.net/builders/Solaris11-amd64-m64/builds/411/steps/compile%20gdb/logs/stdio >>>> >>>> ../../binutils-gdb/gdb/procfs.c: In function ‘int procfs_notice_thread(procinfo*, procinfo*, void*)’: >>>> ../../binutils-gdb/gdb/procfs.c:3136:41: error: ‘is_exited’ was not declared in this scope >>>> if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) >>>> ^~~~~~~~~ >>>> ../../binutils-gdb/gdb/procfs.c:3136:41: note: suggested alternative: ‘inf_exited’ >>>> if (!in_thread_list (gdb_threadid) || is_exited (gdb_threadid)) >>>> ^~~~~~~~~ >>>> inf_exited >>> >>> this is weird: I still see a declaration in gdbthread.h (and also >>> is_running and is_stopped), which should go as well. >> >> That's because I meanwhile pushed this: >> https://sourceware.org/ml/gdb-patches/2018-11/msg00380.html > > I only saw that commit after I'd sent my mail. > >> So before that we got a link error, and now we get a compile >> error, which is expected. >> >>> >>> With just the typo above fixed, a local build on amd64-pc-solaris2.11 >>> has just finished; make check running... > > It took me a bit to double-check, but the differences in testsuite > results are within the (usual, mostly thread-related) variations. > > So the patch is ok with the missing parenthesis added. Thanks much. I've merged it now. Thanks, Pedro Alves
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;