bug-make
[Top][All Lists]
Advanced

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

Re: make 3.81rc1 / MSYS


From: Eli Zaretskii
Subject: Re: make 3.81rc1 / MSYS
Date: Fri, 03 Mar 2006 19:38:21 +0200

> From: David Ergo <address@hidden>
> Date: Tue, 28 Feb 2006 13:08:10 +0100
> Cc: Xavier Marichal <address@hidden>,
>       =?ISO-8859-1?Q?S=E9bastien?= Frippiat <address@hidden>
> I managed to compile a working version of make 3.81rc1 for MSYS but I
> had do some modifications.
> 
> first config/config.guess and config/config.sub must be simply patched
> to support MSYS build system (see config_msys.patch in attachment).
> 
> sources must be patched (bugs correction) like specified hereunder (also
> in sources_msys.patch in attachment) :

Thank you for your report.  However:

> file job.c, at line 2525 :
>   && strchr (sh_chars_sh, p[1]) == 0)
> should be :
>   && strchr (sh_chars, p[1]) == 0)
> 
> file implicit.c, at line 355 :
>   if (!check_lastslash)
> should be :
>   if (check_lastslash)
> 
> file make.h, at line 350 : 
>   #if defined(HAVE_DOS_PATHS)
> should be :
>   #if defined(HAVE_DOS_PATHS) && !defined(__MSYS__)

Sorry, it seems I don't understand enough about MSYS-specific issues
to figure out these problems.  sh_chars[] does not exist in the
WINDOWS32 build; are you saying that you are building the Unix parts
of the code?  I always thought that MSYS builds are actually MinGW
builds, i.e. they use the Windows runtime DLL's, not Cygwin-style
Posix runtime libraries.  Am I mistaken?  If so, what is the
difference between a Cygwin build of Make and an MSYS build?

In any case, the first two of the 3 changes you suggest above cannot
be made as you asked for them, since that would break the other ports
of Make for DOS/Windows.  If I understand more about the reasons (see
my questions above), I hope to be able to craft a patch that fixes the
MSYS build without screwing others.

> And after executing 'configure', I had to modify config.h manually
> before executing make (easier for me than correcting the configure
> script) :
> 
> to support dos-style paths, changed :
>   /* #undef HAVE_DOS_PATHS */
> into
>   #define HAVE_DOS_PATHS 1

Again, I don't understand this: if configure says that MSYS doesn't
have DOS drive letters, why do you need to enable its support?

> and to use the internal realpath function as a workaround to the buggy
> msys realpath() function (otherwise the test 'functions/realpath' fails
> at line 19 about realpath of ///), changed :
>   #define HAVE_REALPATH 1
> into
>   /* #undef HAVE_REALPATH */

This should be handled by modifying the configure test for realpath.
Can you explain what is buggy in the MSYS implementation, so the
configure test could be augmented?

TIA




reply via email to

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