From: Pedro Alves Date: Thu, 21 Jul 2016 12:02:34 +0000 (+0100) Subject: Fix djgpp gdb build X-Git-Tag: gdb-7.12-release~183 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f515a1d643b599ebb8a23d3d95e9f0dfc8261a11;p=thirdparty%2Fbinutils-gdb.git Fix djgpp gdb build - A few missing casts required by C++, resulting in: ../../src/gdb/ser-go32.c:795:21: error: invalid conversion from 'const void*' to 'const char*' [-fpermissive] etc. - dos_noop has an incompatible prototype with struct serial_ops's setparity, resulting in: ../../src/gdb/ser-go32.c:874:1: error: invalid conversion from 'int (*)(serial*)' to 'int (*)(serial*, int)' [-fpermissive] (I thought of calling the ser-base.c default methods, but djgpp doesn't include ser-base.c in the build.) gdb/ChangeLog: 2016-07-21 Pedro Alves * go32-nat.c (go32_create_inferior): Add cast. * ser-go32.c (dos_noop): Delete. (dos_flush_output, dos_setparity, dos_drain_output): New functions. (dos_write): Add cast. (dos_ops): Use dos_flush_output, dos_setparity and dos_drain_output. * top.c (do_chdir_cleanup): Add cast. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5eeec97f8ec..47faef2054d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2016-07-21 Pedro Alves + + * go32-nat.c (go32_create_inferior): Add cast. + * ser-go32.c (dos_noop): Delete. + (dos_flush_output, dos_setparity, dos_drain_output): New + functions. + (dos_write): Add cast. + (dos_ops): Use dos_flush_output, dos_setparity and + dos_drain_output. + * top.c (do_chdir_cleanup): Add cast. + 2016-07-21 Pedro Alves * windows-nat.c (handle_exception): Remove "th". diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c index 91c6d1e5f12..6e608e2e83b 100644 --- a/gdb/go32-nat.c +++ b/gdb/go32-nat.c @@ -677,7 +677,7 @@ go32_create_inferior (struct target_ops *ops, char *exec_file, if (cmdlen > 1024*1024) error (_("Command line too long.")); - cmdline = xmalloc (cmdlen + 4); + cmdline = (char *) xmalloc (cmdlen + 4); strcpy (cmdline + 1, args); /* If the command-line length fits into DOS 126-char limits, use the DOS command tail format; otherwise, tell v2loadimage to pass it diff --git a/gdb/ser-go32.c b/gdb/ser-go32.c index 10c79bacc05..a9c3d910203 100644 --- a/gdb/ser-go32.c +++ b/gdb/ser-go32.c @@ -593,9 +593,26 @@ dos_close (struct serial *scb) } +/* Implementation of the serial_ops flush_output method. */ static int -dos_noop (struct serial *scb) +dos_flush_output (struct serial *scb) +{ + return 0; +} + +/* Implementation of the serial_ops setparity method. */ + +static int +dos_setparity (struct serial *scb, int parity) +{ + return 0; +} + +/* Implementation of the serial_ops drain_output method. */ + +static int +dos_drain_output (struct serial *scb) { return 0; } @@ -792,7 +809,7 @@ dos_write (struct serial *scb, const void *buf, size_t count) size_t fifosize = port->fifo ? 16 : 1; long then; size_t cnt; - const char *str = buf; + const char *str = (const char *) buf; while (count > 0) { @@ -857,7 +874,7 @@ static const struct serial_ops dos_ops = NULL, /* fdopen, not implemented */ dos_readchar, dos_write, - dos_noop, /* flush output */ + dos_flush_output, dos_flush_input, dos_sendbreak, dos_raw, @@ -868,8 +885,8 @@ static const struct serial_ops dos_ops = dos_noflush_set_tty_state, dos_setbaudrate, dos_setstopbits, - dos_noop, - dos_noop, /* Wait for output to drain. */ + dos_setparity, + dos_drain_output, (void (*)(struct serial *, int))NULL /* Change into async mode. */ }; diff --git a/gdb/top.c b/gdb/top.c index 3174f3c62f0..d5666778733 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -470,7 +470,7 @@ void (*pre_init_ui_hook) (void); static void do_chdir_cleanup (void *old_dir) { - chdir (old_dir); + chdir ((const char *) old_dir); xfree (old_dir); } #endif