From 71829b1a3f9b4825150747b138b5cfadf0c5fcba Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 21 Apr 2016 14:02:20 +0100 Subject: [PATCH] Fix AIX gdb build with C++ compiler We currently get: ../../src/gdb/aix-thread.c: In function 'int pdc_read_data(pthdb_user_t, void*, pthdb_addr_t, size_t)': ../../src/gdb/aix-thread.c:465:46: error: invalid conversion from 'void*' to 'gdb_byte* {aka unsigned char*}' [-fpermissive] status = target_read_memory (addr, buf, len); ^ ../../src/gdb/aix-thread.c: In function 'void aix_thread_resume(target_ops*, ptid_t, int, gdb_signal)': ../../src/gdb/aix-thread.c:1010:46: error: invalid conversion from 'void*' to 'int*' [-fpermissive] gdb_signal_to_host (sig), (void *) tid); ^ ../../src/gdb/aix-thread.c:243:1: error: initializing argument 5 of 'int ptrace64aix(int, int, long long int, int, int*)' [-fpermissive] ptrace64aix (int req, int id, long long addr, int data, int *buf) ../../src/gdb/rs6000-nat.c: In function 'gdb_byte* rs6000_ptrace_ldinfo(ptid_t)': ../../src/gdb/rs6000-nat.c:596:36: error: invalid conversion from 'void*' to 'gdb_byte* {aka unsigned char*}' [-fpermissive] gdb_byte *ldi = xmalloc (ldi_size); ^ ../../src/gdb/rs6000-nat.c:615:36: error: invalid conversion from 'void*' to 'gdb_byte* {aka unsigned char*}' [-fpermissive] ldi = xrealloc (ldi, ldi_size); ^ (and more instances of the same). gdb/ChangeLog: 2016-04-21 Pedro Alves * aix-thread.c (pdc_read_data, pdc_write_data): Add cast. (aix_thread_resume): Use PTRACE_TYPE_ARG5. * rs6000-nat.c (rs6000_ptrace64): Use PTRACE_TYPE_ARG5. (rs6000_ptrace_ldinfo): Change type of 'ldi' local to void pointer, and cast return to gdb_byte pointer. --- gdb/ChangeLog | 8 ++++++++ gdb/aix-thread.c | 8 ++++---- gdb/rs6000-nat.c | 8 ++++---- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0741d1cbdd..6e0903016b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2016-04-21 Pedro Alves + + * aix-thread.c (pdc_read_data, pdc_write_data): Add cast. + (aix_thread_resume): Use PTRACE_TYPE_ARG5. + * rs6000-nat.c (rs6000_ptrace64): Use PTRACE_TYPE_ARG5. + (rs6000_ptrace_ldinfo): Change type of 'ldi' local to void + pointer, and cast return to gdb_byte pointer. + 2016-04-21 Pedro Alves * s390-linux-nat.c (fetch_regset, store_regset, check_regset): Use diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c index 11140466cc..693d6f6fae 100644 --- a/gdb/aix-thread.c +++ b/gdb/aix-thread.c @@ -462,7 +462,7 @@ pdc_read_data (pthdb_user_t user, void *buf, "pdc_read_data (user = %ld, buf = 0x%lx, addr = %s, len = %ld)\n", user, (long) buf, hex_string (addr), len); - status = target_read_memory (addr, buf, len); + status = target_read_memory (addr, (gdb_byte *) buf, len); ret = status == 0 ? PDC_SUCCESS : PDC_FAILURE; if (debug_aix_thread) @@ -484,7 +484,7 @@ pdc_write_data (pthdb_user_t user, void *buf, "pdc_write_data (user = %ld, buf = 0x%lx, addr = %s, len = %ld)\n", user, (long) buf, hex_string (addr), len); - status = target_write_memory (addr, buf, len); + status = target_write_memory (addr, (gdb_byte *) buf, len); ret = status == 0 ? PDC_SUCCESS : PDC_FAILURE; if (debug_aix_thread) @@ -1007,10 +1007,10 @@ aix_thread_resume (struct target_ops *ops, if (arch64) ptrace64aix (PTT_CONTINUE, tid[0], (long long) 1, - gdb_signal_to_host (sig), (void *) tid); + gdb_signal_to_host (sig), (PTRACE_TYPE_ARG5) tid); else ptrace32 (PTT_CONTINUE, tid[0], (addr_ptr) 1, - gdb_signal_to_host (sig), (void *) tid); + gdb_signal_to_host (sig), (PTRACE_TYPE_ARG5) tid); } } diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c index ca333f216d..1ae3cc328a 100644 --- a/gdb/rs6000-nat.c +++ b/gdb/rs6000-nat.c @@ -143,9 +143,9 @@ rs6000_ptrace64 (int req, int id, long long addr, int data, void *buf) { #ifdef ARCH3264 # ifdef HAVE_PTRACE64 - int ret = ptrace64 (req, id, addr, data, buf); + int ret = ptrace64 (req, id, addr, data, (PTRACE_TYPE_ARG5) buf); # else - int ret = ptracex (req, id, addr, data, buf); + int ret = ptracex (req, id, addr, data, (PTRACE_TYPE_ARG5) buf); # endif #else int ret = 0; @@ -593,7 +593,7 @@ rs6000_ptrace_ldinfo (ptid_t ptid) { const int pid = ptid_get_pid (ptid); int ldi_size = 1024; - gdb_byte *ldi = xmalloc (ldi_size); + void *ldi = xmalloc (ldi_size); int rc = -1; while (1) @@ -615,7 +615,7 @@ rs6000_ptrace_ldinfo (ptid_t ptid) ldi = xrealloc (ldi, ldi_size); } - return ldi; + return (gdb_byte *) ldi; } /* Implement the to_xfer_partial target_ops method for -- 2.34.1