From dd24457ddffffda0617dda1beb6f21cf6bd87901 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Wed, 1 Feb 2006 21:37:21 +0000 Subject: [PATCH] * Makefile.in (OBS): Add version.o. (STAGESTUFF): Delete. (version.o): Add dependencies. (version.c): Replace rule. (clean): Remove version.c. * server.c (gdbserver_version): New. (gdbserver_usage): Use printf. (main): Handle --version and --help. * server.h (version, host_name): Add declarations. --- gdb/gdbserver/ChangeLog | 12 ++++++++++++ gdb/gdbserver/Makefile.in | 17 +++++++++++------ gdb/gdbserver/server.c | 39 ++++++++++++++++++++++++++++++++------- gdb/gdbserver/server.h | 4 ++++ 4 files changed, 59 insertions(+), 13 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 0bcb814739..94190402c8 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,15 @@ +2006-02-01 Daniel Jacobowitz + + * Makefile.in (OBS): Add version.o. + (STAGESTUFF): Delete. + (version.o): Add dependencies. + (version.c): Replace rule. + (clean): Remove version.c. + * server.c (gdbserver_version): New. + (gdbserver_usage): Use printf. + (main): Handle --version and --help. + * server.h (version, host_name): Add declarations. + 2005-12-23 Eli Zaretskii * linux-arm-low.c: diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 48aa2e730c..19ee78b221 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -1,5 +1,6 @@ # Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. # This file is part of GDB. @@ -134,7 +135,7 @@ SOURCES = $(SFILES) TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS} OBS = inferiors.o regcache.o remote-utils.o server.o signals.o target.o \ - utils.o \ + utils.o version.o \ mem-break.o \ $(DEPFILES) GDBSERVER_LIBS = @GDBSERVER_LIBS@ @@ -200,6 +201,7 @@ tags: TAGS clean: rm -f *.o ${ADD_FILES} *~ + rm -f version.c rm -f gdbserver gdbreplay core make.log rm -f reg-arm.c reg-i386.c reg-ia64.c reg-m32r.c reg-m68k.c reg-mips.c rm -f reg-ppc.c reg-sh.c reg-x86-64.c reg-i386-linux.c @@ -209,8 +211,6 @@ maintainer-clean realclean distclean: clean rm -f nm.h tm.h xm.h config.status config.h stamp-h config.log rm -f Makefile -STAGESTUFF=${OBS} ${TSOBS} ${NTSOBS} ${ADD_FILES} init.c init.o version.c gdb - config.h: stamp-h ; @true stamp-h: config.in config.status CONFIG_FILES="" CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status @@ -223,8 +223,13 @@ config.status: configure configure.srv force: -version.c: Makefile - echo 'char *version = "$(VERSION)";' >version.c +version.c: Makefile $(srcdir)/../version.in + rm -f version.c-tmp version.c + echo '#include "server.h"' >> version.c-tmp + echo 'const char version[] = "'"`sed q ${srcdir}/../version.in`"'";' >> version.c-tmp + echo 'const char host_name[] = "$(host_alias)";' >> version.c-tmp + mv version.c-tmp version.c +version.o: version.c $(server_h) # GNU Make has an annoying habit of putting *all* the Makefile variables # into the environment, unless you include this target as a circumvention. diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index fc90e7496b..9ea2b72055 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -1,6 +1,6 @@ /* Main code for remote server for GDB. Copyright (C) 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004, - 2005 + 2005, 2006 Free Software Foundation, Inc. This file is part of GDB. @@ -308,14 +308,24 @@ myresume (int step, int sig) static int attached; +static void +gdbserver_version (void) +{ + printf ("GNU gdbserver %s\n" + "Copyright (C) 2006 Free Software Foundation, Inc.\n" + "gdbserver is free software, covered by the GNU General Public License.\n" + "This gdbserver was configured as \"%s\"\n", + version, host_name); +} + static void gdbserver_usage (void) { - error ("Usage:\tgdbserver COMM PROG [ARGS ...]\n" - "\tgdbserver COMM --attach PID\n" - "\n" - "COMM may either be a tty device (for serial debugging), or \n" - "HOST:PORT to listen for a TCP connection.\n"); + printf ("Usage:\tgdbserver COMM PROG [ARGS ...]\n" + "\tgdbserver COMM --attach PID\n" + "\n" + "COMM may either be a tty device (for serial debugging), or \n" + "HOST:PORT to listen for a TCP connection.\n"); } int @@ -331,6 +341,18 @@ main (int argc, char *argv[]) int pid; char *arg_end; + if (argc >= 2 && strcmp (argv[1], "--version") == 0) + { + gdbserver_version (); + exit (0); + } + + if (argc >= 2 && strcmp (argv[1], "--help") == 0) + { + gdbserver_usage (); + exit (0); + } + if (setjmp (toplevel)) { fprintf (stderr, "Exiting\n"); @@ -354,7 +376,10 @@ main (int argc, char *argv[]) } if (argc < 3 || bad_attach) - gdbserver_usage(); + { + gdbserver_usage (); + exit (1); + } initialize_low (); diff --git a/gdb/gdbserver/server.h b/gdb/gdbserver/server.h index d5e51a55a7..88d35d0413 100644 --- a/gdb/gdbserver/server.h +++ b/gdb/gdbserver/server.h @@ -181,4 +181,8 @@ void init_registers (void); ? (registers_length () + 32) \ : 2000) +/* Version information, from version.c. */ +extern const char version[]; +extern const char host_name[]; + #endif /* SERVER_H */ -- 2.34.1