public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] gdbserver: fix gdbserver builds after expedite_regs changes
@ 2023-10-05 11:19 Andrew Burgess
  2023-10-05 11:23 ` Luis Machado
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Burgess @ 2023-10-05 11:19 UTC (permalink / raw)
  To: gdb-patches; +Cc: Andrew Burgess, Luis Machado

After this commit:

  commit 6a65998a8a94abaaae7ca4ff0ab9c3f25dc2e766
  Date:   Mon Sep 11 12:42:00 2023 +0100

      Convert tdesc's expedite_regs to a string vector

The risc-v, loongarch, and csky gdbserver builds were broken.  A use
of target_desc::expedite_regs (for each architecture)  was not updated
to take account of the type change.

I've tested that this fixes the risc-v build.  I haven't tested the
other architectures, but they should be fine.
---
 gdbserver/linux-csky-low.cc      | 7 +++++--
 gdbserver/linux-loongarch-low.cc | 7 +++++--
 gdbserver/linux-riscv-low.cc     | 8 ++++++--
 3 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/gdbserver/linux-csky-low.cc b/gdbserver/linux-csky-low.cc
index 3117556f5de..feb428ec9d2 100644
--- a/gdbserver/linux-csky-low.cc
+++ b/gdbserver/linux-csky-low.cc
@@ -132,8 +132,11 @@ csky_target::low_arch_setup ()
   static const char *expedite_regs[] = { "r14", "pc", NULL };
   target_desc_up tdesc = csky_create_target_description ();
 
-  if (!tdesc->expedite_regs)
-    init_target_desc (tdesc.get (), expedite_regs);
+  if (tdesc->expedite_regs.empty ())
+    {
+      init_target_desc (tdesc.get (), expedite_regs);
+      gdb_assert (!tdesc->expedite_regs.empty ());
+    }
 
   current_process ()->tdesc = tdesc.release ();
 
diff --git a/gdbserver/linux-loongarch-low.cc b/gdbserver/linux-loongarch-low.cc
index ead2e76d25d..3eb87f55d0f 100644
--- a/gdbserver/linux-loongarch-low.cc
+++ b/gdbserver/linux-loongarch-low.cc
@@ -84,8 +84,11 @@ loongarch_target::low_arch_setup ()
   features.xlen = sizeof (elf_greg_t);
   tdesc = loongarch_create_target_description (features);
 
-  if (!tdesc->expedite_regs)
-    init_target_desc (tdesc.get (), expedite_regs);
+  if (tdesc->expedite_regs.empty ())
+    {
+      init_target_desc (tdesc.get (), expedite_regs);
+      gdb_assert (!tdesc->expedite_regs.empty ());
+    }
   current_process ()->tdesc = tdesc.release ();
 }
 
diff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc
index 129bc3b138b..4c251bb179c 100644
--- a/gdbserver/linux-riscv-low.cc
+++ b/gdbserver/linux-riscv-low.cc
@@ -90,8 +90,12 @@ riscv_target::low_arch_setup ()
     = riscv_linux_read_features (lwpid_of (current_thread));
   target_desc_up tdesc = riscv_create_target_description (features);
 
-  if (!tdesc->expedite_regs)
-    init_target_desc (tdesc.get (), expedite_regs);
+  if (tdesc->expedite_regs.empty ())
+    {
+      init_target_desc (tdesc.get (), expedite_regs);
+      gdb_assert (!tdesc->expedite_regs.empty ());
+    }
+
   current_process ()->tdesc = tdesc.release ();
 }
 

base-commit: 0515a7b643c6f7bbfb647764b702d4c6445618e8
-- 
2.25.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] gdbserver: fix gdbserver builds after expedite_regs changes
  2023-10-05 11:19 [PATCH] gdbserver: fix gdbserver builds after expedite_regs changes Andrew Burgess
@ 2023-10-05 11:23 ` Luis Machado
  2023-10-06 12:20   ` Andrew Burgess
  0 siblings, 1 reply; 3+ messages in thread
From: Luis Machado @ 2023-10-05 11:23 UTC (permalink / raw)
  To: Andrew Burgess, gdb-patches

On 10/5/23 12:19, Andrew Burgess wrote:
> After this commit:
> 
>   commit 6a65998a8a94abaaae7ca4ff0ab9c3f25dc2e766
>   Date:   Mon Sep 11 12:42:00 2023 +0100
> 
>       Convert tdesc's expedite_regs to a string vector
> 
> The risc-v, loongarch, and csky gdbserver builds were broken.  A use
> of target_desc::expedite_regs (for each architecture)  was not updated
> to take account of the type change.
> 
> I've tested that this fixes the risc-v build.  I haven't tested the
> other architectures, but they should be fine.
> ---
>  gdbserver/linux-csky-low.cc      | 7 +++++--
>  gdbserver/linux-loongarch-low.cc | 7 +++++--
>  gdbserver/linux-riscv-low.cc     | 8 ++++++--
>  3 files changed, 16 insertions(+), 6 deletions(-)
> 
> diff --git a/gdbserver/linux-csky-low.cc b/gdbserver/linux-csky-low.cc
> index 3117556f5de..feb428ec9d2 100644
> --- a/gdbserver/linux-csky-low.cc
> +++ b/gdbserver/linux-csky-low.cc
> @@ -132,8 +132,11 @@ csky_target::low_arch_setup ()
>    static const char *expedite_regs[] = { "r14", "pc", NULL };
>    target_desc_up tdesc = csky_create_target_description ();
>  
> -  if (!tdesc->expedite_regs)
> -    init_target_desc (tdesc.get (), expedite_regs);
> +  if (tdesc->expedite_regs.empty ())
> +    {
> +      init_target_desc (tdesc.get (), expedite_regs);
> +      gdb_assert (!tdesc->expedite_regs.empty ());
> +    }
>  
>    current_process ()->tdesc = tdesc.release ();
>  
> diff --git a/gdbserver/linux-loongarch-low.cc b/gdbserver/linux-loongarch-low.cc
> index ead2e76d25d..3eb87f55d0f 100644
> --- a/gdbserver/linux-loongarch-low.cc
> +++ b/gdbserver/linux-loongarch-low.cc
> @@ -84,8 +84,11 @@ loongarch_target::low_arch_setup ()
>    features.xlen = sizeof (elf_greg_t);
>    tdesc = loongarch_create_target_description (features);
>  
> -  if (!tdesc->expedite_regs)
> -    init_target_desc (tdesc.get (), expedite_regs);
> +  if (tdesc->expedite_regs.empty ())
> +    {
> +      init_target_desc (tdesc.get (), expedite_regs);
> +      gdb_assert (!tdesc->expedite_regs.empty ());
> +    }
>    current_process ()->tdesc = tdesc.release ();
>  }
>  
> diff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc
> index 129bc3b138b..4c251bb179c 100644
> --- a/gdbserver/linux-riscv-low.cc
> +++ b/gdbserver/linux-riscv-low.cc
> @@ -90,8 +90,12 @@ riscv_target::low_arch_setup ()
>      = riscv_linux_read_features (lwpid_of (current_thread));
>    target_desc_up tdesc = riscv_create_target_description (features);
>  
> -  if (!tdesc->expedite_regs)
> -    init_target_desc (tdesc.get (), expedite_regs);
> +  if (tdesc->expedite_regs.empty ())
> +    {
> +      init_target_desc (tdesc.get (), expedite_regs);
> +      gdb_assert (!tdesc->expedite_regs.empty ());
> +    }
> +
>    current_process ()->tdesc = tdesc.release ();
>  }
>  
> 
> base-commit: 0515a7b643c6f7bbfb647764b702d4c6445618e8

Oops. Sorry about that, and thanks for fixing it. It would be great to have some
speciments of those architectures in the sourceware CI to catch these hiccups.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] gdbserver: fix gdbserver builds after expedite_regs changes
  2023-10-05 11:23 ` Luis Machado
