make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with latest Cygwin make patch; builds OK but binary segfaul


From: Eli Zaretskii
Subject: Re: Problems with latest Cygwin make patch; builds OK but binary segfaults
Date: Sat, 02 Sep 2006 17:11:17 +0300

> From: "William Sheehan" <address@hidden>
> 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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]