[AArch64] Fix incorrectly-defined SVE macro

Message ID 20200807170003.1761-1-luis.machado@linaro.org
State New
Headers show
Series
  • [AArch64] Fix incorrectly-defined SVE macro
Related show

Commit Message

The kernel has fixed this here:

https://lore.kernel.org/patchwork/patch/1029011/

We should do the same for GDB, which is still carrying an incorrect
definition of the macro.  As stated in the kernel patch thread, this doesn't
actually change things because, luckily, the structs are of the same size.

YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

	* nat/aarch64-sve-linux-sigcontext.h (SVE_PT_REGS_OFFSET): Use
	struct user_sve_header instead of struct sve_context.
---
 gdb/nat/aarch64-sve-linux-sigcontext.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.17.1

Comments

Alan Hayward Aug. 10, 2020, 8:52 a.m. | #1
> On 7 Aug 2020, at 18:00, Luis Machado <luis.machado@linaro.org> wrote:

> 

> The kernel has fixed this here:

> 

> https://lore.kernel.org/patchwork/patch/1029011/

> 

> We should do the same for GDB, which is still carrying an incorrect

> definition of the macro.  As stated in the kernel patch thread, this doesn't

> actually change things because, luckily, the structs are of the same size.

> 


Ouch. Good find.

> YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

> 

> 	* nat/aarch64-sve-linux-sigcontext.h (SVE_PT_REGS_OFFSET): Use

> 	struct user_sve_header instead of struct sve_context.

> ---

> gdb/nat/aarch64-sve-linux-sigcontext.h | 2 +-

> 1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/gdb/nat/aarch64-sve-linux-sigcontext.h b/gdb/nat/aarch64-sve-linux-sigcontext.h

> index 94fb1eca9c..52c5982608 100644

> --- a/gdb/nat/aarch64-sve-linux-sigcontext.h

> +++ b/gdb/nat/aarch64-sve-linux-sigcontext.h

> @@ -166,7 +166,7 @@ struct user_sve_header {

> 

> /* Offset from the start of struct user_sve_header to the register data */

> #define SVE_PT_REGS_OFFSET					\

> -	((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))	\

> +	((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))	\


Matches the Kernel change exactly. So, approved!


> 		/ SVE_VQ_BYTES * SVE_VQ_BYTES)

> 

> /*

> -- 

> 2.17.1

>
Christian Biesinger via Gdb-patches Aug. 10, 2020, 2:57 p.m. | #2
On 8/10/20 5:52 AM, Alan Hayward wrote:
> 

> 

>> On 7 Aug 2020, at 18:00, Luis Machado <luis.machado@linaro.org> wrote:

>>

>> The kernel has fixed this here:

>>

>> https://lore.kernel.org/patchwork/patch/1029011/

>>

>> We should do the same for GDB, which is still carrying an incorrect

>> definition of the macro.  As stated in the kernel patch thread, this doesn't

>> actually change things because, luckily, the structs are of the same size.

>>

> 

> Ouch. Good find.

> 

>> YYYY-MM-DD  Luis Machado  <luis.machado@linaro.org>

>>

>> 	* nat/aarch64-sve-linux-sigcontext.h (SVE_PT_REGS_OFFSET): Use

>> 	struct user_sve_header instead of struct sve_context.

>> ---

>> gdb/nat/aarch64-sve-linux-sigcontext.h | 2 +-

>> 1 file changed, 1 insertion(+), 1 deletion(-)

>>

>> diff --git a/gdb/nat/aarch64-sve-linux-sigcontext.h b/gdb/nat/aarch64-sve-linux-sigcontext.h

>> index 94fb1eca9c..52c5982608 100644

>> --- a/gdb/nat/aarch64-sve-linux-sigcontext.h

>> +++ b/gdb/nat/aarch64-sve-linux-sigcontext.h

>> @@ -166,7 +166,7 @@ struct user_sve_header {

>>

>> /* Offset from the start of struct user_sve_header to the register data */

>> #define SVE_PT_REGS_OFFSET					\

>> -	((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))	\

>> +	((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))	\

> 

> Matches the Kernel change exactly. So, approved!


Thanks. Pushed now.

Patch

diff --git a/gdb/nat/aarch64-sve-linux-sigcontext.h b/gdb/nat/aarch64-sve-linux-sigcontext.h
index 94fb1eca9c..52c5982608 100644
--- a/gdb/nat/aarch64-sve-linux-sigcontext.h
+++ b/gdb/nat/aarch64-sve-linux-sigcontext.h
@@ -166,7 +166,7 @@  struct user_sve_header {
 
 /* Offset from the start of struct user_sve_header to the register data */
 #define SVE_PT_REGS_OFFSET					\
-	((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))	\
+	((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))	\
 		/ SVE_VQ_BYTES * SVE_VQ_BYTES)
 
 /*