> It seems you started from a patch that is different from the > last one I posted.
You are correct; I was working from a link posted to the Cygwin mailing list, which I now realize was out of date. Instead of your version of sh_chars_sh, it had the following: + static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^"; I assumed that there was logic behind that code that I was unfamiliar with, so I decided not to touch that line and went forward with my #ifdef plan. Thanks for catching this; your patch works perfectly and does not demonstrate any of the problems I was encountering before. William Sheehan Builds Engineer / Network Administrator Open Interface North America (206) 315-5584 > -----Original Message----- > From: Eli Zaretskii [mailto:[EMAIL PROTECTED] > Sent: Saturday, September 02, 2006 7:11 AM > To: William Sheehan > Cc: make-w32@gnu.org > Subject: Re: Problems with latest Cygwin make patch;builds OK > but binary segfaults > > > > 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',[Def > ine 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