> From: "William Sheehan" <[EMAIL PROTECTED]> > Date: Fri, 25 Aug 2006 10:52:00 -0700 > > > Please rune "make check" on the version of Make you think > > fixes the problem. If all the tests pass, please post here a > > patch that you used to fix the recursion problem. Thanks. > > Done; the patch is attached. Running make check came back with zero > failures and a nice smiley face. The patch has the same content as Bill > Hoffman's patch, plus my modifications for job.c.
I'm looking at the patch you sent, and I'm confused: I don't understand how could it solve the recursion problem. It seems you started from a patch that is different from the last one I posted. My last patch defines sh_chars_sh so that its value is _identical_ to sh_chars. Thus, any changes that replace sh_chars with sh_chars_sh do not change anything at all. Could you please try the original patch I posted here (reproduced below for your convenience), and see if the recursion problem happens with it? If it does, please try to find what needs to be changed after the patches below. Thanks. Here's the patch I posted after Chris suggested to modify the original one. Please apply it to the original unmodified sources of Make 3.81. --- configure.in~0 2006-04-01 12:36:40.000000000 +0300 +++ configure.in 2006-08-18 21:12:32.828125000 +0300 @@ -384,6 +384,8 @@ ;; esac +AC_DEFINE_UNQUOTED(PATH_SEPARATOR_CHAR,'$PATH_SEPARATOR',[Define to the character that separates directories in PATH.]) + # Include the Maintainer's Makefile section, if it's here. MAINT_MAKEFILE=/dev/null --- make.h~0 2006-02-16 03:54:43.000000000 +0200 +++ make.h 2006-08-18 21:12:32.859375000 +0300 @@ -347,12 +347,14 @@ #define S_(msg1,msg2,num) ngettext (msg1,msg2,num) /* Handle other OSs. */ -#if defined(HAVE_DOS_PATHS) -# define PATH_SEPARATOR_CHAR ';' -#elif defined(VMS) -# define PATH_SEPARATOR_CHAR ',' -#else -# define PATH_SEPARATOR_CHAR ':' +#ifndef PATH_SEPARATOR_CHAR +# if defined(HAVE_DOS_PATHS) +# define PATH_SEPARATOR_CHAR ';' +# elif defined(VMS) +# define PATH_SEPARATOR_CHAR ',' +# else +# define PATH_SEPARATOR_CHAR ':' +# endif #endif /* This is needed for getcwd() and chdir(). */ --- config/dospaths.m4~0 2006-03-10 06:20:45.000000000 +0200 +++ config/dospaths.m4 2006-08-18 21:12:32.859375000 +0300 @@ -22,7 +22,7 @@ AC_CACHE_CHECK([whether system uses MSDOS-style paths], [ac_cv_dos_paths], [ AC_COMPILE_IFELSE([ -#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__ +#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__ && !defined __CYGWIN__ neither MSDOS nor Windows nor OS2 #endif ], --- job.c~0 2006-03-20 07:03:04.000000000 +0200 +++ job.c 2006-08-19 09:25:07.687500000 +0300 @@ -2307,6 +2307,12 @@ construct_command_argv_internal (char *l "login", "logout", "read", "readonly", "set", "shift", "switch", "test", "times", "trap", "umask", "wait", "while", 0 }; +# ifdef HAVE_DOS_PATHS + /* This is required if the MSYS/Cygwin ports (which do not define + WINDOWS32) are compiled with HAVE_DOS_PATHS defined, which uses + sh_chars_sh[] directly (see below). */ + static char *sh_chars_sh = sh_chars; +# endif /* HAVE_DOS_PATHS */ #endif register int i; register char *p; _______________________________________________ Make-w32 mailing list Make-w32@gnu.org http://lists.gnu.org/mailman/listinfo/make-w32