Breakage on builder Solaris11-amd64-m64, revision 080363310650c93ad8e93018bcb6760ba5d32d1c

Sergio Durigan Junior sergiodj@redhat.com
Fri Nov 23 14:06:00 GMT 2018


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

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/



More information about the Gdb-patches mailing list