This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[pushed] Fix s390 GNU/Linux gdb and gdbserver builds


Now that gdb/gdbserver compile as C++ programs by default, the s390
GNU/Linux build started failing with:

 In file included from ../../src/gdb/common/common-defs.h:64:0,
		  from ../../src/gdb/defs.h:28,
		  from ../../src/gdb/s390-linux-nat.c:22:
 ../../src/gdb/s390-linux-nat.c: In function âvoid fetch_regset(regcache*, int, int, int, const regset*)â:
 ../../src/gdb/../include/libiberty.h:711:38: error: invalid conversion from âvoid*â to âgdb_byte* {aka unsigned char*}â [-fpermissive]
  # define alloca(x) __builtin_alloca(x)
				       ^
 ../../src/gdb/s390-linux-nat.c:297:19: note: in expansion of macro âallocaâ
    gdb_byte *buf = alloca (regsize);
		    ^

etc.

gdb/ChangeLog:
2016-04-21  Pedro Alves  <palves@redhat.com>

	* s390-linux-nat.c (fetch_regset, store_regset, check_regset): Use
	void * instead of gdb_byte *.

gdb/gdbserver/ChangeLog:
2016-04-21  Pedro Alves  <palves@redhat.com>

	* linux-s390-low.c (s390_collect_ptrace_register)
	(s390_supply_ptrace_register, s390_get_hwcap): Use gdb_byte * and
	add casts.
	(s390_check_regset): Use void * instead of gdb_byte *.
---
 gdb/ChangeLog                  |  5 +++++
 gdb/gdbserver/ChangeLog        |  7 +++++++
 gdb/gdbserver/linux-s390-low.c | 12 ++++++------
 gdb/s390-linux-nat.c           |  6 +++---
 4 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f16912c..0741d1c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
 2016-04-21  Pedro Alves  <palves@redhat.com>
 
+	* s390-linux-nat.c (fetch_regset, store_regset, check_regset): Use
+	void * instead of gdb_byte *.
+
+2016-04-21  Pedro Alves  <palves@redhat.com>
+
 	* dwarf2read.c (try_open_dwop_file, open_dwo_file)
 	(file_file_name, file_full_name): Add char * cast to sentinel in
 	concat/reconcat calls.
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 029205d..db76e1a 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,10 @@
+2016-04-21  Pedro Alves  <palves@redhat.com>
+
+	* linux-s390-low.c (s390_collect_ptrace_register)
+	(s390_supply_ptrace_register, s390_get_hwcap): Use gdb_byte * and
+	add casts.
+	(s390_check_regset): Use void * instead of gdb_byte *.
+
 2016-04-20  Pedro Alves  <palves@redhat.com>
 
 	* configure: Renegerate.
diff --git a/gdb/gdbserver/linux-s390-low.c b/gdb/gdbserver/linux-s390-low.c
index 12269b6..f5a7d85 100644
--- a/gdb/gdbserver/linux-s390-low.c
+++ b/gdb/gdbserver/linux-s390-low.c
@@ -171,7 +171,7 @@ s390_collect_ptrace_register (struct regcache *regcache, int regno, char *buf)
 	{
 	  /* Convert 4-byte PSW mask to 8 bytes by clearing bit 12 and copying
 	     the basic addressing mode bit from the PSW address.  */
-	  char *addr = alloca (register_size (regcache->tdesc, regno ^ 1));
+	  gdb_byte *addr = (gdb_byte *) alloca (register_size (regcache->tdesc, regno ^ 1));
 	  collect_register (regcache, regno, buf);
 	  collect_register (regcache, regno ^ 1, addr);
 	  buf[1] &= ~0x8;
@@ -216,8 +216,8 @@ s390_supply_ptrace_register (struct regcache *regcache,
 	{
 	  /* Convert 8-byte PSW mask to 4 bytes by setting bit 12 and copying
 	     the basic addressing mode into the PSW address.  */
-	  char *mask = alloca (size);
-	  char *addr = alloca (register_size (regcache->tdesc, regno ^ 1));
+	  gdb_byte *mask = (gdb_byte *) alloca (size);
+	  gdb_byte *addr = (gdb_byte *) alloca (register_size (regcache->tdesc, regno ^ 1));
 	  memcpy (mask, buf, size);
 	  mask[1] |= 0x8;
 	  supply_register (regcache, regno, mask);
@@ -231,7 +231,7 @@ s390_supply_ptrace_register (struct regcache *regcache,
 	{
 	  /* Convert 8-byte PSW address to 4 bytes by truncating, but
 	     keeping the addressing mode bit (which was set from the mask).  */
-	  char *addr = alloca (size);
+	  gdb_byte *addr = (gdb_byte *) alloca (size);
 	  char amode;
 	  collect_register (regcache, regno, addr);
 	  amode = addr[0] & 0x80;
@@ -442,7 +442,7 @@ static unsigned long
 s390_get_hwcap (const struct target_desc *tdesc)
 {
   int wordsize = register_size (tdesc, 0);
-  unsigned char *data = alloca (2 * wordsize);
+  gdb_byte *data = (gdb_byte *) alloca (2 * wordsize);
   int offset = 0;
 
   while ((*the_target->read_auxv) (offset, data, 2 * wordsize) == 2 * wordsize)
@@ -469,7 +469,7 @@ s390_get_hwcap (const struct target_desc *tdesc)
 static int
 s390_check_regset (int pid, int regset, int regsize)
 {
-  gdb_byte *buf = alloca (regsize);
+  void *buf = alloca (regsize);
   struct iovec iov;
 
   iov.iov_base = buf;
diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c
index ae0e2c6..e91297b 100644
--- a/gdb/s390-linux-nat.c
+++ b/gdb/s390-linux-nat.c
@@ -294,7 +294,7 @@ static void
 fetch_regset (struct regcache *regcache, int tid,
 	      int regset_id, int regsize, const struct regset *regset)
 {
-  gdb_byte *buf = alloca (regsize);
+  void *buf = alloca (regsize);
   struct iovec iov;
 
   iov.iov_base = buf;
@@ -318,7 +318,7 @@ static void
 store_regset (struct regcache *regcache, int tid,
 	      int regset_id, int regsize, const struct regset *regset)
 {
-  gdb_byte *buf = alloca (regsize);
+  void *buf = alloca (regsize);
   struct iovec iov;
 
   iov.iov_base = buf;
@@ -338,7 +338,7 @@ store_regset (struct regcache *regcache, int tid,
 static int
 check_regset (int tid, int regset, int regsize)
 {
-  gdb_byte *buf = alloca (regsize);
+  void *buf = alloca (regsize);
   struct iovec iov;
 
   iov.iov_base = buf;
-- 
2.5.5


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]