Subject: Re: bug#62792: Emacs 29.0.90 build fails

From: Tak Ota <[email-masked]>
Date: Wed, 12 Apr 2023 11:16:08 -0700

Here is my MinGW information.

ota@Tak-Dell-XPS15 /c/d/pub/emacs/emacs-29.0.90
$ which gcc
/mingw/bin/gcc.exe

ota@Tak-Dell-XPS15 /c/d/pub/emacs/emacs-29.0.90
$ gcc --version
gcc.exe (GCC) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ota@Tak-Dell-XPS15 /c/d/pub/emacs/emacs-29.0.90
$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\MinGW\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/5.3.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-5.3.0/configure --build=x86_64-pc-linux-gnu
--host=mingw32 --prefix=/mingw --disable-win32-registry --target=mingw32
--with-arch=i586 --enable-languages=c,c++,objc,obj-c++,fortran,ada
--enable-static --enable-shared --enable-threads --with-dwarf2
--disable-sjlj-exceptions --enable-version-specific-runtime-libs
--with-libintl-prefix=/mingw --enable-libstdcxx-debug --with-tune=generic
--enable-libgomp --disable-libvtv --enable-nls : (reconfigured)
../src/gcc-5.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32
--prefix=/mingw --disable-win32-registry --target=mingw32 --with-arch=i586
--enable-languages=c,c++,objc,obj-c++,fortran,ada --enable-static
--enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions
--enable-version-specific-runtime-libs --with-libiconv-prefix=/mingw
--with-libintl-prefix=/mingw --enable-libstdcxx-debug --with-tune=generic
--enable-libgomp --disable-libvtv --enable-nls
Thread model: win32
gcc version 5.3.0 (GCC)

On Wed, Apr 12, 2023 at 8:32 AM Eli Zaretskii <[email-masked]> wrote:

> > From: Tak Ota <[email-masked]>
> > Date: Tue, 11 Apr 2023 11:16:28 -0700
> >
> > When attempted to build using MinGW the next section of code in
> src/w32.c conflicts with the definition
> > in MinGW/include/wincon.h
>
> Thank you for your report.
>
> Please show the exact compilation error message you get due to this
> conflict.  I don't see any errors here, and Emacs 29 compiles with
> MinGW flawlessly here.
>
> > This typedef was not in src/w32.c of Emacs 28.2.
> >
> > #if _WIN32_WINNT < 0x0501
> > typedef struct
> > {
> >   DWORD nFont;
> >   COORD dwFontSize;
> > } CONSOLE_FONT_INFO;
> > #endif
>
> Also, which flavor of MinGW and which version are you using?  The
> above should be only visible with _WIN32_WINNT that is smaller than
> 0x0501, which should not happen with latest MinGW64.  And looking at
> the latest MinGW64 headers, I see the definition of CONSOLE_FONT_INFO
> structure there that is identical to the above, so how can it
> conflict?
>