Subject: bug#18302: MSYS2 build issues

From: Karol Ostrovsky <[email-masked]>
Date: Thu, 21 Aug 2014 12:08:08 +0200

Hello all,

thank you for the very quick response.  First, I am sorry for some of
the mess, like submitting whole files.  Now to the technical stuff:

1. I am the sole author of these changes.  I have no issue with
signing the required legal papers.  Please, let me know how to proceed
with this.

2. MSYS2 'uname' is indeed the main source of the problem.  My
solution fixes that, and also renames opsys=mingw32 to opsys=mingw.
This renaming is not strictly necessary, but I believe it is a good
practice to name things as clearly as possible.  In this case, the
name mingw32 seems too related to a 32-bit system, which it is not any
more after my changes.

3. "-mtune" change: I don't see how Pentium4 optimisations are related
to running Windows9X.  I know people still running Windows95 on
Pentium III.  Shouldn't the official Emacs build be as generic as
possible?  Perhaps one should even take away the whole -mtune part for
MinGW.

4. CPPFLAGS for XPM change follows the same pattern as cygwin.  Both
cygwin and MSYS2 install the XPM library in an unusual place.  Since
adding an include path for cygwin was already accepted, I did not see
any issue with adding a similar solution for MSYS2.

5. I am sorry I was not aware of the ln flag issues.  The -v was only
to see the result and it is completely unnecessary, while the -f was
needed just as it was used for "rm -f" in the original.  The crash is
quite random, and currently I am unable to reproduce it.  Yesterday it
was relatively easy to reproduce, but today it is not happening.
However, I remember that make stopped with something like: unable to
build emacs.exe on line 603 of src/Makefile with reason "rm: cannot
remove ‘bootstrap-emacs.exe’: Device or resource busy".  The crash
happened even when running make without a j flag, that is non-parallel
build.

The easy manual workaround is to just start make again, but then it is
hard to add emacs to any automated build system (for example as an
MSYS2 package).

Given how random this crash is it is hard to justify any change to the
Makefile.in until I or someone else can find the root cause.

Best regards,

Karol

On 20 August 2014 19:20, Eli Zaretskii <[email-masked]> wrote:
>> From: Glenn Morris <[email-masked]>
>> Cc: Karol Ostrovsky <[email-masked]>,  [email-masked],  [email-masked]
>> Date: Wed, 20 Aug 2014 13:04:44 -0400
>>
>> Eli Zaretskii wrote:
>>
>> > not sure we should be changing it.  In particular, I'm not sure
>> > non-GNU 'ln' supports these 2 switches (and why do you need -v
>> > anyway?).
>>
>> http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Limitations-of-Usual-Tools.html
>>
>>    "Don't rely on ln having a -f option."
>
> Thanks, that's what I remembered.
>
>> This and other changes that you commented on give the strong impression
>> that this patch contains a bunch of things that are just personal
>> preferences.
>
> The only real issue AFAICT is the value that MSYS2's 'uname' returns,
> that issue does need a (trivial) solution.