Subject: Re: bug#35410: 27.0.50; 32-bit build of master failing with MSYS2

From: martin rudalics <[email-masked]>
Date: Fri, 12 Jul 2019 10:12:01 +0200

>> w32.o:w32.c:(.text+0xa29f): undefined reference to `_imp___futime32'
 >> collect2.exe: error: ld returned 1 exit status
 >> make[1]: *** [Makefile:643: temacs.exe] Fehler 1
 >> make[1]: Verzeichnis „/c/emacs/trunk/opt-32/src“ wird verlassen
 >> make: *** [Makefile:423: src] Fehler 2
 >>
 >> A build configured with CFLAGS='-O0 -g3' proceeds without problems.
 >> The 32-builds use gcc 7.4.0.  64-bit builds with the same options
 >> proceed without problems using gcc 8.3.0.
 >
 > Seems to work okay here, but my ming32 gcc is 7.2.0.  Is this still a
 > problem?

Yes.  With slight changes in the Makefile references:

   CCLD     temacs.exe
w32.o:w32.c:(.text+0xa27f): undefined reference to `_imp___futime32'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [Makefile:651: temacs.exe] Fehler 1
make[1]: Verzeichnis „/c/emacs/trunk/opt-32/src“ wird verlassen
make: *** [Makefile:424: src] Fehler 2

In an earlier conversation with Eli I wrote

 > > An optimized 32-bit build apparently does not recognize
 > >
 > > #ifndef __MINGW64_VERSION_MAJOR

and he told me

 > So I guess we need to find an alternative to
 > __MINGW64_VERSION_MAJOR that will work in the 32-bit MinGW64 builds.
 > Look for macros that include "_VERSION_" or "_MAJOR" in the MinGW64
 > headers.

but I had no good idea how to continue.

martin