From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19736 invoked by alias); 19 May 2008 17:07:32 -0000 Received: (qmail 18767 invoked by uid 22791); 19 May 2008 17:07:29 -0000 X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 19 May 2008 17:06:59 +0000 Received: (qmail 17586 invoked from network); 19 May 2008 17:06:57 -0000 Received: from unknown (HELO digraph.polyomino.org.uk) (joseph@127.0.0.2) by mail.codesourcery.com with ESMTPA; 19 May 2008 17:06:57 -0000 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.68) (envelope-from ) id 1Jy8p5-00008l-Lb for gdb-patches@sourceware.org; Mon, 19 May 2008 17:06:55 +0000 Date: Mon, 19 May 2008 20:46:00 -0000 From: "Joseph S. Myers" To: gdb-patches@sourceware.org Subject: --with-pkgversion and --with-bugurl support for GDB Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-05/txt/msg00571.txt.bz2 This patch adds support for the --with-pkgversion and --with-bugurl configure options to GDB. These options are used to specify a version and bug-reporting URL for a packaged version of GDB, and are supported by GCC and GNU Binutils using the same configure macros as this patch makes GDB use. A previous version was submitted by Vladimir in 2006 ; since then, the feature has been added to GCC and GNU Binutils as noted above, so addressing which was the only comment on the previous patch. This patch deals with GDB proper, the manual, gdbserver and gdbreplay (to which previously missing --version and --help support is added). We have a patch for the simulators as well, but I'd like to resolve any issues with this patch before preparing that one for submission. Tested on i686-pc-linux-gnu. OK to commit? 2008-05-19 Vladimir Prus Nathan Sidwell Joseph Myers * acinclude.m4: Include ../config/acx.m4. * configure.ac: Use ACX_PKGVERSION and ACX_BUGURL. * configure: Regenerate. * Makefile.in (PKGVERSION, REPORT_BUGS_TO): Define. (GDB_CFLAGS): Define to include PKGVERSION and REPORT_BUGS_TO settings. * main.c (print_gdb_help): Use REPORT_BUGS_TO for bug-reporting address. * top.c (print_gdb_version): Use PKGVERSION and REPORT_BUGS_TO. doc: 2008-05-19 Vladimir Prus Nathan Sidwell Joseph Myers * configure.ac: Include ../../config/acx.m4. Use ACX_PKGVERSION and ACX_BUGURL. * configure: Regenerate. * Makefile.in (PKGVERSION, BUGURL_TEXI): Define. (GDBvn.texi): Define VERSION_PACKAGE and BUGURL. * gdb.texinfo: Use VERSION_PACKAGE and BUGURL. Remove mailing-list-specific text about bug reporting. gdbserver: 2008-05-19 Vladimir Prus Nathan Sidwell Joseph Myers * acinclude.m4: Include ../../config/acx.m4. * configure.ac: Use ACX_PKGVERSION and ACX_BUGURL. * configure: Regenerate. * Makefile.in (PKGVERSION, REPORT_BUGS_TO): New. (GLOBAL_CFLAGS): Add them. (gdbreplay$(EXEEXT)): Add version.o. * server.c (gdbserver_version): Print PKGVERSION. (gdbsrever_usage): Add stream parameter. Print REPORT_BUGS_TO. (main): Adjust gdbserver_usage calls. * gdbreplay.c (version, host_name): Add declarations. (gdbreplay_version, gdbreplay_usage): New. (main): Accept --version and --help options. Index: gdb/Makefile.in =================================================================== RCS file: /cvs/src/src/gdb/Makefile.in,v retrieving revision 1.1021 diff -u -p -r1.1021 Makefile.in --- gdb/Makefile.in 16 May 2008 12:51:21 -0000 1.1021 +++ gdb/Makefile.in 19 May 2008 15:50:41 -0000 @@ -348,7 +348,11 @@ CONFIG_UNINSTALL = @CONFIG_UNINSTALL@ # your system doesn't have fcntl.h in /usr/include (which is where it # should be according to Posix). DEFS = @DEFS@ -GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config -DLOCALEDIR="\"$(localedir)\"" $(DEFS) +PKGVERSION := "\"@PKGVERSION@\"" +REPORT_BUGS_TO = "\"@REPORT_BUGS_TO@\"" +GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config \ + -DLOCALEDIR="\"$(localedir)\"" -DPKGVERSION=$(PKGVERSION) \ + -DREPORT_BUGS_TO=$(REPORT_BUGS_TO) $(DEFS) # MH_CFLAGS, if defined, has host-dependent CFLAGS from the config directory. GLOBAL_CFLAGS = $(MH_CFLAGS) Index: gdb/acinclude.m4 =================================================================== RCS file: /cvs/src/src/gdb/acinclude.m4,v retrieving revision 1.18 diff -u -p -r1.18 acinclude.m4 --- gdb/acinclude.m4 23 Apr 2008 12:21:47 -0000 1.18 +++ gdb/acinclude.m4 19 May 2008 15:50:42 -0000 @@ -20,6 +20,9 @@ sinclude(../config/lib-ld.m4) sinclude(../config/lib-prefix.m4) sinclude(../config/lib-link.m4) +dnl For ACX_PKGVERSION and ACX_BUGURL. +sinclude(../config/acx.m4) + # # Sometimes the native compiler is a bogus stub for gcc or /usr/ucb/cc. This # makes configure think it's cross compiling. If --target wasn't used, then Index: gdb/configure.ac =================================================================== RCS file: /cvs/src/src/gdb/configure.ac,v retrieving revision 1.68 diff -u -p -r1.68 configure.ac --- gdb/configure.ac 19 Apr 2008 05:06:54 -0000 1.68 +++ gdb/configure.ac 19 May 2008 15:50:44 -0000 @@ -362,6 +362,9 @@ if test "$enable_profiling" = yes ; then CFLAGS="$OLD_CFLAGS" fi +ACX_PKGVERSION([GDB]) +ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) + # --------------------- # # Checks for programs. # # --------------------- # Index: gdb/main.c =================================================================== RCS file: /cvs/src/src/gdb/main.c,v retrieving revision 1.67 diff -u -p -r1.67 main.c --- gdb/main.c 14 Mar 2008 17:21:07 -0000 1.67 +++ gdb/main.c 19 May 2008 15:50:44 -0000 @@ -966,6 +966,9 @@ Options:\n\n\ fputs_unfiltered (_("\n\ For more information, type \"help\" from within GDB, or consult the\n\ GDB manual (available as on-line info or a printed manual).\n\ -Report bugs to \"bug-gdb@gnu.org\".\ "), stream); + if (REPORT_BUGS_TO[0] && stream == gdb_stdout) + fprintf_unfiltered (stream, _("\ +Report bugs to \"%s\".\n\ +"), REPORT_BUGS_TO); } Index: gdb/top.c =================================================================== RCS file: /cvs/src/src/gdb/top.c,v retrieving revision 1.141 diff -u -p -r1.141 top.c --- gdb/top.c 5 May 2008 09:47:46 -0000 1.141 +++ gdb/top.c 19 May 2008 15:50:45 -0000 @@ -1125,7 +1125,7 @@ print_gdb_version (struct ui_file *strea program to parse, and is just canonical program name and version number, which starts after last space. */ - fprintf_filtered (stream, "GNU gdb %s\n", version); + fprintf_filtered (stream, "GNU gdb %s%s\n", PKGVERSION, version); /* Second line is a copyright notice. */ @@ -1154,6 +1154,12 @@ and \"show warranty\" for details.\n"); fprintf_filtered (stream, "%s", host_name); } fprintf_filtered (stream, "\"."); + +#ifdef REPORT_BUGS_TO + fprintf_filtered (stream, + _("\nFor bug reporting instructions, please see:\n")); + fprintf_filtered (stream, "%s.\n", REPORT_BUGS_TO); +#endif } /* get_prompt: access method for the GDB prompt string. */ Index: gdb/doc/Makefile.in =================================================================== RCS file: /cvs/src/src/gdb/doc/Makefile.in,v retrieving revision 1.41 diff -u -p -r1.41 Makefile.in --- gdb/doc/Makefile.in 1 Jan 2008 22:53:14 -0000 1.41 +++ gdb/doc/Makefile.in 19 May 2008 15:50:45 -0000 @@ -61,6 +61,10 @@ TEXI2ROFF=texi2roff # where to find texi2dvi, ditto TEXI2DVI=texi2dvi +# Package version and bug-reporting URL. +PKGVERSION = @PKGVERSION@ +BUGURL_TEXI = @REPORT_BUGS_TEXI@ + # Where is the source dir for the READLINE library doc? # Traditionally readline is in .. or . READLINE_DIR = ${gdbdir}/../readline/doc @@ -279,6 +283,10 @@ refcard.pdf : refcard.tex $(REFEDITS) # File to record current GDB version number (copied from main dir version.in) GDBvn.texi : ${gdbdir}/version.in echo "@set GDBVN `sed q $(srcdir)/../version.in`" > ./GDBvn.new + if [ -n "$(PKGVERSION)" ]; then \ + echo "@set VERSION_PACKAGE $(PKGVERSION)" >> ./GDBvn.new; \ + fi + echo "@set BUGURL $(BUGURL_TEXI)" >> ./GDBvn.new mv GDBvn.new GDBvn.texi # Updated atomically Index: gdb/doc/configure.ac =================================================================== RCS file: /cvs/src/src/gdb/doc/configure.ac,v retrieving revision 1.1 diff -u -p -r1.1 configure.ac --- gdb/doc/configure.ac 7 Jan 2005 21:53:22 -0000 1.1 +++ gdb/doc/configure.ac 19 May 2008 15:50:45 -0000 @@ -1,5 +1,8 @@ AC_PREREQ(2.59) AC_INIT(refcard.tex) +sinclude(../../config/acx.m4) AC_PROG_INSTALL AC_PROG_LN_S +ACX_PKGVERSION([GDB]) +ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) AC_OUTPUT(Makefile) Index: gdb/doc/gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.495 diff -u -p -r1.495 gdb.texinfo --- gdb/doc/gdb.texinfo 9 May 2008 17:02:01 -0000 1.495 +++ gdb/doc/gdb.texinfo 19 May 2008 15:50:51 -0000 @@ -49,6 +49,9 @@ This file documents the @sc{gnu} debugge This is the @value{EDITION} Edition, of @cite{Debugging with @value{GDBN}: the @sc{gnu} Source-Level Debugger} for @value{GDBN} +@ifset VERSION_PACKAGE +@value{VERSION_PACKAGE} +@end ifset Version @value{GDBVN}. Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,@* @@ -72,11 +75,15 @@ developing GNU and promoting software fr @subtitle The @sc{gnu} Source-Level Debugger @sp 1 @subtitle @value{EDITION} Edition, for @value{GDBN} version @value{GDBVN} +@ifset VERSION_PACKAGE +@sp 1 +@subtitle @value{VERSION_PACKAGE} +@end ifset @author Richard Stallman, Roland Pesch, Stan Shebs, et al. @page @tex {\parskip=0pt -\hfill (Send bugs and comments on @value{GDBN} to bug-gdb\@gnu.org.)\par +\hfill (Send bugs and comments on @value{GDBN} to @value{BUGURL}.)\par \hfill {\it Debugging with @value{GDBN}}\par \hfill \TeX{}info \texinfoversion\par } @@ -116,8 +123,11 @@ software in general. We will miss him. This file describes @value{GDBN}, the @sc{gnu} symbolic debugger. -This is the @value{EDITION} Edition, for @value{GDBN} Version -@value{GDBVN}. +This is the @value{EDITION} Edition, for @value{GDBN} +@ifset VERSION_PACKAGE +@value{VERSION_PACKAGE} +@end ifset +Version @value{GDBVN}. Copyright (C) 1988-2006 Free Software Foundation, Inc. @@ -22632,25 +22642,10 @@ individuals in the file @file{etc/SERVIC distribution. @c should add a web page ref... +@ifset BUGURL In any event, we also recommend that you submit bug reports for -@value{GDBN}. The preferred method is to submit them directly using -@uref{http://www.gnu.org/software/gdb/bugs/, @value{GDBN}'s Bugs web -page}. Alternatively, the @email{bug-gdb@@gnu.org, e-mail gateway} can -be used. - -@strong{Do not send bug reports to @samp{info-gdb}, or to -@samp{help-gdb}, or to any newsgroups.} Most users of @value{GDBN} do -not want to receive bug reports. Those that do have arranged to receive -@samp{bug-gdb}. - -The mailing list @samp{bug-gdb} has a newsgroup @samp{gnu.gdb.bug} which -serves as a repeater. The mailing list and the newsgroup carry exactly -the same messages. Often people think of posting bug reports to the -newsgroup instead of mailing them. This appears to work, but it has one -problem which can be crucial: a newsgroup posting often lacks a mail -path back to the sender. Thus, if we need to ask for more information, -we may be unable to reach you. For this reason, it is better to send -bug reports to the mailing list. +@value{GDBN} to @value{BUGURL}. +@end ifset The fundamental principle of reporting bugs usefully is this: @strong{report all the facts}. If you are not sure whether to state a Index: gdb/gdbserver/Makefile.in =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/Makefile.in,v retrieving revision 1.58 diff -u -p -r1.58 Makefile.in --- gdb/gdbserver/Makefile.in 3 May 2008 17:16:43 -0000 1.58 +++ gdb/gdbserver/Makefile.in 19 May 2008 15:50:51 -0000 @@ -87,9 +87,13 @@ READLINE_DEP = $$(READLINE_DIR) # -I$(srcdir)/../regformats for regdef.h. INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../regformats -I$(INCLUDE_DIR) +PKGVERSION := "\"@PKGVERSION@\"" +REPORT_BUGS_TO = "\"@REPORT_BUGS_TO@\"" + # M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS # from the config/ directory. -GLOBAL_CFLAGS = ${MT_CFLAGS} ${MH_CFLAGS} +GLOBAL_CFLAGS = ${MT_CFLAGS} ${MH_CFLAGS} -DPKGVERSION=$(PKGVERSION) \ + -DREPORT_BUGS_TO=$(REPORT_BUGS_TO) #PROFILE_CFLAGS = -pg WARN_CFLAGS = -Wall @@ -194,9 +198,9 @@ gdbserver$(EXEEXT): $(OBS) ${ADD_DEPS} $ ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbserver$(EXEEXT) $(OBS) \ $(GDBSERVER_LIBS) $(XM_CLIBS) -gdbreplay$(EXEEXT): gdbreplay.o +gdbreplay$(EXEEXT): gdbreplay.o version.o rm -f gdbreplay$(EXEEXT) - ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbreplay$(EXEEXT) gdbreplay.o \ + ${CC-LD} $(INTERNAL_CFLAGS) $(INTERNAL_LDFLAGS) -o gdbreplay$(EXEEXT) $^ \ $(XM_CLIBS) # Put the proper machine-specific files first, so M-. on a machine Index: gdb/gdbserver/acinclude.m4 =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/acinclude.m4,v retrieving revision 1.6 diff -u -p -r1.6 acinclude.m4 --- gdb/gdbserver/acinclude.m4 23 Apr 2008 12:21:50 -0000 1.6 +++ gdb/gdbserver/acinclude.m4 19 May 2008 15:50:51 -0000 @@ -4,6 +4,9 @@ sinclude(../../bfd/bfd.m4) dnl This gets autoconf bugfixes sinclude(../../config/override.m4) +dnl For ACX_PKGVERSION and ACX_BUGURL. +sinclude(../../config/acx.m4) + AC_DEFUN([SRV_CHECK_THREAD_DB], [AC_CACHE_CHECK([for libthread_db],[srv_cv_thread_db], [old_LIBS="$LIBS" Index: gdb/gdbserver/configure.ac =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/configure.ac,v retrieving revision 1.22 diff -u -p -r1.22 configure.ac --- gdb/gdbserver/configure.ac 14 Apr 2008 18:04:00 -0000 1.22 +++ gdb/gdbserver/configure.ac 19 May 2008 15:50:52 -0000 @@ -68,6 +68,9 @@ AC_CHECK_TYPES(socklen_t, [], [], #include ]) +ACX_PKGVERSION([GDB]) +ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) + . ${srcdir}/configure.srv if test "${srv_mingwce}" = "yes"; then Index: gdb/gdbserver/gdbreplay.c =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/gdbreplay.c,v retrieving revision 1.16 diff -u -p -r1.16 gdbreplay.c --- gdb/gdbserver/gdbreplay.c 1 Jan 2008 22:53:14 -0000 1.16 +++ gdb/gdbserver/gdbreplay.c 19 May 2008 15:50:52 -0000 @@ -69,6 +69,10 @@ typedef int socklen_t; /* Sort of a hack... */ #define EOL (EOF - 1) +/* Version information, from version.c. */ +extern const char version[]; +extern const char host_name[]; + static int remote_desc; #ifdef __MINGW32CE__ @@ -387,16 +391,44 @@ play (FILE *fp) } } +static void +gdbreplay_version (void) +{ + printf ("GNU gdbreplay %s%s\n" + "Copyright (C) 2008 Free Software Foundation, Inc.\n" + "gdbserver is free software, covered by the GNU General Public License.\n" + "This gdbserver was configured as \"%s\"\n", + PKGVERSION, version, host_name); +} + +static void +gdbreplay_usage (FILE *stream) +{ + fprintf (stream, "Usage:\tgdbreplay \n"); + if (REPORT_BUGS_TO[0] && stream == stdout) + fprintf (stream, "Report bugs to \"%s\".\n", REPORT_BUGS_TO); +} + int main (int argc, char *argv[]) { FILE *fp; int ch; + if (argc >= 2 && strcmp (argv[1], "--version") == 0) + { + gdbreplay_version (); + exit (0); + } + if (argc >= 2 && strcmp (argv[1], "--help") == 0) + { + gdbreplay_usage (stdout); + exit (0); + } + if (argc < 3) { - fprintf (stderr, "Usage: gdbreplay \n"); - fflush (stderr); + gdbreplay_usage (stderr); exit (1); } fp = fopen (argv[1], "r"); Index: gdb/gdbserver/server.c =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/server.c,v retrieving revision 1.72 diff -u -p -r1.72 server.c --- gdb/gdbserver/server.c 9 May 2008 17:37:36 -0000 1.72 +++ gdb/gdbserver/server.c 19 May 2008 15:50:52 -0000 @@ -1178,26 +1178,28 @@ myresume (char *own_buf, int step, int * static void gdbserver_version (void) { - printf ("GNU gdbserver %s\n" + printf ("GNU gdbserver %s%s\n" "Copyright (C) 2007 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); + PKGVERSION, version, host_name); } static void -gdbserver_usage (void) +gdbserver_usage (FILE *stream) { - printf ("Usage:\tgdbserver [OPTIONS] COMM PROG [ARGS ...]\n" - "\tgdbserver [OPTIONS] --attach COMM PID\n" - "\tgdbserver [OPTIONS] --multi COMM\n" - "\n" - "COMM may either be a tty device (for serial debugging), or \n" - "HOST:PORT to listen for a TCP connection.\n" - "\n" - "Options:\n" - " --debug\t\tEnable debugging output.\n" - " --wrapper WRAPPER --\tRun WRAPPER to start new programs.\n"); + fprintf (stream, "Usage:\tgdbserver [OPTIONS] COMM PROG [ARGS ...]\n" + "\tgdbserver [OPTIONS] --attach COMM PID\n" + "\tgdbserver [OPTIONS] --multi COMM\n" + "\n" + "COMM may either be a tty device (for serial debugging), or \n" + "HOST:PORT to listen for a TCP connection.\n" + "\n" + "Options:\n" + " --debug\t\tEnable debugging output.\n" + " --wrapper WRAPPER --\tRun WRAPPER to start new programs.\n"); + if (REPORT_BUGS_TO[0] && stream == stdout) + fprintf (stream, "Report bugs to \"%s\".\n", REPORT_BUGS_TO); } #undef require_running @@ -1234,7 +1236,7 @@ main (int argc, char *argv[]) } else if (strcmp (*next_arg, "--help") == 0) { - gdbserver_usage (); + gdbserver_usage (stdout); exit (0); } else if (strcmp (*next_arg, "--attach") == 0) @@ -1251,7 +1253,7 @@ main (int argc, char *argv[]) if (next_arg == wrapper_argv || *next_arg == NULL) { - gdbserver_usage (); + gdbserver_usage (stderr); exit (1); } @@ -1280,7 +1282,7 @@ main (int argc, char *argv[]) next_arg++; if (port == NULL || (!attach && !multi_mode && *next_arg == NULL)) { - gdbserver_usage (); + gdbserver_usage (stderr); exit (1); } @@ -1305,7 +1307,7 @@ main (int argc, char *argv[]) if (bad_attach) { - gdbserver_usage (); + gdbserver_usage (stderr); exit (1); } -- Joseph S. Myers joseph@codesourcery.com