From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eli Zaretskii To: gdb-patches@sources.redhat.com Cc: Christopher Faylor Subject: [RFA] Re: DOS/Windows-specific code: cli-cmds.c Date: Sun, 10 Jun 2001 06:27:00 -0000 Message-id: <200106101328.QAA08000@is.elta.co.il> References: <20010503211502.21716.qmail@web6401.mail.yahoo.com> <3AF1DAA0.3060702@cygnus.com> <200105071609.TAA24129@is.elta.co.il> <200105081141.OAA06131@is.elta.co.il> X-SW-Source: 2001-06/msg00196.html > Date: Tue, 8 May 2001 14:41:53 +0300 (IDT) > From: Eli Zaretskii > > * cli-cmds.c: > > /* FIXME: this should be auto-configured! */ > #ifdef __MSDOS__ > # define CANT_FORK > #endif > > This seems to cry for either an Autoconf test (based on whether the > compiler defines __MSDOS__ or not) or perhaps the whole snippet should > be moved to config/i386/xm-go32.h. > > > * cli-cmds.c:shell_escape() > > #ifdef __DJGPP__ > /* Make sure to return to the directory GDB thinks it is, in case the > shell command we just ran changed it. */ > chdir (current_directory); > #endif > > This code is there because the current working directory is a global > notion (as opposed to being private to each process on Posix > systems). Windows ports, at least the non-Cygwin ones, probably want > this as well. Suggestions how to test this, anyone? Should we define > a GLOBAL_CURDIR macro (zero by default)? Here's the patch to fix these two issues. Okay to commit? 2001-06-10 Eli Zaretskii * cli/cli-cmds.c (shell_escape) [GLOBAL_CURDIR]: Condition the call to chdir on this symbol rather than on __DJGPP__. (CANT_FORK) [__MSDOS__]: Move from here... * defs.h (CANT_FORK) [__MSDOS__]: ...to here. (GLOBAL_CURDIR) [__MSDOS__]: Define. --- gdb/defs.h~0 Mon Jun 4 09:38:04 2001 +++ gdb/defs.h Sun Jun 10 16:08:22 2001 @@ -1372,6 +1372,11 @@ #endif #endif +#ifdef __MSDOS__ +# define CANT_FORK +# define GLOBAL_CURDIR +#endif + /* Provide default definitions of PIDGET, TIDGET, and MERGEPID. The name ``TIDGET'' is a historical accident. Many uses of TIDGET in the code actually refer to a lightweight process id, i.e, --- gdb/cli/cli-cmds.c~0 Wed Jun 6 12:25:24 2001 +++ gdb/cli/cli-cmds.c Sun Jun 10 16:10:18 2001 @@ -39,11 +39,6 @@ #define GDBINIT_FILENAME ".gdbinit" #endif -/* FIXME: this should be auto-configured! */ -#ifdef __MSDOS__ -# define CANT_FORK -#endif - /* From gdb/top.c */ extern void dont_repeat (void); @@ -454,7 +449,7 @@ fprintf_unfiltered (gdb_stderr, "%s exited with status %d\n", arg, rc); gdb_flush (gdb_stderr); } -#ifdef __DJGPP__ +#ifdef GLOBAL_CURDIR /* Make sure to return to the directory GDB thinks it is, in case the shell command we just ran changed it. */ chdir (current_directory);