@ 2023-10-06 12:20   ` Andrew Burgess
  0 siblings, 0 replies; 3+ messages in thread
From: Andrew Burgess @ 2023-10-06 12:20 UTC (permalink / raw)
  To: Luis Machado, gdb-patches

Luis Machado <luis.machado@arm.com> writes:

> On 10/5/23 12:19, Andrew Burgess wrote:
>> After this commit:
>> 
>>   commit 6a65998a8a94abaaae7ca4ff0ab9c3f25dc2e766
>>   Date:   Mon Sep 11 12:42:00 2023 +0100
>> 
>>       Convert tdesc's expedite_regs to a string vector
>> 
>> The risc-v, loongarch, and csky gdbserver builds were broken.  A use
>> of target_desc::expedite_regs (for each architecture)  was not updated
>> to take account of the type change.
>> 
>> I've tested that this fixes the risc-v build.  I haven't tested the
>> other architectures, but they should be fine.
>> ---
>>  gdbserver/linux-csky-low.cc      | 7 +++++--
>>  gdbserver/linux-loongarch-low.cc | 7 +++++--
>>  gdbserver/linux-riscv-low.cc     | 8 ++++++--
>>  3 files changed, 16 insertions(+), 6 deletions(-)
>> 
>> diff --git a/gdbserver/linux-csky-low.cc b/gdbserver/linux-csky-low.cc
>> index 3117556f5de..feb428ec9d2 100644
>> --- a/gdbserver/linux-csky-low.cc
>> +++ b/gdbserver/linux-csky-low.cc
>> @@ -132,8 +132,11 @@ csky_target::low_arch_setup ()
>>    static const char *expedite_regs[] = { "r14", "pc", NULL };
>>    target_desc_up tdesc = csky_create_target_description ();
>>  
>> -  if (!tdesc->expedite_regs)
>> -    init_target_desc (tdesc.get (), expedite_regs);
>> +  if (tdesc->expedite_regs.empty ())
>> +    {
>> +      init_target_desc (tdesc.get (), expedite_regs);
>> +      gdb_assert (!tdesc->expedite_regs.empty ());
>> +    }
>>  
>>    current_process ()->tdesc = tdesc.release ();
>>  
>> diff --git a/gdbserver/linux-loongarch-low.cc b/gdbserver/linux-loongarch-low.cc
>> index ead2e76d25d..3eb87f55d0f 100644
>> --- a/gdbserver/linux-loongarch-low.cc
>> +++ b/gdbserver/linux-loongarch-low.cc
>> @@ -84,8 +84,11 @@ loongarch_target::low_arch_setup ()
>>    features.xlen = sizeof (elf_greg_t);
>>    tdesc = loongarch_create_target_description (features);
>>  
>> -  if (!tdesc->expedite_regs)
>> -    init_target_desc (tdesc.get (), expedite_regs);
>> +  if (tdesc->expedite_regs.empty ())
>> +    {
>> +      init_target_desc (tdesc.get (), expedite_regs);
>> +      gdb_assert (!tdesc->expedite_regs.empty ());
>> +    }
>>    current_process ()->tdesc = tdesc.release ();
>>  }
>>  
>> diff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc
>> index 129bc3b138b..4c251bb179c 100644
>> --- a/gdbserver/linux-riscv-low.cc
>> +++ b/gdbserver/linux-riscv-low.cc
>> @@ -90,8 +90,12 @@ riscv_target::low_arch_setup ()
>>      = riscv_linux_read_features (lwpid_of (current_thread));
>>    target_desc_up tdesc = riscv_create_target_description (features);
>>  
>> -  if (!tdesc->expedite_regs)
>> -    init_target_desc (tdesc.get (), expedite_regs);
>> +  if (tdesc->expedite_regs.empty ())
>> +    {
>> +      init_target_desc (tdesc.get (), expedite_regs);
>> +      gdb_assert (!tdesc->expedite_regs.empty ());
>> +    }
>> +
>>    current_process ()->tdesc = tdesc.release ();
>>  }
>>  
>> 
>> base-commit: 0515a7b643c6f7bbfb647764b702d4c6445618e8
>
> Oops. Sorry about that, and thanks for fixing it. It would be great to have some
> speciments of those architectures in the sourceware CI to catch these hiccups.

Indeed.  I guess that would need someone to provide some kit though.
For now, I just do some risc-v testing periodically when I'm not too
busy.

Anyway, I went ahead and pushed this fix.

Thanks,
Andrew


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-10-06 12:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-05 11:19 [PATCH] gdbserver: fix gdbserver builds after expedite_regs changes Andrew Burgess
2023-10-05 11:23 ` Luis Machado
2023-10-06 12:20   ` Andrew Burgess

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).