From 3491a34c4f7de10dbd19c719052642d8471c45a6 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Thu, 16 Nov 2017 10:05:27 +0000 Subject: [PATCH] Fix tic6x-uclinux GDBserver build failure I can't find a c6x-uclinux c++ compiler, so I use my host g++ to build tic6x-uclinux GDBserver, and find the following build failures. They are not target specific, so I believe they are real errors. This patch fixes them. ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c:313:34: error: invalid conversion from 'void*' to 'tic6x_register*' [-fpermissive] union tic6x_register *regset = buf; ^ ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c: In function 'void tic6x_store_gregset(regcache*, const void*)': ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c:324:40: error: invalid conversion from 'const void*' to 'const tic6x_register*' [-fpermissive] const union tic6x_register *regset = buf; ^ ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c: At global scope: ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c:359:28: error: redefinition of 'usrregs_info tic6x_usrregs_info' static struct usrregs_info tic6x_usrregs_info = ^ ../binutils-gdb/gdb/gdbserver/linux-tic6x-low.c:186:28: note: 'usrregs_info tic6x_usrregs_info' previously declared here static struct usrregs_info tic6x_usrregs_info; ^ gdb/gdbserver: 2017-11-16 Yao Qi * linux-tic6x-low.c (tic6x_fill_gregset): Cast buf. (tic6x_store_gregset): Likewise. (tic6x_usrregs_info): Move it up. --- gdb/gdbserver/ChangeLog | 6 ++++++ gdb/gdbserver/linux-tic6x-low.c | 17 +++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 069ef9347f..138d6bcf06 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,9 @@ +2017-11-16 Yao Qi + + * linux-tic6x-low.c (tic6x_fill_gregset): Cast buf. + (tic6x_store_gregset): Likewise. + (tic6x_usrregs_info): Move it up. + 2017-11-15 Alan Hayward * Makefile.in: Update arch rules. diff --git a/gdb/gdbserver/linux-tic6x-low.c b/gdb/gdbserver/linux-tic6x-low.c index 7a32f7e012..6dda52e8eb 100644 --- a/gdb/gdbserver/linux-tic6x-low.c +++ b/gdb/gdbserver/linux-tic6x-low.c @@ -182,8 +182,11 @@ tic6x_sw_breakpoint_from_kind (int kind, int *size) return (const gdb_byte *) &tic6x_breakpoint; } -/* Forward definition. */ -static struct usrregs_info tic6x_usrregs_info; +static struct usrregs_info tic6x_usrregs_info = + { + TIC6X_NUM_REGS, + NULL, /* Set in tic6x_read_description. */ + }; static const struct target_desc * tic6x_read_description (void) @@ -310,7 +313,7 @@ tic6x_supply_register (struct regcache *regcache, int regno, static void tic6x_fill_gregset (struct regcache *regcache, void *buf) { - union tic6x_register *regset = buf; + auto regset = static_cast (buf); int i; for (i = 0; i < TIC6X_NUM_REGS; i++) @@ -321,7 +324,7 @@ tic6x_fill_gregset (struct regcache *regcache, void *buf) static void tic6x_store_gregset (struct regcache *regcache, const void *buf) { - const union tic6x_register *regset = buf; + const auto regset = static_cast (buf); int i; for (i = 0; i < TIC6X_NUM_REGS; i++) @@ -356,12 +359,6 @@ static struct regsets_info tic6x_regsets_info = NULL, /* disabled_regsets */ }; -static struct usrregs_info tic6x_usrregs_info = - { - TIC6X_NUM_REGS, - NULL, /* Set in tic6x_read_description. */ - }; - static struct regs_info regs_info = { NULL, /* regset_bitmap */ -- 2.34.1