GNU bug report logs - #35410
27.0.50; 32-bit build of master failing with MSYS2

Previous Next

Package: emacs;

Reported by: martin rudalics <rudalics <at> gmx.at>

Date: Wed, 24 Apr 2019 07:33:02 UTC

Severity: normal

Found in version 27.0.50

Done: martin rudalics <rudalics <at> gmx.at>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 35410 in the body.
You can then email your comments to 35410 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#35410; Package emacs. (Wed, 24 Apr 2019 07:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to martin rudalics <rudalics <at> gmx.at>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 24 Apr 2019 07:33:02 GMT) Full text and rfc822 format available.

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

From: martin rudalics <rudalics <at> gmx.at>
To: Bug-Gnu-Emacs <bug-gnu-emacs <at> gnu.org>
Subject: 27.0.50; 32-bit build of master failing with MSYS2
Date: Wed, 24 Apr 2019 09:28:50 +0200
Trying a 32-bit MSYS2 build of master on Windows 10 configured with
CFLAGS='-O3' gets me here:

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.

A workaround here is to add a check to mingw_time.h like

/* The @#$%^&! MinGW developers stopped updating the values of
   __MINGW32_VERSION, __MINGW32_MAJOR_VERSION, and
   __MINGW32_MINOR_VERSION values in v4.x of the runtime, to
   "discourage its uses".  So the values of those macros can no longer
   be trusted, and we need the workaround below, to have a single set
   of macros we can trust.  (The .17 minor version is arbitrary.)  */
#ifdef __MINGW32__
#include <_mingw.h>
# ifndef __CRT__NO_INLINE
#  define __CRT__NO_INLINE
# endif
#endif

martin





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#35410; Package emacs. (Thu, 11 Jul 2019 18:24:01 GMT) Full text and rfc822 format available.

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

From: Noam Postavsky <npostavs <at> gmail.com>
To: martin rudalics <rudalics <at> gmx.at>
Cc: 35410 <at> debbugs.gnu.org
Subject: Re: bug#35410: 27.0.50; 32-bit build of master failing with MSYS2
Date: Thu, 11 Jul 2019 14:23:42 -0400
martin rudalics <rudalics <at> gmx.at> writes:

> Trying a 32-bit MSYS2 build of master on Windows 10 configured with
> CFLAGS='-O3' gets me here:
>
> 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?





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#35410; Package emacs. (Fri, 12 Jul 2019 08:13:01 GMT) Full text and rfc822 format available.

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

From: martin rudalics <rudalics <at> gmx.at>
To: Noam Postavsky <npostavs <at> gmail.com>
Cc: 35410 <at> debbugs.gnu.org
Subject: Re: bug#35410: 27.0.50; 32-bit build of master failing with MSYS2
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





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#35410; Package emacs. (Fri, 12 Jul 2019 15:29:02 GMT) Full text and rfc822 format available.

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

From: Noam Postavsky <npostavs <at> gmail.com>
To: martin rudalics <rudalics <at> gmx.at>
Cc: 35410 <at> debbugs.gnu.org, Noam Postavsky <npostavs <at> gmail.com>
Subject: Re: bug#35410: 27.0.50; 32-bit build of master failing with MSYS2
Date: Fri, 12 Jul 2019 11:28:25 -0400
martin rudalics <rudalics <at> gmx.at> writes:

>>> 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.

Hmm, I tried updating, but now my mingw32 gcc is 9.1.0, and it still
builds fine.  I'm not sure if it's practical to support old compiler
versions from a rolling release.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#35410; Package emacs. (Fri, 12 Jul 2019 16:53:01 GMT) Full text and rfc822 format available.

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

From: martin rudalics <rudalics <at> gmx.at>
To: Noam Postavsky <npostavs <at> gmail.com>
Cc: 35410 <at> debbugs.gnu.org
Subject: Re: bug#35410: 27.0.50; 32-bit build of master failing with MSYS2
Date: Fri, 12 Jul 2019 18:52:32 +0200
> Hmm, I tried updating, but now my mingw32 gcc is 9.1.0, and it still
> builds fine.  I'm not sure if it's practical to support old compiler
> versions from a rolling release.

The problem is not with the compiler version per se but with the
headers shipped with MinGW64.  So hopefully they fixed that problem in
our sense in the meantime.  I'm reluctant to update as well because
the 64-bit builds work sufficiently well and updating always bears the
risk spoiling that.  I filed the report only to hear opinions from
other MinGW64 users but apparently neither of them uses my version.

martin




Reply sent to martin rudalics <rudalics <at> gmx.at>:
You have taken responsibility. (Wed, 09 Oct 2019 18:12:02 GMT) Full text and rfc822 format available.

Notification sent to martin rudalics <rudalics <at> gmx.at>:
bug acknowledged by developer. (Wed, 09 Oct 2019 18:12:03 GMT) Full text and rfc822 format available.

Message #22 received at 35410-done <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Noam Postavsky <npostavs <at> gmail.com>
Cc: 35410-done <at> debbugs.gnu.org
Subject: Re: bug#35410: 27.0.50; 32-bit build of master failing with MSYS2
Date: Wed, 9 Oct 2019 20:11:38 +0200
>  > Hmm, I tried updating, but now my mingw32 gcc is 9.1.0, and it still
>  > builds fine.  I'm not sure if it's practical to support old compiler
>  > versions from a rolling release.
>
> The problem is not with the compiler version per se but with the
> headers shipped with MinGW64.  So hopefully they fixed that problem in
> our sense in the meantime.  I'm reluctant to update as well because
> the 64-bit builds work sufficiently well and updating always bears the
> risk spoiling that.  I filed the report only to hear opinions from
> other MinGW64 users but apparently neither of them uses my version.

I now upgraded MSYS2 to its present version and it builds fine so I'm
hopefully closing this bug.

Thanks for the heads-up, martin




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 07 Nov 2019 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 186 days ago.

Previous Next


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