Subject: Re: bug#28601: 26.0.50; configure: error: Emacs does not support 'x86_64-pc-msys' systems.

From: [email-masked] (Vincent Belaïche)
Date: Fri, 13 Oct 2017 16:09:21 +0200

Dear Glenn, Noam, Eli, & al.

I realize that I have not answered to you Glenn. My latest build of
Emacs is:

	GNU Emacs 26.0.50 (build 1, i686-pc-mingw32) of 2017-07-02

It was done with MSYS1. I see that that platform is ...-mingw32 and not
-msys which explains why it worked.

I switched from MSYS1 to MSYS2 at end of July 2017 because I had too
many problems with MSYS1 not being supported any longer (see for
instance http://savannah.gnu.org/bugs/?51527 about MSYS1 GNUMake issue,
I really, really should have done this switch earlier ...).

Now, I did the:

	pacman -S msys2-launcher

as recommended in the INSTALL.W64 patch from Noam, and then I launched
msys64.exe from the MSWindows exporer. But it still does not work, I get
that the compiler target is still x86_64-pc-msys, which is not accepted
by configure.

The reason for this, is that my configure command does not have any
--host option, FYI here it is:

	./configure --prefix=c:/Nos_Programmes/GNU/Emacs --without-jpeg --without-tiff --without-gif --without-png 'CFLAGS= -Og -g3 -L C:/Programmes/installation/emacs-install/libXpm-3.5.8/src' 'CPPFLAGS= -DFOR_MSW=1 -I C:/Programmes/installation/emacs-install/libXpm-3.5.8/include -I C:/Programmes/installation/emacs-install/libXpm-3.5.8/src -L C:/Programmes/installation/emacs-install/libXpm-3.5.8/src' PKG_CONFIG=/mingw/bin/pkg-config.exe PKG_CONFIG_PATH=/mingw/bin --no-create --no-recursion

so the configure script tries to know the right host by doing gcc -v,
this test is just after this comment in configure:

	# No --host argument was given to 'configure'; therefore $host
	# was set to a default value based on the build platform.  But
	# this default value may be wrong if we are building from a
	# 64-bit MSYS[2] pre-configured to build 32-bit MinGW programs.
	# Therefore, we'll try to get the right host platform from the
	# compiler's target.

When I launch mingw64 and then I do

	{ LC_ALL=C gcc -v 2>&1; } | grep Target

I get this :

   Target: x86_64-pc-msys

Hence the error which I reported in the first place :.

	checking the compiler's target... x86_64-pc-msys
	configure: error: Emacs does not support 'x86_64-pc-msys' systems.

So, maybe the INSTALL.W64 should contain some recommendation to use the
--host option in some way to work around this.

Please note that gcc -v makes this output even though my MSYSTEM envvar
expands to MINGW64.

I think that the objective of the gcc -v is to discriminate between 32
and 64 bits, not between MINGW and MSYS. So, it seems that what we have
is an autoconf bug. Am I wrong ?

   Vincent.

Le 27/09/2017 à 23:37, Glenn Morris a écrit :
> Vincent Belaïche wrote:
>
>> There is no such thing as a mingw64_shell.bat script, but there is a
>> msys2_shell.cmd script, which one can launch with the -mingw64 for
>> MSYSTEM to be set accordingly to MSYSTEM=MINGW64.
>
> Sounds like MinGW has changed how things work and the instructions in
> nt/INSTALL.W64 need updating.
>
>> checking the compiler's target... x86_64-pc-msys
>> configure: error: Emacs does not support 'x86_64-pc-msys' systems.
>
> This is MinGW-specific code added in https://debbugs.gnu.org/19111

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus