From 80fd2826411c1033ec403658c5f3187bf9c1740a Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 1 Oct 2019 06:52:44 -0600 Subject: [PATCH] Fix type of startup_with_shell in gdbserver startup_with_shell was changed to be of "bool" type, but I noticed that the definition in gdbserver disagreed. This disagreement caused some regressions on a big-endian machine. This patch removes the redundant declaration and definition of startup_with_shell and ensures that such clashes will be diagnosed. This moves the declaration to common-inferior.h, and introduces a new common-inferior.c, as suggested by Pedro. gdb/ChangeLog 2019-10-02 Tom Tromey * Makefile.in (COMMON_SFILES): Add common-inferior.c. * gdbsupport/common-inferior.c: New file. * infcmd.c (startup_with_shell): Don't define. * nat/fork-inferior.h (startup_with_shell): Don't declare. * gdbsupport/common-inferior.h (startup_with_shell): Declare. * inferior.h (startup_with_shell): Don't declare. gdb/gdbserver/ChangeLog 2019-10-02 Tom Tromey * Makefile.in (SFILES): Add common-inferior.c. (OBS): Add common-inferior.o. * server.c (startup_with_shell): Don't define. --- gdb/ChangeLog | 9 +++++++++ gdb/Makefile.in | 1 + gdb/gdbserver/ChangeLog | 6 ++++++ gdb/gdbserver/Makefile.in | 2 ++ gdb/gdbserver/server.c | 6 ------ gdb/gdbsupport/common-inferior.c | 26 ++++++++++++++++++++++++++ gdb/gdbsupport/common-inferior.h | 20 ++++++++++++++++++++ gdb/infcmd.c | 4 ---- gdb/inferior.h | 19 ------------------- gdb/nat/fork-inferior.h | 20 -------------------- 10 files changed, 64 insertions(+), 49 deletions(-) create mode 100644 gdb/gdbsupport/common-inferior.c diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 03c249815e..13a1e46ca2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2019-10-02 Tom Tromey + + * Makefile.in (COMMON_SFILES): Add common-inferior.c. + * gdbsupport/common-inferior.c: New file. + * infcmd.c (startup_with_shell): Don't define. + * nat/fork-inferior.h (startup_with_shell): Don't declare. + * gdbsupport/common-inferior.h (startup_with_shell): Declare. + * inferior.h (startup_with_shell): Don't declare. + 2019-10-02 Christian Biesinger * gdbsupport/gdb_assert.h: Include errors.h. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index d628263675..81bed9085a 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -953,6 +953,7 @@ COMMON_SFILES = \ gdbsupport/cleanups.c \ gdbsupport/common-debug.c \ gdbsupport/common-exceptions.c \ + gdbsupport/common-inferior.c \ gdbsupport/common-regcache.c \ gdbsupport/common-utils.c \ gdbsupport/errors.c \ diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 7eef2c54cb..0108d6d152 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,9 @@ +2019-10-02 Tom Tromey + + * Makefile.in (SFILES): Add common-inferior.c. + (OBS): Add common-inferior.o. + * server.c (startup_with_shell): Don't define. + 2019-10-02 Andrew Burgess * linux-low.c (linux_low_read_btrace): Update for change to diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index ca0a4cbd10..d79424b5ac 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -203,6 +203,7 @@ SFILES = \ $(srcdir)/gdbsupport/cleanups.c \ $(srcdir)/gdbsupport/common-debug.c \ $(srcdir)/gdbsupport/common-exceptions.c \ + $(srcdir)/gdbsupport/common-inferior.c \ $(srcdir)/gdbsupport/common-regcache.c \ $(srcdir)/gdbsupport/common-utils.c \ $(srcdir)/gdbsupport/errors.c \ @@ -248,6 +249,7 @@ OBS = \ gdbsupport/cleanups.o \ gdbsupport/common-debug.o \ gdbsupport/common-exceptions.o \ + gdbsupport/common-inferior.o \ gdbsupport/job-control.o \ gdbsupport/common-regcache.o \ gdbsupport/common-utils.o \ diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 67e8e3e54d..8ee551828d 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -67,12 +67,6 @@ char *current_directory; static gdb_environ our_environ; -/* Start the inferior using a shell. */ - -/* We always try to start the inferior using a shell. */ - -int startup_with_shell = 1; - int server_waiting; static int extended_protocol; diff --git a/gdb/gdbsupport/common-inferior.c b/gdb/gdbsupport/common-inferior.c new file mode 100644 index 0000000000..3a7c873f1e --- /dev/null +++ b/gdb/gdbsupport/common-inferior.c @@ -0,0 +1,26 @@ +/* Functions to deal with the inferior being executed on GDB or + GDBserver. + + Copyright (C) 2019 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include "gdbsupport/common-defs.h" +#include "gdbsupport/common-inferior.h" + +/* See common-inferior.h. */ + +bool startup_with_shell = true; diff --git a/gdb/gdbsupport/common-inferior.h b/gdb/gdbsupport/common-inferior.h index 72e4bd9eac..77d4ad93d3 100644 --- a/gdb/gdbsupport/common-inferior.h +++ b/gdb/gdbsupport/common-inferior.h @@ -38,4 +38,24 @@ extern const char *get_inferior_cwd (); the directory. */ extern void set_inferior_cwd (const char *cwd); +/* Whether to start up the debuggee under a shell. + + If startup-with-shell is set, GDB's "run" will attempt to start up + the debuggee under a shell. This also happens when using GDBserver + under extended remote mode. + + This is in order for argument-expansion to occur. E.g., + + (gdb) run * + + The "*" gets expanded by the shell into a list of files. + + While this is a nice feature, it may be handy to bypass the shell + in some cases. To disable this feature, do "set startup-with-shell + false". + + The catch-exec traps expected during start-up will be one more if + the target is started up with a shell. */ +extern bool startup_with_shell; + #endif /* COMMON_COMMON_INFERIOR_H */ diff --git a/gdb/infcmd.c b/gdb/infcmd.c index 20523fed53..71057748fd 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -104,10 +104,6 @@ enum stop_stack_kind stop_stack_dummy; int stopped_by_random_signal; -/* See inferior.h. */ - -bool startup_with_shell = true; - /* Accessor routines. */ diff --git a/gdb/inferior.h b/gdb/inferior.h index 3a64a7cfea..43f0417e62 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -227,25 +227,6 @@ extern struct value *get_return_value (struct value *function, extern void prepare_execution_command (struct target_ops *target, int background); -/* Whether to start up the debuggee under a shell. - - If startup-with-shell is set, GDB's "run" will attempt to start up - the debuggee under a shell. - - This is in order for argument-expansion to occur. E.g., - - (gdb) run * - - The "*" gets expanded by the shell into a list of files. - - While this is a nice feature, it may be handy to bypass the shell - in some cases. To disable this feature, do "set startup-with-shell - false". - - The catch-exec traps expected during start-up will be one more if - the target is started up with a shell. */ -extern bool startup_with_shell; - /* Nonzero if stopped due to completion of a stack dummy routine. */ extern enum stop_stack_kind stop_stack_dummy; diff --git a/gdb/nat/fork-inferior.h b/gdb/nat/fork-inferior.h index 065496c382..0a76ff82d3 100644 --- a/gdb/nat/fork-inferior.h +++ b/gdb/nat/fork-inferior.h @@ -54,26 +54,6 @@ extern ptid_t startup_inferior (pid_t pid, int ntraps, struct target_waitstatus *mystatus, ptid_t *myptid); -/* Whether to start up the debuggee under a shell. - - If startup-with-shell is set, GDB's "run" will attempt to start up - the debuggee under a shell. This also happens when using GDBserver - under extended remote mode. - - This is in order for argument-expansion to occur. E.g., - - (gdb) run * - - The "*" gets expanded by the shell into a list of files. - - While this is a nice feature, it may be handy to bypass the shell - in some cases. To disable this feature, do "set startup-with-shell - false". - - The catch-exec traps expected during start-up will be one more if - the target is started up with a shell. */ -extern bool startup_with_shell; - /* Perform any necessary tasks before a fork/vfork takes place. ARGS is a string containing all the arguments received by the inferior. This function is mainly used by fork_inferior. */ -- 2.34.1