GNU bug report logs - #16099
MinGW build failure when srcdir is absolute and has "wrong" format

Previous Next

Package: emacs;

Reported by: Richard Copley <rcopley <at> gmail.com>

Date: Tue, 10 Dec 2013 12:14:01 UTC

Severity: normal

Found in version 24.3.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #80 received at 16099 <at> debbugs.gnu.org (full text, mbox):

From: Dani Moncayo <dmoncayo <at> gmail.com>
To: 16099 <at> debbugs.gnu.org
Subject: Re: bug#16099: 24.3.50; Build failure, undefined function `cl-member'
Date: Tue, 10 Dec 2013 21:57:04 +0100
>> I think that the function 'unmsys--file-name' is conceptually wrong, because:
>>
>> 1. It assumes that every MSYS path will match the "/c/foo/bar"
>
> It does nothing of the kind.  It handles _only_ those file names that
> slip into Emacs in the /c/foo/bar form, which Emacs cannot handle.

I think that it would be possible that the path to "unmsys" had the
form "/foo/bar".  For example if someone has the source code tree
under his MSYS tree and invokes the configure script with an absolute
MSYS path (e.g. "/home/user/emacs/trunk/configure").

In that case, 'unmsys--file-name' will not translate the MSYS path
("/home/user/...") as expected.

>> pattern, which in general is false (as we've already seen).
>
> Not sure what you meant here.  If you mean your use case of building
> inside the MSYS tree, then that one should be (and was) handled by
> different means.

It was handled in one place (for generating the native paths in
'src/epaths.h'), but it seems that there are more places where a
translation to native w32 format is performed, and it would be nice if
that translation was as reliable as possible.

>> 2. Some directory "c:/whatever" could be mounted in MSYS as "/c/foo",
>> and therefore "/c/foo/bar" should be translated as "c:/whatever/bar"
>> (not "c:/foo/bar"). Improbable but possible.
>
> People also shoot themselves in the foot, but why should we cater to
> suicidal ones?  "If it hurts, don't do that."  MSYS is a tool to build
> Posix packages, it has no purpose other than that.  So it makes very
> little sense to configure MSYS in a way that interferes with its main
> purpose.  People could do that by mistake, of course, but then the
> solution is to recognize the mistake and correct it.

Well yes, this second problem is minor, but we could fix it with the
same effort.

>> Therefore, like I've said before, IMO this is unreliable, and we
>> should translate (or "unmsys") _all_ MSYS paths with the 'msys-to-w32'
>> script.
>
> Which is also unreliable, as we've seen.
>
> There are no bullet-proof solutions with MSYS.  Building Posix
> packages on Windows is inherently fragile, and always will be.
> Therefore, the solutions should be the simplest ones we can find that
> do the job.  People who do unreasonable things should be told not to.

I agree that the MSYS shell auto-conversion of paths can be tricky,
but we still don't know the origin of this problem.

In any case, the problem I pointed out doesn't seem to be the problem
reported by the OP.

Perhaps it would be interesting to see the file 'src/epaths.h'
produced in the failed build.  If some path is wrong there, then
_maybe_ the culprit could be the script 'msys-to-w32'.

-- 
Dani Moncayo




This bug report was last modified 11 years and 166 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.