From e655c1a2f59367d66f81e446f39b84e9eeee1465 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Mon, 1 Jul 2013 11:24:17 +0000 Subject: [PATCH] Reimplement DJGPP's .gdbinit -> gdb.ini renaming. This simplifies the .gdbinit filename selection logic. We have a GDBINIT_FILENAME define that supposedly configurations would override, but none do so. Instead, the only configuration that wants a different file name instead of ".gdbinit", djgpp, does a strcpy over the gdbinit global array. This means the array needs to be sized, and the code that does that is doing the usual 'PATH_MAX/FILENAME_MAX/fallback constant/etc.' mess. Instead of all that, it's much simpler to have configure specificy the .gdbinit filename. As bonus, we can then make the "gdbinit" global array const. gdb/ 2013-07-01 Pedro Alves * configure.ac (GDBINIT): Define, depending on host. * go32-nat.c (init_go32_ops): Don't override gdbinit here. * top.c (PATH_MAX): Delete fallback definition. (GDBINIT_FILENAME): Delete. (gdbinit): Reimplement as const char array set to the GDBINIT string constant. * top.h (gdbinit): Make const. --- gdb/ChangeLog | 11 +++++++++++ gdb/config.in | 3 +++ gdb/configure | 14 ++++++++++++++ gdb/configure.ac | 11 +++++++++++ gdb/go32-nat.c | 3 --- gdb/top.c | 15 ++------------- gdb/top.h | 2 +- 7 files changed, 42 insertions(+), 17 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7edc65ad5aa..5a21e6b6dd6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2013-07-01 Pedro Alves + + * configure.ac (GDBINIT): Define, depending on host. + * go32-nat.c (init_go32_ops): Don't override gdbinit here. + * top.c (PATH_MAX): Delete fallback definition. + (GDBINIT_FILENAME): Delete. + (gdbinit): Reimplement as const char array set to the GDBINIT + string constant. + * top.h (gdbinit): Make const. + * configure, config.in: Regenerate. + 2013-07-01 Pedro Alves * cli/cli-cmds.c (source_script): Make 'file' parameter const. diff --git a/gdb/config.in b/gdb/config.in index 7cd22e315c6..92c278978f3 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -37,6 +37,9 @@ language is requested. */ #undef ENABLE_NLS +/* The .gdbinit filename. */ +#undef GDBINIT + /* look for global separate data files in this path [DATADIR/gdb] */ #undef GDB_DATADIR diff --git a/gdb/configure b/gdb/configure index 383d6348f90..dab0d204bcf 100755 --- a/gdb/configure +++ b/gdb/configure @@ -12329,6 +12329,20 @@ $as_echo "#define HAVE_PERSONALITY 1" >>confdefs.h fi +case $host_os in + go32* | *djgpp*) + gdbinit=gdb.ini + ;; + *) + gdbinit=.gdbinit + ;; +esac + +cat >>confdefs.h <<_ACEOF +#define GDBINIT "$gdbinit" +_ACEOF + + # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, # except that the argument to --with-sysroot is optional. diff --git a/gdb/configure.ac b/gdb/configure.ac index 46a97bd0dc1..e378bde2393 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1881,6 +1881,17 @@ then [Define if you support the personality syscall.]) fi +dnl Set the host's .gdbinit filename. +case $host_os in + go32* | *djgpp*) + gdbinit=gdb.ini + ;; + *) + gdbinit=.gdbinit + ;; +esac +AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) + dnl Handle optional features that can be enabled. # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c index a3f75b29a00..4dac617a7e8 100644 --- a/gdb/go32-nat.c +++ b/gdb/go32-nat.c @@ -1028,9 +1028,6 @@ init_go32_ops (void) /* We are always processing GCC-compiled programs. */ processing_gcc_compilation = 2; - - /* Override the default name of the GDB init file. */ - strcpy (gdbinit, "gdb.ini"); } /* Return the current DOS codepage number. */ diff --git a/gdb/top.c b/gdb/top.c index 8ac756f11f9..e78897f36c9 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -78,20 +78,9 @@ extern void initialize_all_files (void); #define DEFAULT_PROMPT "(gdb) " #endif -/* Initialization file name for gdb. This is overridden in some configs. */ - -#ifndef PATH_MAX -# ifdef FILENAME_MAX -# define PATH_MAX FILENAME_MAX -# else -# define PATH_MAX 512 -# endif -#endif +/* Initialization file name for gdb. This is host-dependent. */ -#ifndef GDBINIT_FILENAME -#define GDBINIT_FILENAME ".gdbinit" -#endif -char gdbinit[PATH_MAX + 1] = GDBINIT_FILENAME; +const char gdbinit[] = GDBINIT; int inhibit_gdbinit = 0; diff --git a/gdb/top.h b/gdb/top.h index 44aefb1fa95..2f70539630a 100644 --- a/gdb/top.h +++ b/gdb/top.h @@ -28,7 +28,7 @@ extern int in_user_command; extern int confirm; extern char gdb_dirbuf[1024]; extern int inhibit_gdbinit; -extern char gdbinit[]; +extern const char gdbinit[]; extern void print_gdb_version (struct ui_file *); extern void print_gdb_configuration (struct ui_file *); -- 2.30.2