* Build failure for Emacs master @ 2016-02-23 22:11 Angelo Graziosi 2016-02-23 23:14 ` Paul Eggert 2016-02-24 3:42 ` Eli Zaretskii 0 siblings, 2 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-02-23 22:11 UTC (permalink / raw) To: Emacs developers Just for the record, master fail to build on MSYS2/MinGW64: [...] Loading faces... Loading button... Loading loaddefs.el (source)... End of file during parsing: c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito make[1]: *** [emacs.exe] Errore 127 make[1]: uscita dalla directory "/tmp/mingw-w64-emacs-git/src/build-x86_64-w64-mingw32/src" Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito make: *** [src] Errore 2 I did a successful build after last merge (commit Merge from origin/emacs-25 81ef756e6aea369ec78f19b3609f01ceddc5851f), maybe some recent change should be still tuned.. Angelo ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-23 22:11 Build failure for Emacs master Angelo Graziosi @ 2016-02-23 23:14 ` Paul Eggert 2016-02-24 0:23 ` Angelo Graziosi 2016-02-24 3:42 ` Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Paul Eggert @ 2016-02-23 23:14 UTC (permalink / raw) To: Angelo Graziosi, Emacs developers On 02/23/2016 02:11 PM, Angelo Graziosi wrote: > Loading loaddefs.el (source)... > End of file during parsing: > c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el > Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito > make[1]: *** [emacs.exe] Errore 127 I could be the guilty party here, since I installed many of the changes after the last commit that works for you. However, I don't see how those changes could cause an MS-WIndows build to have an instruction error. Perhaps a 'make bootstrap' is in order? If that doesn't work, what's the difference between lisp/loaddefs.el in your last good commit versus the latest commit? ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-23 23:14 ` Paul Eggert @ 2016-02-24 0:23 ` Angelo Graziosi 0 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-02-24 0:23 UTC (permalink / raw) To: Paul Eggert, Emacs developers Il 24/02/2016 00:14, Paul Eggert ha scritto: > On 02/23/2016 02:11 PM, Angelo Graziosi wrote: >> Loading loaddefs.el (source)... >> End of file during parsing: >> c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el >> Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito >> make[1]: *** [emacs.exe] Errore 127 > > I could be the guilty party here, since I installed many of the changes > after the last commit that works for you. However, I don't see how those > changes could cause an MS-WIndows build to have an instruction error. > Perhaps a 'make bootstrap' is in order? If that doesn't work, what's the I do always build in a clean tree, so I think bootstrap is always called. I tried also removing the git tree and recreating it. Now I am trying a new build and it seems work better.. I will flag new issues if I will find them.. For now.. goodnight and sorry for the noise.. Thanks, Angelo. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-23 22:11 Build failure for Emacs master Angelo Graziosi 2016-02-23 23:14 ` Paul Eggert @ 2016-02-24 3:42 ` Eli Zaretskii 2016-02-24 9:36 ` Angelo Graziosi 1 sibling, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-02-24 3:42 UTC (permalink / raw) To: Angelo Graziosi; +Cc: emacs-devel > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Tue, 23 Feb 2016 23:11:42 +0100 > > Just for the record, master fail to build on MSYS2/MinGW64: It doesn't fail for me. > Loading faces... > Loading button... > Loading loaddefs.el (source)... > End of file during parsing: > c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el Please look at your loaddefs.el, and tell if you see something strange there, like null bytes. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-24 3:42 ` Eli Zaretskii @ 2016-02-24 9:36 ` Angelo Graziosi 2016-02-24 10:20 ` Angelo Graziosi 2016-02-24 17:31 ` Eli Zaretskii 0 siblings, 2 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-02-24 9:36 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Il 24/02/2016 04:42, Eli Zaretskii ha scritto: >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Tue, 23 Feb 2016 23:11:42 +0100 >> >> Just for the record, master fail to build on MSYS2/MinGW64: > > It doesn't fail for me. > >> Loading faces... >> Loading button... >> Loading loaddefs.el (source)... >> End of file during parsing: >> c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el > > Please look at your loaddefs.el, and tell if you see something strange > there, like null bytes. > Hmm.. I removed the Emacs tree and recreated from scratch, then retried the build.. Now it fails on another loaddefs, org-loaddefs.el. I have seen the same failure a week ago or so and just retrying worked... I wonder if this could be related to the "make -j3" (two core) or some other thing in MSYS2.. Let's see what happen with another try.. Angelo ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-24 9:36 ` Angelo Graziosi @ 2016-02-24 10:20 ` Angelo Graziosi 2016-02-24 17:37 ` Eli Zaretskii 2016-02-24 17:31 ` Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-02-24 10:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Il 24/02/2016 10:36, Angelo Graziosi ha scritto: > > Let's see what happen with another try.. > Indeed, just retrying builds OB.. > > Angelo ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-24 10:20 ` Angelo Graziosi @ 2016-02-24 17:37 ` Eli Zaretskii 2016-02-24 22:20 ` Angelo Graziosi 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-02-24 17:37 UTC (permalink / raw) To: Angelo Graziosi; +Cc: emacs-devel > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Wed, 24 Feb 2016 11:20:56 +0100 > Cc: emacs-devel@gnu.org > > Il 24/02/2016 10:36, Angelo Graziosi ha scritto: > > > > Let's see what happen with another try.. > > > > Indeed, just retrying builds OB.. Alas, this tells us nothing about the reason for the original problem. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-24 17:37 ` Eli Zaretskii @ 2016-02-24 22:20 ` Angelo Graziosi 2016-02-25 16:43 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-02-24 22:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Il 24/02/2016 18:37, Eli Zaretskii ha scritto: >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Wed, 24 Feb 2016 11:20:56 +0100 >> Cc: emacs-devel@gnu.org >> >> Il 24/02/2016 10:36, Angelo Graziosi ha scritto: >>> >>> Let's see what happen with another try.. >>> >> >> Indeed, just retrying builds OB.. > > Alas, this tells us nothing about the reason for the original problem. > Another try, another failure: [...] Loading loaddefs.el (source)... End of file during parsing: c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito make[1]: *** [emacs.exe] Errore 127 make[1]: uscita dalla directory "/tmp/mingw-w64-emacs-git/src/build-x86_64-w64-mingw32/src" Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito make: *** [src] Errore 2 with master-ce6a03cb00fb95b3e32440c1388d5f40375aadb2 (Fix problem in tramp.texi). Really c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el seems broken cat /tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el [...] (autoload 'woman "woman" "\ Browse UN*X man page for TOPIC (Without using external Man program). The major browsing mode used is essentially the standard Man mode. Choose the filename for the man page using completion, based on the topic selected from the directories specified in `woman-manpath' and `woman-path'. The directory expa A LOT OF "APPARENTLY" EMPTY SPACE but when I visit it with Emacs, 'A LOT OF "APPARENTLY" EMPTY SPACE' is a lot of "^@" characters. BTW, insisting to visit it, Emacs hangs (I have to kill it with task manager...) If you want I can sent it to someone of you, off list (xz compressed is about 250K). Angelo ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-24 22:20 ` Angelo Graziosi @ 2016-02-25 16:43 ` Eli Zaretskii 2016-03-04 21:50 ` Angelo Graziosi 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-02-25 16:43 UTC (permalink / raw) To: Angelo Graziosi; +Cc: emacs-devel > Cc: emacs-devel@gnu.org > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Wed, 24 Feb 2016 23:20:23 +0100 > > cat /tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el > [...] > (autoload 'woman "woman" "\ > Browse UN*X man page for TOPIC (Without using external Man program). > The major browsing mode used is essentially the standard Man mode. > Choose the filename for the man page using completion, based on the > topic selected from the directories specified in `woman-manpath' and > `woman-path'. The directory expa > > A LOT OF "APPARENTLY" EMPTY SPACE > > > but when I visit it with Emacs, 'A LOT OF "APPARENTLY" EMPTY SPACE' is a > lot of "^@" characters. Yes, that's what happens in these cases. So the problem is still present, sigh. Unfortunately, it stopped happening on my system, so I cannot debug it. To solve this simply copy ldefs-boot.el over loaddefs.el, and rebuild. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-25 16:43 ` Eli Zaretskii @ 2016-03-04 21:50 ` Angelo Graziosi 2016-03-05 7:25 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-03-04 21:50 UTC (permalink / raw) To: Emacs developers Just for the record.. Now the build of current master (ac9a931...) fails with: [...] Loading button... Loading loaddefs.el (source)... Wrong number of arguments: autoload, 1325 Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito make[1]: *** [emacs.exe] Errore 127 make[1]: uscita dalla directory "/tmp/mingw-w64-emacs-git/src/build-x86_64-w64-mingw32/src" Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito make: *** [src] Errore 2 All the loaddefs.el files are: $ find . -name "loaddefs*" ./src/emacs/lisp/cedet/ede/loaddefs.el ./src/emacs/lisp/cedet/ede/loaddefs.el~ ./src/emacs/lisp/cedet/semantic/loaddefs.el ./src/emacs/lisp/cedet/semantic/loaddefs.el~ ./src/emacs/lisp/cedet/srecode/loaddefs.el ./src/emacs/lisp/cedet/srecode/loaddefs.el~ ./src/emacs/lisp/loaddefs.el ./src/emacs/lisp/loaddefs.el~ and $ cat ./src/emacs/lisp/loaddefs.el [...] (autoload 'xref-collect-matches "xref" "\ Collect matches for REGEXP inside FILES in DIR. FILES is a string with glob patterns separated by spaces. IGNORES is a list of glob patterns. \(fn REGEXP FILES DIR IGNORES)" nil nil) ;;;*** while for the others $ cat ./src/emacs/lisp/.../loaddefs.el [...] ;;;*** (provide 'loaddefs) ;; Local Variables: ;; version-control: never ;; no-byte-compile: t ;; no-update-autoloads: t ;; coding: utf-8 ;; End: ;;; loaddefs.el ends here Maybe just retrying builds.. In any cases this kind of failures are rather recent. I have built master on MSYS2 for months without any failure and since, say, first decade of February they occur.. Angelo Il 25/02/2016 17:43, Eli Zaretskii ha scritto: >> Cc: emacs-devel@gnu.org >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Wed, 24 Feb 2016 23:20:23 +0100 >> >> cat /tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el >> [...] >> (autoload 'woman "woman" "\ >> Browse UN*X man page for TOPIC (Without using external Man program). >> The major browsing mode used is essentially the standard Man mode. >> Choose the filename for the man page using completion, based on the >> topic selected from the directories specified in `woman-manpath' and >> `woman-path'. The directory expa >> >> A LOT OF "APPARENTLY" EMPTY SPACE >> >> >> but when I visit it with Emacs, 'A LOT OF "APPARENTLY" EMPTY SPACE' is a >> lot of "^@" characters. > > Yes, that's what happens in these cases. So the problem is still > present, sigh. Unfortunately, it stopped happening on my system, so I > cannot debug it. > > To solve this simply copy ldefs-boot.el over loaddefs.el, and rebuild. > ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-04 21:50 ` Angelo Graziosi @ 2016-03-05 7:25 ` Eli Zaretskii 2016-03-05 13:53 ` Angelo Graziosi ` (2 more replies) 0 siblings, 3 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-03-05 7:25 UTC (permalink / raw) To: Angelo Graziosi; +Cc: emacs-devel > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Fri, 4 Mar 2016 22:50:31 +0100 > > $ cat ./src/emacs/lisp/loaddefs.el > [...] > (autoload 'xref-collect-matches "xref" "\ > Collect matches for REGEXP inside FILES in DIR. > FILES is a string with glob patterns separated by spaces. > IGNORES is a list of glob patterns. > > \(fn REGEXP FILES DIR IGNORES)" nil nil) > > ;;;*** > > > while for the others > > $ cat ./src/emacs/lisp/.../loaddefs.el > [...] > ;;;*** > > > (provide 'loaddefs) > ;; Local Variables: > ;; version-control: never > ;; no-byte-compile: t > ;; no-update-autoloads: t > ;; coding: utf-8 > ;; End: > ;;; loaddefs.el ends here > > > Maybe just retrying builds.. Yes, this looks like the same problem. The challenge is to catch the instance when such a faulty loaddefs.el is produced, and see what happens there. Ideas for how to do that are welcome. > In any cases this kind of failures are rather recent. I have built > master on MSYS2 for months without any failure and since, say, first > decade of February they occur.. I've seen this first in last November. Not sure if it's the same problem, but the symptoms are very similar. Are all of your builds full bootstraps in a fresh directory using a freshly cloned repository? ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-05 7:25 ` Eli Zaretskii @ 2016-03-05 13:53 ` Angelo Graziosi 2016-03-05 20:59 ` Angelo Graziosi 2016-04-12 0:36 ` Angelo Graziosi 2 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-03-05 13:53 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Il 05/03/2016 08:25, Eli Zaretskii ha scritto: > > Are all of your builds full bootstraps in a fresh directory using a > freshly cloned repository? > Usually I try to build the package as described here: https://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2 In short, MINGW_INSTALLS=mingw64 makepkg-mingw -sLf (I changed the PKGBUILD [*] script to use 'make -j3'). The folder in which I run the above command contains an "emacs" directory containing the git tree of Emacs master. If I understand, this tree is copied at each build in a 'working' build tree inside a 'src' folder and I delete the 'src' tree after each build.. Just for completeness, I will try leaving only the PKGBUILD script and deleting all other things.. Angelo --- [*] https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-emacs-git/PKGBUILD ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-05 7:25 ` Eli Zaretskii 2016-03-05 13:53 ` Angelo Graziosi @ 2016-03-05 20:59 ` Angelo Graziosi 2016-03-06 3:35 ` Eli Zaretskii 2016-04-12 0:36 ` Angelo Graziosi 2 siblings, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-03-05 20:59 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel Il 05/03/2016 08:25, Eli Zaretskii ha scritto: >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Fri, 4 Mar 2016 22:50:31 +0100 >> >> $ cat ./src/emacs/lisp/loaddefs.el >> [...] >> (autoload 'xref-collect-matches "xref" "\ >> Collect matches for REGEXP inside FILES in DIR. >> FILES is a string with glob patterns separated by spaces. >> IGNORES is a list of glob patterns. >> >> \(fn REGEXP FILES DIR IGNORES)" nil nil) >> >> ;;;*** >> >> >> while for the others >> >> $ cat ./src/emacs/lisp/.../loaddefs.el >> [...] >> ;;;*** >> >> >> (provide 'loaddefs) >> ;; Local Variables: >> ;; version-control: never >> ;; no-byte-compile: t >> ;; no-update-autoloads: t >> ;; coding: utf-8 >> ;; End: >> ;;; loaddefs.el ends here >> >> >> Maybe just retrying builds.. > > Yes, this looks like the same problem. > > The challenge is to catch the instance when such a faulty loaddefs.el > is produced, and see what happens there. Ideas for how to do that are > welcome. > >> In any cases this kind of failures are rather recent. I have built >> master on MSYS2 for months without any failure and since, say, first >> decade of February they occur.. > > I've seen this first in last November. Not sure if it's the same > problem, but the symptoms are very similar. > > Are all of your builds full bootstraps in a fresh directory using a > freshly cloned repository? > Now I have tried current master ( 21b509d4449bd33045e019dbcc90f5283434c07e) in a freshly cloned repository but it fails differently (I think it is unrelated to our loaddefs issue): [...] CCLD temacs.exe process.o:process.c:(.text+0x93cb): undefined reference to `gai_strerrorA' process.o:process.c:(.text+0x93cb): relocation truncated to fit: R_X86_64_PC32 gainst undefined symbol `gai_strerrorA' collect2.exe: error: ld returned 1 exit status Makefile:601: set di istruzioni per l'obiettivo "temacs.exe" non riuscito make[1]: *** [temacs.exe] Errore 1 make[1]: uscita dalla directory "/tmp/mingw-w64-emacs-git/src/build-x86_64-w64-ingw32/src" Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito make: *** [src] Errore 2 I wonder if it is related to this change: Lars Magne Ingebrigtsen Allow making TLS negotiation blocking commit: http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=21b509d4449bd33045e019dbcc90f5283434c07e which changes process.h.. Angelo ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-05 20:59 ` Angelo Graziosi @ 2016-03-06 3:35 ` Eli Zaretskii 2016-03-06 16:55 ` Eli Zaretskii 2016-03-06 17:37 ` Andy Moreton 0 siblings, 2 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-03-06 3:35 UTC (permalink / raw) To: Angelo Graziosi; +Cc: larsi, emacs-devel > Cc: emacs-devel@gnu.org, larsi@gnus.org > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Sat, 5 Mar 2016 21:59:49 +0100 > > Now I have tried current master ( > 21b509d4449bd33045e019dbcc90f5283434c07e) in a freshly cloned repository > but it fails differently (I think it is unrelated to our loaddefs issue): > > [...] > CCLD temacs.exe > process.o:process.c:(.text+0x93cb): undefined reference to `gai_strerrorA' > process.o:process.c:(.text+0x93cb): relocation truncated to fit: > R_X86_64_PC32 gainst undefined symbol `gai_strerrorA' > collect2.exe: error: ld returned 1 exit status > Makefile:601: set di istruzioni per l'obiettivo "temacs.exe" non riuscito > make[1]: *** [temacs.exe] Errore 1 > make[1]: uscita dalla directory > "/tmp/mingw-w64-emacs-git/src/build-x86_64-w64-ingw32/src" > Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito > make: *** [src] Errore 2 > > I wonder if it is related to this change: > > Lars Magne Ingebrigtsen Allow making TLS negotiation blocking > commit: > http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=21b509d4449bd33045e019dbcc90f5283434c07e > > which changes process.h.. No, it's related to my recent changes. Sounds like MinGW64 headers have yet another incompatibility with mingw.org's headers, sigh... ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-06 3:35 ` Eli Zaretskii @ 2016-03-06 16:55 ` Eli Zaretskii 2016-03-06 22:00 ` Angelo Graziosi 2016-03-06 17:37 ` Andy Moreton 1 sibling, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-03-06 16:55 UTC (permalink / raw) To: angelo.graziosi; +Cc: larsi, emacs-devel > Date: Sun, 06 Mar 2016 05:35:44 +0200 > From: Eli Zaretskii <eliz@gnu.org> > Cc: larsi@gnus.org, emacs-devel@gnu.org > > > CCLD temacs.exe > > process.o:process.c:(.text+0x93cb): undefined reference to `gai_strerrorA' > > process.o:process.c:(.text+0x93cb): relocation truncated to fit: > > R_X86_64_PC32 gainst undefined symbol `gai_strerrorA' > > collect2.exe: error: ld returned 1 exit status > > Makefile:601: set di istruzioni per l'obiettivo "temacs.exe" non riuscito > > make[1]: *** [temacs.exe] Errore 1 > > make[1]: uscita dalla directory > > "/tmp/mingw-w64-emacs-git/src/build-x86_64-w64-ingw32/src" > > Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito > > make: *** [src] Errore 2 > > > > I wonder if it is related to this change: > > > > Lars Magne Ingebrigtsen Allow making TLS negotiation blocking > > commit: > > http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=21b509d4449bd33045e019dbcc90f5283434c07e > > > > which changes process.h.. > > No, it's related to my recent changes. Sounds like MinGW64 headers > have yet another incompatibility with mingw.org's headers, sigh... I attempted to fix this in commit 69e03dd, please take another look. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-06 16:55 ` Eli Zaretskii @ 2016-03-06 22:00 ` Angelo Graziosi 0 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-03-06 22:00 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, emacs-devel Il 06/03/2016 17:55, Eli Zaretskii ha scritto: > > I attempted to fix this in commit 69e03dd, please take another look. > Yes, the fix works.. I have also completed the build in a freshly cloned repository without the loaddefs issue... let's see if it will return in the next builds. Thanks, Angelo. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-06 3:35 ` Eli Zaretskii 2016-03-06 16:55 ` Eli Zaretskii @ 2016-03-06 17:37 ` Andy Moreton 2016-03-06 17:54 ` Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Andy Moreton @ 2016-03-06 17:37 UTC (permalink / raw) To: emacs-devel On Sun 06 Mar 2016, Eli Zaretskii wrote: >> Cc: emacs-devel@gnu.org, larsi@gnus.org >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Sat, 5 Mar 2016 21:59:49 +0100 >> >> Now I have tried current master ( >> 21b509d4449bd33045e019dbcc90f5283434c07e) in a freshly cloned repository >> but it fails differently (I think it is unrelated to our loaddefs issue): >> >> [...] >> CCLD temacs.exe >> process.o:process.c:(.text+0x93cb): undefined reference to `gai_strerrorA' >> process.o:process.c:(.text+0x93cb): relocation truncated to fit: >> R_X86_64_PC32 gainst undefined symbol `gai_strerrorA' >> collect2.exe: error: ld returned 1 exit status >> Makefile:601: set di istruzioni per l'obiettivo "temacs.exe" non riuscito >> make[1]: *** [temacs.exe] Errore 1 >> make[1]: uscita dalla directory >> "/tmp/mingw-w64-emacs-git/src/build-x86_64-w64-ingw32/src" >> Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito >> make: *** [src] Errore 2 >> >> I wonder if it is related to this change: >> >> Lars Magne Ingebrigtsen Allow making TLS negotiation blocking >> commit: >> http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=21b509d4449bd33045e019dbcc90f5283434c07e >> >> which changes process.h.. > > No, it's related to my recent changes. Sounds like MinGW64 headers > have yet another incompatibility with mingw.org's headers, sigh... Your fix for this in 69e03dd seems to be overly harsh on Mingw64. Win95/98/Me have been dead for over 15 years - it's time to kill support for them, and require that all Windows platforms support Winsock2. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-06 17:37 ` Andy Moreton @ 2016-03-06 17:54 ` Eli Zaretskii 0 siblings, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-03-06 17:54 UTC (permalink / raw) To: Andy Moreton; +Cc: emacs-devel > From: Andy Moreton <andrewjmoreton@gmail.com> > Date: Sun, 06 Mar 2016 17:37:37 +0000 > > Your fix for this in 69e03dd seems to be overly harsh on Mingw64. I didn't find a better way, sorry; ideas are welcome. And the lossage is not really so bad: after all, we've lived without gai_strerror until now, and no one complained. It's a function that displays messages for errors that aren't supposed to happen, right? > Win95/98/Me have been dead for over 15 years - it's time to kill support > for them, and require that all Windows platforms support Winsock2. Windows 9X support winsock2 as well, that's not the issue here. The issue is that these 3 functions were added on Windows XP; they were missing before that. But if you are saying that the 64-build should be linked with "-lws2_32", I'm okay with accepting patches to that effect only for that build. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-03-05 7:25 ` Eli Zaretskii 2016-03-05 13:53 ` Angelo Graziosi 2016-03-05 20:59 ` Angelo Graziosi @ 2016-04-12 0:36 ` Angelo Graziosi 2016-04-12 11:36 ` Phillip Lord 2016-04-12 15:28 ` Build failure " Eli Zaretskii 2 siblings, 2 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-04-12 0:36 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Just for the record... After about a month, the issue has reappeared. Now it fails with this message: [...] Loading button... Loading loaddefs.el (source)... Wrong number of arguments: autoload, 1325 Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito make[1]: *** [emacs.exe] Errore 127 make[1]: uscita dalla directory "/tmp/work/emacs-master/src" Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito make: *** [src] Errore 2 but the lisp/loaddefs.el seems to have the same defects.. Ciao, Angelo. Il 05/03/2016 08:25, Eli Zaretskii ha scritto: >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Fri, 4 Mar 2016 22:50:31 +0100 >> >> $ cat ./src/emacs/lisp/loaddefs.el >> [...] >> (autoload 'xref-collect-matches "xref" "\ >> Collect matches for REGEXP inside FILES in DIR. >> FILES is a string with glob patterns separated by spaces. >> IGNORES is a list of glob patterns. >> >> \(fn REGEXP FILES DIR IGNORES)" nil nil) >> >> ;;;*** >> >> >> while for the others >> >> $ cat ./src/emacs/lisp/.../loaddefs.el >> [...] >> ;;;*** >> >> >> (provide 'loaddefs) >> ;; Local Variables: >> ;; version-control: never >> ;; no-byte-compile: t >> ;; no-update-autoloads: t >> ;; coding: utf-8 >> ;; End: >> ;;; loaddefs.el ends here >> >> >> Maybe just retrying builds.. > > Yes, this looks like the same problem. > > The challenge is to catch the instance when such a faulty loaddefs.el > is produced, and see what happens there. Ideas for how to do that are > welcome. > >> In any cases this kind of failures are rather recent. I have built >> master on MSYS2 for months without any failure and since, say, first >> decade of February they occur.. > > I've seen this first in last November. Not sure if it's the same > problem, but the symptoms are very similar. > > Are all of your builds full bootstraps in a fresh directory using a > freshly cloned repository? > ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-12 0:36 ` Angelo Graziosi @ 2016-04-12 11:36 ` Phillip Lord 2016-04-12 20:54 ` Angelo Graziosi 2016-04-12 15:28 ` Build failure " Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Phillip Lord @ 2016-04-12 11:36 UTC (permalink / raw) To: Angelo Graziosi; +Cc: Eli Zaretskii, emacs-devel Reappeared randomly, or reappeared consistently on every build? Phil Angelo Graziosi <angelo.graziosi@alice.it> writes: > Just for the record... > > After about a month, the issue has reappeared. > > Now it fails with this message: > > [...] > Loading button... > Loading loaddefs.el (source)... > Wrong number of arguments: autoload, 1325 > Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito > make[1]: *** [emacs.exe] Errore 127 > make[1]: uscita dalla directory "/tmp/work/emacs-master/src" > Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito > make: *** [src] Errore 2 > > but the lisp/loaddefs.el seems to have the same defects.. > > Ciao, > Angelo. > > Il 05/03/2016 08:25, Eli Zaretskii ha scritto: >>> From: Angelo Graziosi <angelo.graziosi@alice.it> >>> Date: Fri, 4 Mar 2016 22:50:31 +0100 >>> >>> $ cat ./src/emacs/lisp/loaddefs.el >>> [...] >>> (autoload 'xref-collect-matches "xref" "\ >>> Collect matches for REGEXP inside FILES in DIR. >>> FILES is a string with glob patterns separated by spaces. >>> IGNORES is a list of glob patterns. >>> >>> \(fn REGEXP FILES DIR IGNORES)" nil nil) >>> >>> ;;;*** >>> >>> >>> while for the others >>> >>> $ cat ./src/emacs/lisp/.../loaddefs.el >>> [...] >>> ;;;*** >>> >>> >>> (provide 'loaddefs) >>> ;; Local Variables: >>> ;; version-control: never >>> ;; no-byte-compile: t >>> ;; no-update-autoloads: t >>> ;; coding: utf-8 >>> ;; End: >>> ;;; loaddefs.el ends here >>> >>> >>> Maybe just retrying builds.. >> >> Yes, this looks like the same problem. >> >> The challenge is to catch the instance when such a faulty loaddefs.el >> is produced, and see what happens there. Ideas for how to do that are >> welcome. >> >>> In any cases this kind of failures are rather recent. I have built >>> master on MSYS2 for months without any failure and since, say, first >>> decade of February they occur.. >> >> I've seen this first in last November. Not sure if it's the same >> problem, but the symptoms are very similar. >> >> Are all of your builds full bootstraps in a fresh directory using a >> freshly cloned repository? >> ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-12 11:36 ` Phillip Lord @ 2016-04-12 20:54 ` Angelo Graziosi 2016-04-12 22:52 ` MS-Windows warnings (was build failure) " Paul Eggert 0 siblings, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-04-12 20:54 UTC (permalink / raw) To: Phillip Lord; +Cc: Eli Zaretskii, emacs-devel Il 12/04/2016 13:36, Phillip Lord ha scritto: > > Reappeared randomly, or reappeared consistently on every build? I would say "periodically".. I had this issue on March 5 but then I was able to build OB on March 12, 23, 24, 29 and April 03. Now it reappeared... sometimes it fails with lisp/loaddefs.el and sometimes with other loaddefs. For example this evening: [...] In toplevel form: ../../emacs/lisp/gnus/gnus-icalendar.el:359:1:Error: End of file during parsing: c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/org/org-loaddefs.el Makefile:282: set di istruzioni per l'obiettivo "gnus/gnus-icalendar.elc" non riuscito make[2]: *** [gnus/gnus-icalendar.elc] Errore 1 [...] ..and org/org-loaddefs.el seems to suffers the same issues of lisp/loaddefs.el I already flagged.. BTW, I notice that current build logs have a lot of "garbage" like this: [...] C:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lib-src/ntlib.c:110:15: warning: format '%d' expects argument of type 'int', but argument 2 has type 'DWORD {aka long unsigned int}' [-Wformat=] printf ("Checking parent status failed: %d\n", GetLastError ()); [...] and Emacs also shows a lot of ^M characters.. I think this garbage is related to the configure messages: [...] checking whether C compiler handles -W... yes checking whether C compiler handles -Wabi... yes checking whether C compiler handles -Waddress... yes checking whether C compiler handles -Waggressive-loop-optimizations... yes checking whether C compiler handles -Wall... yes checking whether C compiler handles -Wattributes... yes checking whether C compiler handles -Wbool-compare... yes checking whether C compiler handles -Wbuiltin-macro-redefined... yes [...] Why enabling this by default? All this should be OFF by default and only the maintainers which need it should enable it Angelo > > Phil > > Angelo Graziosi <angelo.graziosi@alice.it> writes: > >> Just for the record... >> >> After about a month, the issue has reappeared. >> >> Now it fails with this message: >> >> [...] >> Loading button... >> Loading loaddefs.el (source)... >> Wrong number of arguments: autoload, 1325 >> Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito >> make[1]: *** [emacs.exe] Errore 127 >> make[1]: uscita dalla directory "/tmp/work/emacs-master/src" >> Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito >> make: *** [src] Errore 2 >> >> but the lisp/loaddefs.el seems to have the same defects.. >> >> Ciao, >> Angelo. >> >> Il 05/03/2016 08:25, Eli Zaretskii ha scritto: >>>> From: Angelo Graziosi <angelo.graziosi@alice.it> >>>> Date: Fri, 4 Mar 2016 22:50:31 +0100 >>>> >>>> $ cat ./src/emacs/lisp/loaddefs.el >>>> [...] >>>> (autoload 'xref-collect-matches "xref" "\ >>>> Collect matches for REGEXP inside FILES in DIR. >>>> FILES is a string with glob patterns separated by spaces. >>>> IGNORES is a list of glob patterns. >>>> >>>> \(fn REGEXP FILES DIR IGNORES)" nil nil) >>>> >>>> ;;;*** >>>> >>>> >>>> while for the others >>>> >>>> $ cat ./src/emacs/lisp/.../loaddefs.el >>>> [...] >>>> ;;;*** >>>> >>>> >>>> (provide 'loaddefs) >>>> ;; Local Variables: >>>> ;; version-control: never >>>> ;; no-byte-compile: t >>>> ;; no-update-autoloads: t >>>> ;; coding: utf-8 >>>> ;; End: >>>> ;;; loaddefs.el ends here >>>> >>>> >>>> Maybe just retrying builds.. >>> >>> Yes, this looks like the same problem. >>> >>> The challenge is to catch the instance when such a faulty loaddefs.el >>> is produced, and see what happens there. Ideas for how to do that are >>> welcome. >>> >>>> In any cases this kind of failures are rather recent. I have built >>>> master on MSYS2 for months without any failure and since, say, first >>>> decade of February they occur.. >>> >>> I've seen this first in last November. Not sure if it's the same >>> problem, but the symptoms are very similar. >>> >>> Are all of your builds full bootstraps in a fresh directory using a >>> freshly cloned repository? >>> ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-12 20:54 ` Angelo Graziosi @ 2016-04-12 22:52 ` Paul Eggert 2016-04-12 23:36 ` Angelo Graziosi ` (3 more replies) 0 siblings, 4 replies; 119+ messages in thread From: Paul Eggert @ 2016-04-12 22:52 UTC (permalink / raw) To: Angelo Graziosi; +Cc: emacs-devel On 04/12/2016 01:54 PM, Angelo Graziosi wrote: > current build logs have a lot of "garbage" like this: > > [...] > C:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lib-src/ntlib.c:110:15: > warning: format '%d' expects argument of type 'int', but argument 2 > has type 'DWORD {aka long unsigned int}' [-Wformat=] > > printf ("Checking parent status failed: %d\n", GetLastError ()); For portable code, that would be a valid warning. If GetLastError returns unsigned long, the format should use %lu, not %d As I understand it, though, MS-Windows defines GetLastError to return unsigned int on 64-bit machines, and unsigned long on 32-bit machines (!). This idiosyncrasy could be handled in the MS-Windows port by something like this: |#ifdef __MINGW64__ # define pDWORD "" #else # define pDWORD "l" #endif and then the above code could be: printf ("Checking parent status failed: %"pDWORD"u\n", GetLastError ()); | Perhaps %u happens to work on both 32- and 64-bit MS-Windows, and if so then plain %u should suffice in practice. > checking whether C compiler handles -Wbuiltin-macro-redefined... yes > [...] > > Why enabling this by default? All this should be OFF by default and > only the maintainers which need it should enable it Warnings are enabled by default in master if you have a .git subdirectory (and thus are more likely to be a maintainer-type). See the thread containing this email: http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00174.html and the followup change here: http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5baecbc0ebc11178edd73431b644a5de0a31be25 It would be easy enough to disable -Wformat warnings when compiling anything under MS-Windows), if MS-Windows developers would prefer that. I'd rather leave these warnings enabled on non-MS-Windows platforms, though, as they're useful for catching portability glitches. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-12 22:52 ` MS-Windows warnings (was build failure) " Paul Eggert @ 2016-04-12 23:36 ` Angelo Graziosi 2016-04-13 5:49 ` Yuri Khan ` (2 subsequent siblings) 3 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-04-12 23:36 UTC (permalink / raw) To: Paul Eggert; +Cc: emacs-devel I continue to be of the opinion that those warning should be off by default. Only who take care of Windows port etc. should enable the option to have them, if one needs them, obviously.. In any case, I have already taken the appropriate countermeasures to shutdown them.. Angelo Il 13/04/2016 00:52, Paul Eggert ha scritto: > On 04/12/2016 01:54 PM, Angelo Graziosi wrote: > >> current build logs have a lot of "garbage" like this: >> >> [...] >> C:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lib-src/ntlib.c:110:15: >> warning: format '%d' expects argument of type 'int', but argument 2 >> has type 'DWORD {aka long unsigned int}' [-Wformat=] >> >> printf ("Checking parent status failed: %d\n", GetLastError ()); > > For portable code, that would be a valid warning. If GetLastError > returns unsigned long, the format should use %lu, not %d > > As I understand it, though, MS-Windows defines GetLastError to return > unsigned int on 64-bit machines, and unsigned long on 32-bit machines > (!). This idiosyncrasy could be handled in the MS-Windows port by > something like this: > > |#ifdef __MINGW64__ # define pDWORD "" #else # define pDWORD "l" #endif > and then the above code could be: printf ("Checking parent status > failed: %"pDWORD"u\n", GetLastError ()); | > > Perhaps %u happens to work on both 32- and 64-bit MS-Windows, and if so > then plain %u should suffice in practice. > >> checking whether C compiler handles -Wbuiltin-macro-redefined... yes >> [...] >> >> Why enabling this by default? All this should be OFF by default and >> only the maintainers which need it should enable it > > Warnings are enabled by default in master if you have a .git > subdirectory (and thus are more likely to be a maintainer-type). See the > thread containing this email: > > http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00174.html > > and the followup change here: > > http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5baecbc0ebc11178edd73431b644a5de0a31be25 > > > It would be easy enough to disable -Wformat warnings when compiling > anything under MS-Windows), if MS-Windows developers would prefer that. > I'd rather leave these warnings enabled on non-MS-Windows platforms, > though, as they're useful for catching portability glitches. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-12 22:52 ` MS-Windows warnings (was build failure) " Paul Eggert 2016-04-12 23:36 ` Angelo Graziosi @ 2016-04-13 5:49 ` Yuri Khan 2016-04-13 15:26 ` Eli Zaretskii 2016-04-19 15:46 ` Davis Herring 3 siblings, 0 replies; 119+ messages in thread From: Yuri Khan @ 2016-04-13 5:49 UTC (permalink / raw) To: Paul Eggert; +Cc: Emacs developers, Angelo Graziosi On Wed, Apr 13, 2016 at 4:52 AM, Paul Eggert <eggert@cs.ucla.edu> wrote: > On 04/12/2016 01:54 PM, Angelo Graziosi wrote: > >> C:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lib-src/ntlib.c:110:15: >> warning: format '%d' expects argument of type 'int', but argument 2 has type >> 'DWORD {aka long unsigned int}' [-Wformat=] >> >> printf ("Checking parent status failed: %d\n", GetLastError ()); > > For portable code, that would be a valid warning. If GetLastError returns > unsigned long, the format should use %lu, not %d The wider issue here is that GetLastError return values are not even meant for printf’ing. They are for feeding through FormatMessage. > As I understand it, though, MS-Windows defines GetLastError to return > unsigned int on 64-bit machines, and unsigned long on 32-bit machines (!). That is, in <stdint.h> terms, uint32_t everywhere. > This idiosyncrasy could be handled in the MS-Windows port by something like > this: > > #ifdef __MINGW64__ > # define pDWORD "" > #else > # define pDWORD "l" > #endif Alternatively, use the non-standard %I32u format specification. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-12 22:52 ` MS-Windows warnings (was build failure) " Paul Eggert 2016-04-12 23:36 ` Angelo Graziosi 2016-04-13 5:49 ` Yuri Khan @ 2016-04-13 15:26 ` Eli Zaretskii 2016-04-13 18:06 ` Paul Eggert 2016-04-19 15:46 ` Davis Herring 3 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-13 15:26 UTC (permalink / raw) To: Paul Eggert; +Cc: emacs-devel, angelo.graziosi > From: Paul Eggert <eggert@cs.ucla.edu> > Date: Tue, 12 Apr 2016 15:52:43 -0700 > Cc: emacs-devel@gnu.org > > As I understand it, though, MS-Windows defines GetLastError to return > unsigned int on 64-bit machines, and unsigned long on 32-bit machines (!). No, the return value is always DWORD, which is 'unsigned long', an unsigned 32-bit type, on both 64-bit and 32-bit Windows. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-13 15:26 ` Eli Zaretskii @ 2016-04-13 18:06 ` Paul Eggert 2016-04-13 19:16 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Paul Eggert @ 2016-04-13 18:06 UTC (permalink / raw) To: Eli Zaretskii; +Cc: angelo.graziosi, emacs-devel On 04/13/2016 08:26 AM, Eli Zaretskii wrote: > the return value is always DWORD, which is 'unsigned long', an > unsigned 32-bit type, on both 64-bit and 32-bit Windows. Ah, sorry, I guess I was confused by Cygwin. In that case the %ul format spec should suffice to print the number, unless you'd prefer to feed the number into FormatMessage as Yuri suggested. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-13 18:06 ` Paul Eggert @ 2016-04-13 19:16 ` Eli Zaretskii 0 siblings, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-13 19:16 UTC (permalink / raw) To: Paul Eggert; +Cc: angelo.graziosi, emacs-devel > Cc: emacs-devel@gnu.org, angelo.graziosi@alice.it > From: Paul Eggert <eggert@cs.ucla.edu> > Date: Wed, 13 Apr 2016 11:06:28 -0700 > > > In that case the %ul format spec should suffice to print the number, Right. > unless you'd prefer to feed the number into FormatMessage as Yuri > suggested. No, I see no need. These errors should never happen, and I think the function in question is not used nowadays anyway. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-12 22:52 ` MS-Windows warnings (was build failure) " Paul Eggert ` (2 preceding siblings ...) 2016-04-13 15:26 ` Eli Zaretskii @ 2016-04-19 15:46 ` Davis Herring 2016-04-19 16:04 ` Eli Zaretskii 3 siblings, 1 reply; 119+ messages in thread From: Davis Herring @ 2016-04-19 15:46 UTC (permalink / raw) To: Paul Eggert; +Cc: emacs-devel, Angelo Graziosi > As I understand it, though, MS-Windows defines GetLastError to return > unsigned int on 64-bit machines, and unsigned long on 32-bit machines > (!). This idiosyncrasy could be handled in the MS-Windows port by > something like this: > > |#ifdef __MINGW64__ # define pDWORD "" #else # define pDWORD "l" #endif > and then the above code could be: printf ("Checking parent status > failed: %"pDWORD"u\n", GetLastError ()); | I know the real problem has been addressed otherwise; however, surely for this sort of variability (between just these two types) one should simply write printf ("Checking parent status failed: %lu\n", (unsigned long) GetLastError ()); without any preprocessor excitement. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-19 15:46 ` Davis Herring @ 2016-04-19 16:04 ` Eli Zaretskii 2016-04-19 19:19 ` Davis Herring 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-19 16:04 UTC (permalink / raw) To: Davis Herring; +Cc: eggert, angelo.graziosi, emacs-devel > From: Davis Herring <herring@lanl.gov> > Date: Tue, 19 Apr 2016 09:46:43 -0600 > Cc: emacs-devel@gnu.org, Angelo Graziosi <angelo.graziosi@alice.it> > > > As I understand it, though, MS-Windows defines GetLastError to return > > unsigned int on 64-bit machines, and unsigned long on 32-bit machines > > (!). This idiosyncrasy could be handled in the MS-Windows port by > > something like this: > > > > |#ifdef __MINGW64__ # define pDWORD "" #else # define pDWORD "l" #endif > > and then the above code could be: printf ("Checking parent status > > failed: %"pDWORD"u\n", GetLastError ()); | > > I know the real problem has been addressed otherwise; however, surely > for this sort of variability (between just these two types) one should > simply write > > printf ("Checking parent status failed: %lu\n", > (unsigned long) GetLastError ()); > > without any preprocessor excitement. If GetLastError returned a 64-bit value on 64-bit Windows, as Paul thought, then your cast wouldn't be correct, of course, because 'unsigned long' is a 32-bit type on all versions of Windows. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: MS-Windows warnings (was build failure) for Emacs master 2016-04-19 16:04 ` Eli Zaretskii @ 2016-04-19 19:19 ` Davis Herring 0 siblings, 0 replies; 119+ messages in thread From: Davis Herring @ 2016-04-19 19:19 UTC (permalink / raw) To: Eli Zaretskii; +Cc: eggert, angelo.graziosi, emacs-devel > If GetLastError returned a 64-bit value on 64-bit Windows, as Paul > thought, then your cast wouldn't be correct, of course, because > 'unsigned long' is a 32-bit type on all versions of Windows. I was responding only to the suggestion in its immediate context, not any actual statement (or other confusion) about GetLastError. Paul's text mentions "unsigned int" and "unsigned long". If those are the only two choices, the cast to unsigned long will always succeed. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-12 0:36 ` Angelo Graziosi 2016-04-12 11:36 ` Phillip Lord @ 2016-04-12 15:28 ` Eli Zaretskii 2016-04-12 21:00 ` Angelo Graziosi ` (3 more replies) 1 sibling, 4 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-12 15:28 UTC (permalink / raw) To: Angelo Graziosi; +Cc: emacs-devel > Cc: emacs-devel@gnu.org > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Tue, 12 Apr 2016 02:36:23 +0200 > > Just for the record... > > After about a month, the issue has reappeared. > > Now it fails with this message: > > [...] > Loading button... > Loading loaddefs.el (source)... > Wrong number of arguments: autoload, 1325 > Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito > make[1]: *** [emacs.exe] Errore 127 > make[1]: uscita dalla directory "/tmp/work/emacs-master/src" > Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito > make: *** [src] Errore 2 > > but the lisp/loaddefs.el seems to have the same defects.. And if you delete loaddefs.el, does the following build succeed? ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-12 15:28 ` Build failure " Eli Zaretskii @ 2016-04-12 21:00 ` Angelo Graziosi 2016-04-12 21:49 ` Andy Moreton ` (2 subsequent siblings) 3 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-04-12 21:00 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Il 12/04/2016 17:28, Eli Zaretskii ha scritto: >> Cc: emacs-devel@gnu.org >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Tue, 12 Apr 2016 02:36:23 +0200 >> >> Just for the record... >> >> After about a month, the issue has reappeared. >> >> Now it fails with this message: >> >> [...] >> Loading button... >> Loading loaddefs.el (source)... >> Wrong number of arguments: autoload, 1325 >> Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito >> make[1]: *** [emacs.exe] Errore 127 >> make[1]: uscita dalla directory "/tmp/work/emacs-master/src" >> Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito >> make: *** [src] Errore 2 >> >> but the lisp/loaddefs.el seems to have the same defects.. > > And if you delete loaddefs.el, does the following build succeed? Hmm.. maybe. The fact is that currently I build using the MSYS2 procedure (https://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2), i.e. with their build script PKGBUILD etc. I will try to setup the build differently to verify your conjecture.. Angelo ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-12 15:28 ` Build failure " Eli Zaretskii 2016-04-12 21:00 ` Angelo Graziosi @ 2016-04-12 21:49 ` Andy Moreton 2016-04-13 2:37 ` Eli Zaretskii 2016-04-12 22:42 ` Angelo Graziosi 2016-04-13 20:12 ` Angelo Graziosi 3 siblings, 1 reply; 119+ messages in thread From: Andy Moreton @ 2016-04-12 21:49 UTC (permalink / raw) To: emacs-devel On Tue 12 Apr 2016, Eli Zaretskii wrote: >> Cc: emacs-devel@gnu.org >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Tue, 12 Apr 2016 02:36:23 +0200 >> >> Just for the record... >> >> After about a month, the issue has reappeared. >> >> Now it fails with this message: >> >> [...] >> Loading button... >> Loading loaddefs.el (source)... >> Wrong number of arguments: autoload, 1325 >> Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito >> make[1]: *** [emacs.exe] Errore 127 >> make[1]: uscita dalla directory "/tmp/work/emacs-master/src" >> Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito >> make: *** [src] Errore 2 >> >> but the lisp/loaddefs.el seems to have the same defects.. > > And if you delete loaddefs.el, does the following build succeed? As another data point, I have a similar failure from the emacs-25 branch building with MSYS2 64bit on Win7. On that machine, building with "make -j4" fails and produces a corrupted loaddefs.el. Deleting loaddefs.el and rebuilding with "make -j4" also fails. Deleting loaddefs.el and rebuilding with "make -j1" succeeds. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-12 21:49 ` Andy Moreton @ 2016-04-13 2:37 ` Eli Zaretskii 2016-04-13 23:11 ` Andy Moreton 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-13 2:37 UTC (permalink / raw) To: Andy Moreton; +Cc: emacs-devel > From: Andy Moreton <andrewjmoreton@gmail.com> > Date: Tue, 12 Apr 2016 22:49:32 +0100 > > As another data point, I have a similar failure from the emacs-25 branch > building with MSYS2 64bit on Win7. > > On that machine, building with "make -j4" fails and produces a corrupted > loaddefs.el. Deleting loaddefs.el and rebuilding with "make -j4" also > fails. Deleting loaddefs.el and rebuilding with "make -j1" succeeds. Please debug the corruption. I don't see the problem on any of my builds, so I cannot debug this, and having all these reports without anyone working on fixing the problem is very disturbing. Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-13 2:37 ` Eli Zaretskii @ 2016-04-13 23:11 ` Andy Moreton 2016-04-14 7:32 ` Phillip Lord 2016-04-14 16:35 ` Eli Zaretskii 0 siblings, 2 replies; 119+ messages in thread From: Andy Moreton @ 2016-04-13 23:11 UTC (permalink / raw) To: emacs-devel On Wed 13 Apr 2016, Eli Zaretskii wrote: >> From: Andy Moreton <andrewjmoreton@gmail.com> >> Date: Tue, 12 Apr 2016 22:49:32 +0100 >> >> As another data point, I have a similar failure from the emacs-25 branch >> building with MSYS2 64bit on Win7. >> >> On that machine, building with "make -j4" fails and produces a corrupted >> loaddefs.el. Deleting loaddefs.el and rebuilding with "make -j4" also >> fails. Deleting loaddefs.el and rebuilding with "make -j1" succeeds. > > Please debug the corruption. I don't see the problem on any of my > builds, so I cannot debug this, and having all these reports without > anyone working on fixing the problem is very disturbing. The corrupted loaddefs.el file seems to be the right size, but the last 768 bytes are zero instead of the expected content. To debug this I have tried extracting the command from the autoload target in lisp/Makefile and running that standalone. This results in repeatably building a corrutp loaddefs.el (if it is deleted before each run). Running that command using "bootstrap-emacs -Q" (i.e. interactively) shows that the *autoload-file* buffer contains the 768 zero characters at end, so it appears that the corruption occurs before the buffer is written to disk. Any hints on how to debug `batch-update-autoloads' to diagnose this further would be welcome. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-13 23:11 ` Andy Moreton @ 2016-04-14 7:32 ` Phillip Lord 2016-04-14 16:06 ` Paul Eggert 2016-04-14 16:35 ` Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Phillip Lord @ 2016-04-14 7:32 UTC (permalink / raw) To: Andy Moreton; +Cc: emacs-devel On Thu, April 14, 2016 12:11 am, Andy Moreton wrote: > On Wed 13 Apr 2016, Eli Zaretskii wrote: > > >>> From: Andy Moreton <andrewjmoreton@gmail.com> >>> Date: Tue, 12 Apr 2016 22:49:32 +0100 >>> >>> >>> As another data point, I have a similar failure from the emacs-25 >>> branch building with MSYS2 64bit on Win7. >>> >>> On that machine, building with "make -j4" fails and produces a >>> corrupted loaddefs.el. Deleting loaddefs.el and rebuilding with "make >>> -j4" also >>> fails. Deleting loaddefs.el and rebuilding with "make -j1" succeeds. >> >> Please debug the corruption. I don't see the problem on any of my >> builds, so I cannot debug this, and having all these reports without >> anyone working on fixing the problem is very disturbing. > > The corrupted loaddefs.el file seems to be the right size, but the last > 768 bytes are zero instead of the expected content. > > > To debug this I have tried extracting the command from the autoload > target in lisp/Makefile and running that standalone. This results in > repeatably building a corrutp loaddefs.el (if it is deleted before each > run). > > Running that command using "bootstrap-emacs -Q" (i.e. interactively) > shows that the *autoload-file* buffer contains the 768 zero characters at > end, so it appears that the corruption occurs before the buffer is written > to disk. > > Any hints on how to debug `batch-update-autoloads' to diagnose this > further would be welcome. I haven't got this far, but I also have both Andy and Angelo's build failures working (er, failing) reproducibly now. It also appears that my autoload patch on master is causing a build failure (only on windows). If no one solves it first, I will bisect this as soon as possible, but in practice this is likely to be next week. Phil ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 7:32 ` Phillip Lord @ 2016-04-14 16:06 ` Paul Eggert 2016-04-14 16:19 ` Eli Zaretskii 2016-04-15 11:08 ` Build failure for Emacs master Phillip Lord 0 siblings, 2 replies; 119+ messages in thread From: Paul Eggert @ 2016-04-14 16:06 UTC (permalink / raw) To: Phillip Lord, Andy Moreton; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 960 bytes --] On 04/14/2016 12:32 AM, Phillip Lord wrote: > I also have both Andy and Angelo's build > failures working (er, failing) reproducibly now. It also appears that my > autoload patch on master is causing a build failure (only on windows). > > If no one solves it first, I will bisect this as soon as possible, but in > practice this is likely to be next week. If you're right then there must be at least two bugs, right? Your autoload patch is only on master, but people are also reporting problems in the emacs-25 branch. I am suspicious of copy-file. Why does it copy files possibly in text mode on MS-Windows, while truncating based on byte counts? That sounds like a recipe for trouble, as the miscount could cause file "truncation" to instead append a bunch of null bytes, which sounds like the symptoms you're observing. Does the attached patch work around one of the bugs for you? This patch shouldn't affect behavior on GNUish or POSIXish hosts. [-- Attachment #2: fileio.diff --] [-- Type: text/x-patch, Size: 1140 bytes --] diff --git a/src/fileio.c b/src/fileio.c index dfab3de..69aa3f6 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1929,7 +1929,7 @@ permissions. */) } #else /* not WINDOWSNT */ immediate_quit = 1; - ifd = emacs_open (SSDATA (encoded_file), O_RDONLY, 0); + ifd = emacs_open (SSDATA (encoded_file), O_RDONLY | O_BINARY, 0); immediate_quit = 0; if (ifd < 0) @@ -1963,15 +1963,15 @@ permissions. */) new_mask = S_IREAD | S_IWRITE; #endif - ofd = emacs_open (SSDATA (encoded_newname), O_WRONLY | O_CREAT | O_EXCL, - new_mask); + ofd = emacs_open (SSDATA (encoded_newname), + O_WRONLY | O_CREAT | O_EXCL | O_BINARY, new_mask); if (ofd < 0 && errno == EEXIST) { if (NILP (ok_if_already_exists) || INTEGERP (ok_if_already_exists)) barf_or_query_if_file_exists (newname, true, "copy to it", INTEGERP (ok_if_already_exists), false); already_exists = true; - ofd = emacs_open (SSDATA (encoded_newname), O_WRONLY, 0); + ofd = emacs_open (SSDATA (encoded_newname), O_WRONLY | O_BINARY, 0); } if (ofd < 0) report_file_error ("Opening output file", newname); ^ permalink raw reply related [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 16:06 ` Paul Eggert @ 2016-04-14 16:19 ` Eli Zaretskii 2016-04-14 16:50 ` O_BINARY and emacs_open (was: Build failure for Emacs master) Paul Eggert 2016-04-15 11:08 ` Build failure for Emacs master Phillip Lord 1 sibling, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 16:19 UTC (permalink / raw) To: Paul Eggert; +Cc: emacs-devel, andrewjmoreton, phillip.lord > From: Paul Eggert <eggert@cs.ucla.edu> > Date: Thu, 14 Apr 2016 09:06:03 -0700 > Cc: emacs-devel@gnu.org > > I am suspicious of copy-file. Why does it copy files possibly in text > mode on MS-Windows No, we set the mode to be binary by default in emacs_open, if text isn't explicitly requested: int emacs_open (const char *file, int oflags, int mode) { int fd; if (! (oflags & O_TEXT)) oflags |= O_BINARY; <<<<<<<<<<<<<<<<<<<<<<<<< oflags |= O_CLOEXEC; while ((fd = open (file, oflags, mode)) < 0 && errno == EINTR) QUIT; (Emacs on Windows always used binary mode by default, it's just that we changed the implementation of that lately: instead of setting the global variable _fmode, we now conceal that in emacs_open.) ^ permalink raw reply [flat|nested] 119+ messages in thread
* O_BINARY and emacs_open (was: Build failure for Emacs master) 2016-04-14 16:19 ` Eli Zaretskii @ 2016-04-14 16:50 ` Paul Eggert 0 siblings, 0 replies; 119+ messages in thread From: Paul Eggert @ 2016-04-14 16:50 UTC (permalink / raw) To: Eli Zaretskii; +Cc: phillip.lord, andrewjmoreton, emacs-devel [-- Attachment #1: Type: text/plain, Size: 343 bytes --] On 04/14/2016 09:19 AM, Eli Zaretskii wrote: > No, we set the mode to be binary by default in emacs_open, if text > isn't explicitly requested: Ah, in that case we can simplify emacs_open callers, as they no longer need to worry about O_BINARY and this will help to lessen confusion such as mine. I installed the attached patch on master. [-- Attachment #2: 0001-Simplify-use-of-O_BINARY.patch --] [-- Type: application/x-patch, Size: 4928 bytes --] ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 16:06 ` Paul Eggert 2016-04-14 16:19 ` Eli Zaretskii @ 2016-04-15 11:08 ` Phillip Lord 2016-04-15 14:40 ` Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Phillip Lord @ 2016-04-15 11:08 UTC (permalink / raw) To: Paul Eggert; +Cc: Andy Moreton, emacs-devel Paul Eggert <eggert@cs.ucla.edu> writes: > On 04/14/2016 12:32 AM, Phillip Lord wrote: >> I also have both Andy and Angelo's build >> failures working (er, failing) reproducibly now. It also appears that my >> autoload patch on master is causing a build failure (only on windows). >> >> If no one solves it first, I will bisect this as soon as possible, but in >> practice this is likely to be next week. > > If you're right then there must be at least two bugs, right? Your autoload > patch is only on master, but people are also reporting problems in the > emacs-25 branch. If am right. I'm trying to bisect - I'm using the following bisect script git clean -xf --exclude "phil*" ./autogen.sh PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure make -j 20 The --exclude "phil*" is just to stop git clean from deleting my bisect script. The make -j 20 is because Andrew said he was getting issues with -j > 0. I seem to get this crash a lot: Checking d:/home/msys-emacs/git/master-copy/lisp/leim/quail/ARRAY30.el ... Checking d:/home/msys-emacs/git/master-copy/lisp/leim/quail/arabic.el ... Checking d:/home/msys-emacs/git/master-copy/lisp/leim/quail/4Corner.el ... make[2]: Leaving directory '/d/home/msys-emacs/git/master-copy/leim' Making generated-autoload-file local to *autoload-file* while let-bound! Loading macroexp.elc... leim/ja-dic/ja-dic.el:0:0: error: scan-error: (Unbalanced parentheses 413482 2336649) Makefile:181: recipe for target 'loaddefs.el' failed make[2]: *** [loaddefs.el] Error 127 make[2]: Leaving directory '/d/home/msys-emacs/git/master-copy/lisp' Makefile:701: recipe for target '../lisp/loaddefs.el' failed make[1]: *** [../lisp/loaddefs.el] Error 2 make[1]: Leaving directory '/d/home/msys-emacs/git/master-copy/src' Makefile:398: recipe for target 'src' failed make: *** [src] Error 2 ja-dic.el is seriously ill. It has lots of ^M's all over the place and the japanese characters are like so: "\344\202\222". I am also seeing: make[2]: Entering directory '/d/home/msys-emacs/git/master-copy/leim' GEN ../lisp/leim/ja-dic/ja-dic.el Symbol's function definition is void: char-displayable-p Popping up periodically. I haven't been able to try your patch yet, I am afraid. Phil ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-15 11:08 ` Build failure for Emacs master Phillip Lord @ 2016-04-15 14:40 ` Eli Zaretskii 2016-04-18 19:08 ` Phillip Lord 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-15 14:40 UTC (permalink / raw) To: Phillip Lord; +Cc: eggert, andrewjmoreton, emacs-devel > From: phillip.lord@russet.org.uk (Phillip Lord) > Date: Fri, 15 Apr 2016 12:08:20 +0100 > Cc: Andy Moreton <andrewjmoreton@gmail.com>, emacs-devel@gnu.org > > > If you're right then there must be at least two bugs, right? Your autoload > > patch is only on master, but people are also reporting problems in the > > emacs-25 branch. > > If am right. > > I'm trying to bisect - I'm using the following bisect script > > > git clean -xf --exclude "phil*" > > ./autogen.sh > PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure > make -j 20 > > > The --exclude "phil*" is just to stop git clean from deleting my bisect > script. The make -j 20 is because Andrew said he was getting issues with > -j > 0. > > I seem to get this crash a lot: Please try again, after updating from emacs-25, or apply commit ab849b7 from emacs-25 if you want to try that on master. I think I might just have squashed this elusive bug. Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-15 14:40 ` Eli Zaretskii @ 2016-04-18 19:08 ` Phillip Lord 2016-04-18 19:33 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Phillip Lord @ 2016-04-18 19:08 UTC (permalink / raw) To: Eli Zaretskii; +Cc: eggert, andrewjmoreton, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: phillip.lord@russet.org.uk (Phillip Lord) >> Date: Fri, 15 Apr 2016 12:08:20 +0100 >> Cc: Andy Moreton <andrewjmoreton@gmail.com>, emacs-devel@gnu.org >> >> > If you're right then there must be at least two bugs, right? Your autoload >> > patch is only on master, but people are also reporting problems in the >> > emacs-25 branch. >> >> If am right. >> >> I'm trying to bisect - I'm using the following bisect script >> >> >> git clean -xf --exclude "phil*" >> >> ./autogen.sh >> PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure >> make -j 20 >> >> >> The --exclude "phil*" is just to stop git clean from deleting my bisect >> script. The make -j 20 is because Andrew said he was getting issues with >> -j > 0. >> >> I seem to get this crash a lot: > > Please try again, after updating from emacs-25, or apply commit > ab849b7 from emacs-25 if you want to try that on master. I think I > might just have squashed this elusive bug. Sorry for the delay in testing, but I tried this out today multiple times -- master is still crashing and emacs-25 is building freely, so it does appear that the fix works. Even when using make highly parallel. Phil ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-18 19:08 ` Phillip Lord @ 2016-04-18 19:33 ` Eli Zaretskii 2016-04-18 20:05 ` Phillip Lord 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-18 19:33 UTC (permalink / raw) To: Phillip Lord; +Cc: eggert, andrewjmoreton, emacs-devel > From: phillip.lord@russet.org.uk (Phillip Lord) > Cc: eggert@cs.ucla.edu, andrewjmoreton@gmail.com, emacs-devel@gnu.org > Date: Mon, 18 Apr 2016 20:08:14 +0100 > > > Please try again, after updating from emacs-25, or apply commit > > ab849b7 from emacs-25 if you want to try that on master. I think I > > might just have squashed this elusive bug. > > Sorry for the delay in testing, but I tried this out today multiple > times -- master is still crashing and emacs-25 is building freely, so it > does appear that the fix works. Even when using make highly parallel. Thanks for testing. Is the way master crashes documented in detail in some bug report or some thread you can point to? ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-18 19:33 ` Eli Zaretskii @ 2016-04-18 20:05 ` Phillip Lord 2016-04-18 21:10 ` Paul Eggert 0 siblings, 1 reply; 119+ messages in thread From: Phillip Lord @ 2016-04-18 20:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel, eggert, andrewjmoreton, Phillip Lord On Mon, April 18, 2016 8:33 pm, Eli Zaretskii wrote: >> From: phillip.lord@russet.org.uk (Phillip Lord) >> Cc: eggert@cs.ucla.edu, andrewjmoreton@gmail.com, emacs-devel@gnu.org >> Date: Mon, 18 Apr 2016 20:08:14 +0100 >> >> >>> Please try again, after updating from emacs-25, or apply commit >>> ab849b7 from emacs-25 if you want to try that on master. I think I >>> might just have squashed this elusive bug. >> >> Sorry for the delay in testing, but I tried this out today multiple >> times -- master is still crashing and emacs-25 is building freely, so it >> does appear that the fix works. Even when using make highly parallel. > > Thanks for testing. > > > Is the way master crashes documented in detail in some bug report or > some thread you can point to? The one you fixed on Emacs-25---corruption at the end of loaddefs. Phil ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-18 20:05 ` Phillip Lord @ 2016-04-18 21:10 ` Paul Eggert 2016-04-20 8:18 ` Phillip Lord 0 siblings, 1 reply; 119+ messages in thread From: Paul Eggert @ 2016-04-18 21:10 UTC (permalink / raw) To: Phillip Lord, Eli Zaretskii; +Cc: andrewjmoreton, emacs-devel On 04/18/2016 01:05 PM, Phillip Lord wrote: > The one you fixed on Emacs-25---corruption at the end of loaddefs. I just now merged emacs-25 into master, so the problem should be fixed in master too now. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-18 21:10 ` Paul Eggert @ 2016-04-20 8:18 ` Phillip Lord 2016-04-20 15:05 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Phillip Lord @ 2016-04-20 8:18 UTC (permalink / raw) To: Paul Eggert; +Cc: Eli Zaretskii, andrewjmoreton, emacs-devel Paul Eggert <eggert@cs.ucla.edu> writes: > On 04/18/2016 01:05 PM, Phillip Lord wrote: >> The one you fixed on Emacs-25---corruption at the end of loaddefs. > > I just now merged emacs-25 into master, so the problem should be fixed in > master too now. Unfortunately, I am still getting failing builds on master, so I guess that there is a separate issue. It occurs repeatably, especially on parallel builds. The end of the build looks like this: ELC emacs-lisp/autoload.elc make[2]: Leaving directory '/d/home/msys-emacs/git/master-copy/lisp' make -C ../lisp autoloads EMACS="../src/bootstrap-emacs.exe" make[2]: Entering directory '/d/home/msys-emacs/git/master-copy/lisp' GEN calendar/cal-loaddefs.el GEN calendar/diary-loaddefs.el GEN calendar/hol-loaddefs.el GEN mh-e/mh-loaddefs.el GEN net/tramp-loaddefs.el Directories for loaddefs: . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic ./cedet/semantic/analyze ./cedet/semantic/bovine ./cedet/semantic/decorate ./cedet/semantic/symref ./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation ./erc ./eshell ./gnus ./international ./language ./leim ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc GEN loaddefs.el Making generated-autoload-file local to *autoload-file* while let-bound! Loading macroexp.elc... leim/ja-dic/ja-dic.el:0:0: error: scan-error: (Unbalanced parentheses 413482 2336649) Makefile:181: recipe for target 'loaddefs.el' failed make[2]: *** [loaddefs.el] Error 127 make[2]: Leaving directory '/d/home/msys-emacs/git/master-copy/lisp' Makefile:727: recipe for target '../lisp/loaddefs.el' failed make[1]: *** [../lisp/loaddefs.el] Error 2 make[1]: Leaving directory '/d/home/msys-emacs/git/master-copy/src' Makefile:398: recipe for target 'src' failed make: *** [src] Error 2 I am finding some inconsistency between different machines; on one machine everything works fine, on another this happens. Phil ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-20 8:18 ` Phillip Lord @ 2016-04-20 15:05 ` Eli Zaretskii 2016-04-20 16:55 ` Phillip Lord 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-20 15:05 UTC (permalink / raw) To: Phillip Lord; +Cc: eggert, andrewjmoreton, emacs-devel > From: phillip.lord@russet.org.uk (Phillip Lord) > Cc: Eli Zaretskii <eliz@gnu.org>, andrewjmoreton@gmail.com, emacs-devel@gnu.org > Date: Wed, 20 Apr 2016 09:18:47 +0100 > > Paul Eggert <eggert@cs.ucla.edu> writes: > > > On 04/18/2016 01:05 PM, Phillip Lord wrote: > >> The one you fixed on Emacs-25---corruption at the end of loaddefs. > > > > I just now merged emacs-25 into master, so the problem should be fixed in > > master too now. > > > Unfortunately, I am still getting failing builds on master, so I guess > that there is a separate issue. It occurs repeatably, especially on > parallel builds. > > The end of the build looks like this: > > > ELC emacs-lisp/autoload.elc > make[2]: Leaving directory '/d/home/msys-emacs/git/master-copy/lisp' > make -C ../lisp autoloads EMACS="../src/bootstrap-emacs.exe" > make[2]: Entering directory '/d/home/msys-emacs/git/master-copy/lisp' > GEN calendar/cal-loaddefs.el > GEN calendar/diary-loaddefs.el > GEN calendar/hol-loaddefs.el > GEN mh-e/mh-loaddefs.el > GEN net/tramp-loaddefs.el > Directories for loaddefs: . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic ./cedet/semantic/analyze ./cedet/semantic/bovine ./cedet/semantic/decorate ./cedet/semantic/symref ./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation ./erc ./eshell ./gnus ./international ./language ./leim ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc > GEN loaddefs.el > Making generated-autoload-file local to *autoload-file* while let-bound! > Loading macroexp.elc... > leim/ja-dic/ja-dic.el:0:0: error: scan-error: (Unbalanced parentheses 413482 2336649) > Makefile:181: recipe for target 'loaddefs.el' failed Is this a full bootstrap, or just a rebuild after "git pull"? If the latter, copy ldefs-boot.el over loaddefs.el, and try again, or make a full bootstrap. (The problem might be triggered by a bad loaddefs.el left from an old build, before the bug was solved.) ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-20 15:05 ` Eli Zaretskii @ 2016-04-20 16:55 ` Phillip Lord 2016-04-20 17:41 ` Eli Zaretskii 2016-04-20 17:59 ` Andy Moreton 0 siblings, 2 replies; 119+ messages in thread From: Phillip Lord @ 2016-04-20 16:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: eggert, andrewjmoreton, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: phillip.lord@russet.org.uk (Phillip Lord) >> Cc: Eli Zaretskii <eliz@gnu.org>, andrewjmoreton@gmail.com, emacs-devel@gnu.org >> Date: Wed, 20 Apr 2016 09:18:47 +0100 >> >> Paul Eggert <eggert@cs.ucla.edu> writes: >> >> > On 04/18/2016 01:05 PM, Phillip Lord wrote: >> >> The one you fixed on Emacs-25---corruption at the end of loaddefs. >> > >> > I just now merged emacs-25 into master, so the problem should be fixed in >> > master too now. >> >> >> Unfortunately, I am still getting failing builds on master, so I guess >> that there is a separate issue. It occurs repeatably, especially on >> parallel builds. >> >> The end of the build looks like this: >> >> >> ELC emacs-lisp/autoload.elc >> make[2]: Leaving directory '/d/home/msys-emacs/git/master-copy/lisp' >> make -C ../lisp autoloads EMACS="../src/bootstrap-emacs.exe" >> make[2]: Entering directory '/d/home/msys-emacs/git/master-copy/lisp' >> GEN calendar/cal-loaddefs.el >> GEN calendar/diary-loaddefs.el >> GEN calendar/hol-loaddefs.el >> GEN mh-e/mh-loaddefs.el >> GEN net/tramp-loaddefs.el >> Directories for loaddefs: . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic ./cedet/semantic/analyze ./cedet/semantic/bovine ./cedet/semantic/decorate ./cedet/semantic/symref ./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation ./erc ./eshell ./gnus ./international ./language ./leim ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc >> GEN loaddefs.el >> Making generated-autoload-file local to *autoload-file* while let-bound! >> Loading macroexp.elc... >> leim/ja-dic/ja-dic.el:0:0: error: scan-error: (Unbalanced parentheses 413482 2336649) >> Makefile:181: recipe for target 'loaddefs.el' failed > > Is this a full bootstrap, or just a rebuild after "git pull"? If the > latter, copy ldefs-boot.el over loaddefs.el, and try again, or make a > full bootstrap. (The problem might be triggered by a bad loaddefs.el > left from an old build, before the bug was solved.) It's full bootstrap, am afraid. git clean -xf ./autogen.sh ./configure make That the problem is occuring during generation of loaddefs.el is a red herring I think. loaddefs.el is fine (although empty except for the header). I'm guessing that ja-dic.el is loaded for the first time during the loaddefs.el generation. ja-dic.el looks like it has some serious encoding problems. Phil ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-20 16:55 ` Phillip Lord @ 2016-04-20 17:41 ` Eli Zaretskii 2016-04-20 17:59 ` Andy Moreton 1 sibling, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-20 17:41 UTC (permalink / raw) To: Phillip Lord; +Cc: eggert, andrewjmoreton, emacs-devel > From: phillip.lord@russet.org.uk (Phillip Lord) > Cc: eggert@cs.ucla.edu, andrewjmoreton@gmail.com, emacs-devel@gnu.org > Date: Wed, 20 Apr 2016 17:55:36 +0100 > > That the problem is occuring during generation of loaddefs.el is a red > herring I think. loaddefs.el is fine (although empty except for the > header). I'm guessing that ja-dic.el is loaded for the first time during > the loaddefs.el generation. > > ja-dic.el looks like it has some serious encoding problems. What encoding problems do you see there? I see none: it loads as a UTF-8 file with DOS EOLs. What do you see? Is your Git set up to not convert EOLs? nt/INSTALL has this to say about that: During Git installation, be sure to select the "Checkout as-is, commit as-is" option from the "Configure line ending conversions" dialog. Otherwise, Git will convert text files to DOS-style CRLF end-of-line (EOL) format, which will cause subtle problems when building Emacs, because MSYS tools (see below) used to build Emacs use binary file I/O that preserves the CR characters that get in the way of some text-processing tools, like 'makeinfo' and the commands invoked by the autogen.sh script. If you already have Git installed and configured with some other EOL conversion option, you will need to reconfigure it, removing the following variables from all of your .gitconfig files: core.eol core.safecrlf core.autocrlf If you cloned the Emacs directory before changing these config variables, you will have to delete the repository and re-clone it after the change. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-20 16:55 ` Phillip Lord 2016-04-20 17:41 ` Eli Zaretskii @ 2016-04-20 17:59 ` Andy Moreton 2016-04-21 10:46 ` Phillip Lord 1 sibling, 1 reply; 119+ messages in thread From: Andy Moreton @ 2016-04-20 17:59 UTC (permalink / raw) To: emacs-devel On Wed 20 Apr 2016, Phillip Lord wrote: > Eli Zaretskii <eliz@gnu.org> writes: >> >> Is this a full bootstrap, or just a rebuild after "git pull"? If the >> latter, copy ldefs-boot.el over loaddefs.el, and try again, or make a >> full bootstrap. (The problem might be triggered by a bad loaddefs.el >> left from an old build, before the bug was solved.) > > It's full bootstrap, am afraid. > > git clean -xf > ./autogen.sh > ./configure > make > > That the problem is occuring during generation of loaddefs.el is a red > herring I think. loaddefs.el is fine (although empty except for the > header). I'm guessing that ja-dic.el is loaded for the first time during > the loaddefs.el generation. > > ja-dic.el looks like it has some serious encoding problems. lisp/leim/ja-dic/ is generated during bootstrap, so will not be cleaned by your command above (and may still be corrupt from a previous ffailed build). Try "git clean -xdf" instead. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-20 17:59 ` Andy Moreton @ 2016-04-21 10:46 ` Phillip Lord 0 siblings, 0 replies; 119+ messages in thread From: Phillip Lord @ 2016-04-21 10:46 UTC (permalink / raw) To: Andy Moreton; +Cc: emacs-devel Andy Moreton <andrewjmoreton@gmail.com> writes: > On Wed 20 Apr 2016, Phillip Lord wrote: > >> Eli Zaretskii <eliz@gnu.org> writes: >>> >>> Is this a full bootstrap, or just a rebuild after "git pull"? If the >>> latter, copy ldefs-boot.el over loaddefs.el, and try again, or make a >>> full bootstrap. (The problem might be triggered by a bad loaddefs.el >>> left from an old build, before the bug was solved.) >> >> It's full bootstrap, am afraid. >> >> git clean -xf >> ./autogen.sh >> ./configure >> make >> >> That the problem is occuring during generation of loaddefs.el is a red >> herring I think. loaddefs.el is fine (although empty except for the >> header). I'm guessing that ja-dic.el is loaded for the first time during >> the loaddefs.el generation. >> >> ja-dic.el looks like it has some serious encoding problems. > > lisp/leim/ja-dic/ is generated during bootstrap, so will not be cleaned > by your command above (and may still be corrupt from a previous ffailed > build). Try "git clean -xdf" instead. Ah, yes, indeed. Thank you very much, that was driving me crazy. Phil ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-13 23:11 ` Andy Moreton 2016-04-14 7:32 ` Phillip Lord @ 2016-04-14 16:35 ` Eli Zaretskii 2016-04-14 17:06 ` Andy Moreton 1 sibling, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 16:35 UTC (permalink / raw) To: Andy Moreton; +Cc: emacs-devel > From: Andy Moreton <andrewjmoreton@gmail.com> > Date: Thu, 14 Apr 2016 00:11:42 +0100 > > The corrupted loaddefs.el file seems to be the right size, but the last > 768 bytes are zero instead of the expected content. What is the total size of the loaddefs.el's text, in bytes? Also, can you look in GDB at the buffer text, before it is written to disk, and tell how far, in bytes, is the first null from the beginning of buffer text? (Let me know if you need advice for how to do that with GDB commands.) > Running that command using "bootstrap-emacs -Q" (i.e. interactively) > shows that the *autoload-file* buffer contains the 768 zero characters > at end, so it appears that the corruption occurs before the buffer is > written to disk. Yes, of course. The corruption is caused by inserting and deleting text into/from the buffer, as part as producing the autoload forms. > Any hints on how to debug `batch-update-autoloads' to diagnose this > further would be welcome. The bug is unlikely to be on the Lisp level, it's something very deep in managing buffer memory. Perhaps even on the level of mmap_alloc and mmap_realloc, as they are implemented in w32heap.c (since the only people who complain about this are building Emacs on Windows). If you can somehow establish where exactly in processing of the autoloads the corruption happens (i.e. what file is Emacs processing and what is the contents of the *autoload-file* buffer at that point), that would be a step forward, I think. Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 16:35 ` Eli Zaretskii @ 2016-04-14 17:06 ` Andy Moreton 2016-04-14 17:48 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Andy Moreton @ 2016-04-14 17:06 UTC (permalink / raw) To: emacs-devel On Thu 14 Apr 2016, Eli Zaretskii wrote: >> From: Andy Moreton <andrewjmoreton@gmail.com> >> Date: Thu, 14 Apr 2016 00:11:42 +0100 >> >> The corrupted loaddefs.el file seems to be the right size, but the last >> 768 bytes are zero instead of the expected content. > > What is the total size of the loaddefs.el's text, in bytes? For emacs-25 commit 24b87a1d4aadbdeafbc0db17e3a760cc9a7e21ef, the corrupted loaddefs.el was 1192529 bytes, with the last 768 bytes zeroed. Changing the files scanned for autoloads produces a loaddefs file of different size (e.g. changed doc strings or different autoloads), and can change the size of the zeroed portion at the end of the file. e.g. with local changes, loaddefs.el 1192680 bytes, last 918 bytes zeroed loaddefs.el 1193247 bytes, last 918 bytes zeroed > Also, can you look in GDB at the buffer text, before it is written to > disk, and tell how far, in bytes, is the first null from the beginning > of buffer text? (Let me know if you need advice for how to do that > with GDB commands.) Please give precise instructions as I have no idea how to do that. >> Running that command using "bootstrap-emacs -Q" (i.e. interactively) >> shows that the *autoload-file* buffer contains the 768 zero characters >> at end, so it appears that the corruption occurs before the buffer is >> written to disk. > > Yes, of course. The corruption is caused by inserting and deleting > text into/from the buffer, as part as producing the autoload forms. That wasn't at all obvious to me without some testing: it could easily have been caused by problems serialising the buffer to disk. >> Any hints on how to debug `batch-update-autoloads' to diagnose this >> further would be welcome. > > The bug is unlikely to be on the Lisp level, it's something very deep > in managing buffer memory. Perhaps even on the level of mmap_alloc > and mmap_realloc, as they are implemented in w32heap.c (since the only > people who complain about this are building Emacs on Windows). > > If you can somehow establish where exactly in processing of the > autoloads the corruption happens (i.e. what file is Emacs processing > and what is the contents of the *autoload-file* buffer at that point), > that would be a step forward, I think. Any ideas to help do that are welcome. I've tried running the steps used to build loaddefs.el from "bootstrap-emacs.exe -Q" and stepping though it with edebug - that produces a working loaddefs.el :-( If I start from a completely clean tree (after "git clean -Xdf") and then copy the working loaddefs.el (produced above) to ldefs-boot.el, then a full bootstrap succeeds, and the resulting loaddefs.el is good. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 17:06 ` Andy Moreton @ 2016-04-14 17:48 ` Eli Zaretskii 2016-04-14 18:40 ` Andy Moreton 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 17:48 UTC (permalink / raw) To: Andy Moreton; +Cc: emacs-devel > From: Andy Moreton <andrewjmoreton@gmail.com> > Date: Thu, 14 Apr 2016 18:06:02 +0100 > > > Also, can you look in GDB at the buffer text, before it is written to > > disk, and tell how far, in bytes, is the first null from the beginning > > of buffer text? (Let me know if you need advice for how to do that > > with GDB commands.) > > Please give precise instructions as I have no idea how to do that. Put breakpoint in Fwrite_region, and when it breaks, type these commands: (gdb) p/x ¤t_buffer->text->beg[0] (gdb) find /b9 current_buffer->text->beg,current_buffer->text->beg+GPT_BYTE-1,0 The first one should display the address of the beginning of buffer text. The second one should display up to 9 places where there are nulls in the buffer, I expect them to be consecutive addresses. The first one of those is the address I'm looking for. > > The corruption is caused by inserting and deleting text into/from > > the buffer, as part as producing the autoload forms. > > That wasn't at all obvious to me without some testing: it could easily > have been caused by problems serialising the buffer to disk. There's no serializing, buffer text is (almost) a linear array of bytes. (Or do you mean encoding?) > > If you can somehow establish where exactly in processing of the > > autoloads the corruption happens (i.e. what file is Emacs processing > > and what is the contents of the *autoload-file* buffer at that point), > > that would be a step forward, I think. > > Any ideas to help do that are welcome. I'd start by establishing what Lisp file contributes the portion that should be where you have nulls. > If I start from a completely clean tree (after "git clean -Xdf") and > then copy the working loaddefs.el (produced above) to ldefs-boot.el, > then a full bootstrap succeeds, and the resulting loaddefs.el is good. Are you saying that loaddefs.el is corrupted because the previous loaddefs.el was already corrupted? If so, the corruption is not really reproducible, is it? What happens if you manually correct loaddefs.el (e.g., by bringing a copy from another build), and then try building without "git clean"? Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 17:48 ` Eli Zaretskii @ 2016-04-14 18:40 ` Andy Moreton 2016-04-14 19:31 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Andy Moreton @ 2016-04-14 18:40 UTC (permalink / raw) To: emacs-devel On Thu 14 Apr 2016, Eli Zaretskii wrote: >> From: Andy Moreton <andrewjmoreton@gmail.com> >> Date: Thu, 14 Apr 2016 18:06:02 +0100 >> >> > Also, can you look in GDB at the buffer text, before it is written to >> > disk, and tell how far, in bytes, is the first null from the beginning >> > of buffer text? (Let me know if you need advice for how to do that >> > with GDB commands.) >> >> Please give precise instructions as I have no idea how to do that. > > Put breakpoint in Fwrite_region, and when it breaks, type these > commands: > > (gdb) p/x ¤t_buffer->text->beg[0] > (gdb) find /b9 current_buffer->text->beg,current_buffer->text->beg+GPT_BYTE-1,0 > > The first one should display the address of the beginning of buffer > text. The second one should display up to 9 places where there are > nulls in the buffer, I expect them to be consecutive addresses. The > first one of those is the address I'm looking for. Starting from a tree without a loaddefs.el file, the breakpoint is hit twice. The first time is when the skeleton loaddefs.el is written, that contains just the comemnt header and the trailer with the local variable settings. The second time is when it writes the completed autoloads buffer: Thread 1 hit Breakpoint 1, Fwrite_region (start=..., end=..., filename=..., append=..., visit=..., lockname=..., mustbenew=...) at ../../src/fileio.c:4678 4678 return write_region (start, end, filename, append, visit, lockname, mustbenew, (gdb) p/x ¤t_buffer->text->beg[0] $4 = 0x65a0000 (gdb) find /b9 current_buffer->text->beg,current_buffer->text->beg+GPT_BYTE-1,0 0x66c36b4 1 pattern found. (gdb) >> > The corruption is caused by inserting and deleting text into/from >> > the buffer, as part as producing the autoload forms. >> >> That wasn't at all obvious to me without some testing: it could easily >> have been caused by problems serialising the buffer to disk. > > There's no serializing, buffer text is (almost) a linear array of > bytes. (Or do you mean encoding?) I meant any of the processing to get from content in memory to bits on spinning rust. That can include marshalling, encoding, flushing buffers etc. (not all of which apply here). >> If I start from a completely clean tree (after "git clean -Xdf") and >> then copy the working loaddefs.el (produced above) to ldefs-boot.el, >> then a full bootstrap succeeds, and the resulting loaddefs.el is good. > > Are you saying that loaddefs.el is corrupted because the previous > loaddefs.el was already corrupted? If so, the corruption is not > really reproducible, is it? What happens if you manually correct > loaddefs.el (e.g., by bringing a copy from another build), and then > try building without "git clean"? The whole purpose of starting from a clean tree is to ensure that there is no interference from a previous failed build. batch-update-autoloads updates loaddefs.el in place if that file already exists, so if a previous build has left a corrupted version then subsequent builds will fail. My point was that replacing ldefs-boot.el with an up to date copy of loaddefs.el stopped the corruption. The bootstrap-emacs.exe built using the udpated ldefs-boot.exe produced a working loaddefs.el. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 18:40 ` Andy Moreton @ 2016-04-14 19:31 ` Eli Zaretskii 2016-04-14 20:30 ` Andy Moreton 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 19:31 UTC (permalink / raw) To: Andy Moreton; +Cc: emacs-devel > From: Andy Moreton <andrewjmoreton@gmail.com> > Date: Thu, 14 Apr 2016 19:40:47 +0100 > > Thread 1 hit Breakpoint 1, Fwrite_region (start=..., end=..., filename=..., append=..., visit=..., lockname=..., mustbenew=...) at ../../src/fileio.c:4678 > 4678 return write_region (start, end, filename, append, visit, lockname, mustbenew, > (gdb) p/x ¤t_buffer->text->beg[0] > $4 = 0x65a0000 > (gdb) find /b9 current_buffer->text->beg,current_buffer->text->beg+GPT_BYTE-1,0 > 0x66c36b4 > 1 pattern found. That's not the nulls you reported. What is the value of GPT_BYTE at this point, and what is the value of Z_BYTE? > > There's no serializing, buffer text is (almost) a linear array of > > bytes. (Or do you mean encoding?) > > I meant any of the processing to get from content in memory to bits on > spinning rust. That can include marshalling, encoding, flushing buffers > etc. (not all of which apply here). Theoretically, yes. But not in practice, not in this case. > > Are you saying that loaddefs.el is corrupted because the previous > > loaddefs.el was already corrupted? If so, the corruption is not > > really reproducible, is it? What happens if you manually correct > > loaddefs.el (e.g., by bringing a copy from another build), and then > > try building without "git clean"? > > The whole purpose of starting from a clean tree is to ensure that there > is no interference from a previous failed build. batch-update-autoloads > updates loaddefs.el in place if that file already exists, so if a > previous build has left a corrupted version then subsequent builds will > fail. > > My point was that replacing ldefs-boot.el with an up to date copy of > loaddefs.el stopped the corruption. The bootstrap-emacs.exe built using > the udpated ldefs-boot.exe produced a working loaddefs.el. Sorry, I'm still confused: are the nulls coming from a previous loaddefs.el, or are they coming from Emacs? If the latter, is it true that to reproduce the problem, you need to start from a clean tree, but use an outdated version of ldefs-boot.el? Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 19:31 ` Eli Zaretskii @ 2016-04-14 20:30 ` Andy Moreton 2016-04-15 7:29 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Andy Moreton @ 2016-04-14 20:30 UTC (permalink / raw) To: emacs-devel On Thu 14 Apr 2016, Eli Zaretskii wrote: >> From: Andy Moreton <andrewjmoreton@gmail.com> >> Date: Thu, 14 Apr 2016 19:40:47 +0100 >> >> Thread 1 hit Breakpoint 1, Fwrite_region (start=..., end=..., filename=..., >> append=..., visit=..., lockname=..., mustbenew=...) at >> ../../src/fileio.c:4678 >> 4678 return write_region (start, end, filename, append, visit, lockname, mustbenew, >> (gdb) p/x ¤t_buffer->text->beg[0] >> $4 = 0x65a0000 >> (gdb) find /b9 current_buffer->text->beg,current_buffer->text->beg+GPT_BYTE-1,0 >> 0x66c36b4 >> 1 pattern found. > > That's not the nulls you reported. What is the value of GPT_BYTE at > this point, and what is the value of Z_BYTE? It's not the same binary - efforts to detect what causes the corruption necessitate rebuilding. >> > Are you saying that loaddefs.el is corrupted because the previous >> > loaddefs.el was already corrupted? If so, the corruption is not >> > really reproducible, is it? What happens if you manually correct >> > loaddefs.el (e.g., by bringing a copy from another build), and then >> > try building without "git clean"? >> >> The whole purpose of starting from a clean tree is to ensure that there >> is no interference from a previous failed build. batch-update-autoloads >> updates loaddefs.el in place if that file already exists, so if a >> previous build has left a corrupted version then subsequent builds will >> fail. >> >> My point was that replacing ldefs-boot.el with an up to date copy of >> loaddefs.el stopped the corruption. The bootstrap-emacs.exe built using >> the udpated ldefs-boot.exe produced a working loaddefs.el. > > Sorry, I'm still confused: are the nulls coming from a previous > loaddefs.el, or are they coming from Emacs? If the latter, is it true > that to reproduce the problem, you need to start from a clean tree, > but use an outdated version of ldefs-boot.el? As I understand it, building from a clean tree: a) temacs.exe is built (a bare emacs) b) bootstrap-emacs.exe is built from temacs.exe, using ldefs-boot.el c) bootstrap-emacs.exe is used to create or update loaddefs.el d) emacs.exe is built using loaddefs.el If (c) fails leaving a corrupted loaddefs.el file, then any following build will also fail. This means that trying to dettermine what causes the corruption requires that loaddefs.el is deleted before each attempt. The zero bytes seen in this problem come from step (c). If similar commands are run using "bootstrap-emacs -Q" then when the corruption occurs, the zero bytes are visible in the emacs buffer. As one of my experiments produced a good loaddefs.el, I did this: - start from a completely clean emacs-25 tree - overwrite ldefs-boot.el with the previously built loaddefs.el - do a full bootstrap, which succeeded. I do not know if replacing ldefs-boot.el with a freshly built loaddefs.el fixed the problem, or simply moved the timing around enough that this Heisenbug no longer occurred. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 20:30 ` Andy Moreton @ 2016-04-15 7:29 ` Eli Zaretskii 2016-04-15 8:18 ` Andy Moreton 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-15 7:29 UTC (permalink / raw) To: Andy Moreton; +Cc: emacs-devel > From: Andy Moreton <andrewjmoreton@gmail.com> > Date: Thu, 14 Apr 2016 21:30:19 +0100 > > >> (gdb) p/x ¤t_buffer->text->beg[0] > >> $4 = 0x65a0000 > >> (gdb) find /b9 current_buffer->text->beg,current_buffer->text->beg+GPT_BYTE-1,0 > >> 0x66c36b4 > >> 1 pattern found. > > > > That's not the nulls you reported. What is the value of GPT_BYTE at > > this point, and what is the value of Z_BYTE? > > It's not the same binary - efforts to detect what causes the corruption > necessitate rebuilding. You said you can reproduce this at will, so I thought doing that is not a problem, and then the values would be the same as in this run. Apologies if I misunderstood. > > Sorry, I'm still confused: are the nulls coming from a previous > > loaddefs.el, or are they coming from Emacs? If the latter, is it true > > that to reproduce the problem, you need to start from a clean tree, > > but use an outdated version of ldefs-boot.el? > > As I understand it, building from a clean tree: > a) temacs.exe is built (a bare emacs) > b) bootstrap-emacs.exe is built from temacs.exe, using ldefs-boot.el The last part is only true if there's no loaddefs.el file in the tree. See the commentary and the relevant code in loadup.el. If loaddefs.el does exist, bootstrap-emacs build will use it. > As one of my experiments produced a good loaddefs.el, I did this: > - start from a completely clean emacs-25 tree > - overwrite ldefs-boot.el with the previously built loaddefs.el > - do a full bootstrap, which succeeded. What are the differences between that "successful" loaddefs.el and ldefs-boot.el which produces a corrupted loaddefs.el? The only changes I see are in the time stamp cookies. > I do not know if replacing ldefs-boot.el with a freshly built loaddefs.el > fixed the problem, or simply moved the timing around enough that this > Heisenbug no longer occurred. Sorry, I don't understand: what timing could change as result of modifying one of the inputs? Are you saying that the differences (in size or content) are so significant s to affect the time to read the file into memory? ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-15 7:29 ` Eli Zaretskii @ 2016-04-15 8:18 ` Andy Moreton 2016-04-15 14:38 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Andy Moreton @ 2016-04-15 8:18 UTC (permalink / raw) To: emacs-devel On Fri 15 Apr 2016, Eli Zaretskii wrote: >> From: Andy Moreton <andrewjmoreton@gmail.com> >> Date: Thu, 14 Apr 2016 21:30:19 +0100 >> >> >> (gdb) p/x ¤t_buffer->text->beg[0] >> >> $4 = 0x65a0000 >> >> (gdb) find /b9 current_buffer->text->beg,current_buffer->text->beg+GPT_BYTE-1,0 >> >> 0x66c36b4 >> >> 1 pattern found. >> > >> > That's not the nulls you reported. What is the value of GPT_BYTE at >> > this point, and what is the value of Z_BYTE? >> >> It's not the same binary - efforts to detect what causes the corruption >> necessitate rebuilding. > > You said you can reproduce this at will, so I thought doing that is > not a problem, and then the values would be the same as in this run. > Apologies if I misunderstood. I can reproduce this repeatably from running make, or after building bootstrap-emacs.exe using just the command line used to update loadddefs.el. Attempts to debug with bootstrap-emacs -Q and evaluating the equivalent commands in the scratch buffer (or loaded from a file) do not show the problem. Running under gdb gives variable results. >> > Sorry, I'm still confused: are the nulls coming from a previous >> > loaddefs.el, or are they coming from Emacs? If the latter, is it true >> > that to reproduce the problem, you need to start from a clean tree, >> > but use an outdated version of ldefs-boot.el? >> >> As I understand it, building from a clean tree: >> a) temacs.exe is built (a bare emacs) >> b) bootstrap-emacs.exe is built from temacs.exe, using ldefs-boot.el > > The last part is only true if there's no loaddefs.el file in the > tree. See the commentary and the relevant code in loadup.el. If > loaddefs.el does exist, bootstrap-emacs build will use it. Noted, but here I am building from a clean tree so that loaddefs.el does not exist. >> As one of my experiments produced a good loaddefs.el, I did this: >> - start from a completely clean emacs-25 tree >> - overwrite ldefs-boot.el with the previously built loaddefs.el >> - do a full bootstrap, which succeeded. > > What are the differences between that "successful" loaddefs.el and > ldefs-boot.el which produces a corrupted loaddefs.el? The only > changes I see are in the time stamp cookies. The changes I see are: - timestamp changes - changed autoloads from your changes to grep.el - changes to the files listed in the comment at the end. --[diff ldefs-boot.el loaddefs.el]------------------------------------ @@ -12876,16 +12829,22 @@ The default grep program for `grep-command' and `grep-find-command'. This variable's value takes effect when `grep-compute-defaults' is called.") -(defvar find-program (purecopy "find") "\ +(custom-autoload 'grep-program "grep" t) + +(defvar grep-find-program (purecopy "find") "\ The default find program. This is used by commands like `grep-find-command', `find-dired' and others.") -(defvar xargs-program (purecopy "xargs") "\ +(custom-autoload 'grep-find-program "grep" t) + +(defvar grep-xargs-program (purecopy "xargs") "\ The default xargs program for `grep-find-command'. See `grep-find-use-xargs'. This variable's value takes effect when `grep-compute-defaults' is called.") +(custom-autoload 'grep-xargs-program "grep" t) + (defvar grep-find-use-xargs nil "\ How to invoke find and grep. If `exec', use `find -exec {} ;'. --[diff ldefs-boot.el loaddefs.el]------------------------------------ Should the define-obsolete-variable-alias forms for find-program and xargs-program be marked as autoloads ? >> I do not know if replacing ldefs-boot.el with a freshly built loaddefs.el >> fixed the problem, or simply moved the timing around enough that this >> Heisenbug no longer occurred. > > Sorry, I don't understand: what timing could change as result of > modifying one of the inputs? Are you saying that the differences (in > size or content) are so significant s to affect the time to read the > file into memory? No, but changing the content of ldefs-boot.el can change the timing and behaviour of the bootstrap-emacs.exe that is built from it. Whether the observed bug is timing related or completely deterministic is not yet known. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-15 8:18 ` Andy Moreton @ 2016-04-15 14:38 ` Eli Zaretskii 2016-04-15 15:36 ` Andy Moreton 2016-04-18 8:31 ` Angelo Graziosi 0 siblings, 2 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-15 14:38 UTC (permalink / raw) To: Andy Moreton, Angelo Graziosi; +Cc: emacs-devel > From: Andy Moreton <andrewjmoreton@gmail.com> > Date: Fri, 15 Apr 2016 09:18:58 +0100 > > No, but changing the content of ldefs-boot.el can change the timing and > behaviour of the bootstrap-emacs.exe that is built from it. Whether the > observed bug is timing related or completely deterministic is not yet > known. I've just fixed on the emacs-25 branch a serious bug in the w32 implementation of mmap_realloc. The conditions under which the bug happened are very rare, but when it did happen, we would in effect lose a portion of buffer text, and instead get binary nulls. Sounds familiar? So please try reproducing your problem after updating the repository from upstream, I hope that the problems will be gone. (If you are tracking master, wait until ab849b7 is merged to it, or apply it manually.) ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-15 14:38 ` Eli Zaretskii @ 2016-04-15 15:36 ` Andy Moreton 2016-04-18 8:31 ` Angelo Graziosi 1 sibling, 0 replies; 119+ messages in thread From: Andy Moreton @ 2016-04-15 15:36 UTC (permalink / raw) To: emacs-devel On Fri 15 Apr 2016, Eli Zaretskii wrote: >> From: Andy Moreton <andrewjmoreton@gmail.com> >> Date: Fri, 15 Apr 2016 09:18:58 +0100 >> >> No, but changing the content of ldefs-boot.el can change the timing and >> behaviour of the bootstrap-emacs.exe that is built from it. Whether the >> observed bug is timing related or completely deterministic is not yet >> known. > > I've just fixed on the emacs-25 branch a serious bug in the w32 > implementation of mmap_realloc. The conditions under which the bug > happened are very rare, but when it did happen, we would in effect > lose a portion of buffer text, and instead get binary nulls. Sounds > familiar? > > So please try reproducing your problem after updating the repository > from upstream, I hope that the problems will be gone. (If you are > tracking master, wait until ab849b7 is merged to it, or apply it > manually.) I've tried boostrapping a completely clean emacs-25 tree at commit ab849b7, which was successful. Yuor patch looks good, so let's hope this problem is gone. AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-15 14:38 ` Eli Zaretskii 2016-04-15 15:36 ` Andy Moreton @ 2016-04-18 8:31 ` Angelo Graziosi 2016-04-18 18:30 ` Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-04-18 8:31 UTC (permalink / raw) To: Eli Zaretskii, Andy Moreton; +Cc: emacs-devel Il 15/04/2016 16:38, Eli Zaretskii ha scritto: > I've just fixed on the emacs-25 branch a serious bug in the w32 > implementation of mmap_realloc. The conditions under which the bug > So please try reproducing your problem after updating the repository > from upstream, I hope that the problems will be gone. (If you are > tracking master, wait until ab849b7 is merged to it, or apply it > manually.) > Since I use this patch, the build seems to be completed without issues.. Thanks, Angelo. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-18 8:31 ` Angelo Graziosi @ 2016-04-18 18:30 ` Eli Zaretskii 2016-04-18 23:48 ` Andy Moreton 2016-04-19 9:58 ` Angelo Graziosi 0 siblings, 2 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-18 18:30 UTC (permalink / raw) To: Angelo Graziosi; +Cc: andrewjmoreton, emacs-devel > Cc: emacs-devel@gnu.org > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Mon, 18 Apr 2016 10:31:50 +0200 > > Il 15/04/2016 16:38, Eli Zaretskii ha scritto: > > > I've just fixed on the emacs-25 branch a serious bug in the w32 > > implementation of mmap_realloc. The conditions under which the bug > > > So please try reproducing your problem after updating the repository > > from upstream, I hope that the problems will be gone. (If you are > > tracking master, wait until ab849b7 is merged to it, or apply it > > manually.) > > > > Since I use this patch, the build seems to be completed without issues.. Thanks for letting us know. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-18 18:30 ` Eli Zaretskii @ 2016-04-18 23:48 ` Andy Moreton 2016-04-19 9:58 ` Angelo Graziosi 1 sibling, 0 replies; 119+ messages in thread From: Andy Moreton @ 2016-04-18 23:48 UTC (permalink / raw) To: emacs-devel On Mon 18 Apr 2016, Eli Zaretskii wrote: >> Cc: emacs-devel@gnu.org >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Mon, 18 Apr 2016 10:31:50 +0200 >> >> Il 15/04/2016 16:38, Eli Zaretskii ha scritto: >> >> > I've just fixed on the emacs-25 branch a serious bug in the w32 >> > implementation of mmap_realloc. The conditions under which the bug >> >> > So please try reproducing your problem after updating the repository >> > from upstream, I hope that the problems will be gone. (If you are >> > tracking master, wait until ab849b7 is merged to it, or apply it >> > manually.) >> > >> >> Since I use this patch, the build seems to be completed without issues.. > > Thanks for letting us know. FYI I have also bootstrapped emacs-25, and master (with the patch applied) on the machine showing problems. Both built without the corruption, so I think you patch has fixed this problem. Thanks Eli! AndyM ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-18 18:30 ` Eli Zaretskii 2016-04-18 23:48 ` Andy Moreton @ 2016-04-19 9:58 ` Angelo Graziosi 2016-04-19 14:39 ` Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-04-19 9:58 UTC (permalink / raw) To: emacs-devel Now master builds OB. I just noticed the following message about SED while configuring (it was there also in my previous builds) ./autogen.sh PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure --without-imagemagick [...] checking the archiver (ar) interface... ar checking for ar... (cached) ar checking for ranlib... ranlib checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking whether gcc -I ./nt/inc accepts -g3 -O2... yes sed: can't read conftest.c: No such file or directory checking whether the compiler is clang... no checking whether C compiler handles -Werror -Wunknown-warning-option... no checking whether make supports nested variables... (cached) yes checking whether ln -s works for files in the same directory... no, using /bin/ln -s checking for install-info... /usr/bin/install-info checking for gzip... /usr/bin/gzip [...] Ciao, Angelo. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-19 9:58 ` Angelo Graziosi @ 2016-04-19 14:39 ` Eli Zaretskii 2016-04-19 21:15 ` Angelo Graziosi ` (2 more replies) 0 siblings, 3 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-19 14:39 UTC (permalink / raw) To: Angelo Graziosi; +Cc: emacs-devel > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Tue, 19 Apr 2016 11:58:57 +0200 > > I just noticed the following message about SED while configuring (it was > there also in my previous builds) > > ./autogen.sh > > PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure --without-imagemagick > [...] > checking the archiver (ar) interface... ar > checking for ar... (cached) ar > checking for ranlib... ranlib > checking for special C compiler options needed for large files... no > checking for _FILE_OFFSET_BITS value needed for large files... 64 > checking whether gcc -I ./nt/inc accepts -g3 -O2... yes > sed: can't read conftest.c: No such file or directory Doesn't happen here. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-19 14:39 ` Eli Zaretskii @ 2016-04-19 21:15 ` Angelo Graziosi 2016-04-19 21:18 ` Angelo Graziosi 2016-04-19 21:20 ` Angelo Graziosi 2 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-04-19 21:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Paul Eggert, emacs-devel Il 19/04/2016 16:39, Eli Zaretskii ha scritto: >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Tue, 19 Apr 2016 11:58:57 +0200 >> >> I just noticed the following message about SED while configuring (it was >> there also in my previous builds) >> >> ./autogen.sh >> >> PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure --without-imagemagick >> [...] >> checking the archiver (ar) interface... ar >> checking for ar... (cached) ar >> checking for ranlib... ranlib >> checking for special C compiler options needed for large files... no >> checking for _FILE_OFFSET_BITS value needed for large files... 64 >> checking whether gcc -I ./nt/inc accepts -g3 -O2... yes >> sed: can't read conftest.c: No such file or directory > > Doesn't happen here. > I image you are using a git check out as source, instead I am using the tar-ball http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-master.tar.gz. The cause of that SED failure seems the omission of "--enable-gcc-warnings=no" option. Indeed when I use PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure --without-imagemagick --enable-gcc-warnings=no the output is [...] checking for ranlib... ranlib checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking whether gcc -I ./nt/inc accepts -g3 -O2... yes checking whether the compiler is clang... no checking whether C compiler handles -Werror -Wunknown-warning-option... no checking whether make supports nested variables... (cached) yes [...] No SED failure. Now all this seems strange because out of git check out, the option "--enable-gcc-warnings=no" should be enabled by default, if I understand some recent commit about it.. (It is YES, by default, in git check out, i think). Maybe Paul has some idea about this.. Ciao, Angelo. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-19 14:39 ` Eli Zaretskii 2016-04-19 21:15 ` Angelo Graziosi @ 2016-04-19 21:18 ` Angelo Graziosi 2016-04-19 21:20 ` Angelo Graziosi 2 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-04-19 21:18 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Paul Eggert, emacs-devel Il 19/04/2016 16:39, Eli Zaretskii ha scritto: >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Tue, 19 Apr 2016 11:58:57 +0200 >> >> I just noticed the following message about SED while configuring (it was >> there also in my previous builds) >> >> ./autogen.sh >> >> PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure --without-imagemagick >> [...] >> checking the archiver (ar) interface... ar >> checking for ar... (cached) ar >> checking for ranlib... ranlib >> checking for special C compiler options needed for large files... no >> checking for _FILE_OFFSET_BITS value needed for large files... 64 >> checking whether gcc -I ./nt/inc accepts -g3 -O2... yes >> sed: can't read conftest.c: No such file or directory > > Doesn't happen here. > I image you are using a git check out as source, instead I am using the tar-ball http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-master.tar.gz. The cause of that SED failure seems the omission of "--enable-gcc-warnings=no" option. Indeed when I use PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure --without-imagemagick --enable-gcc-warnings=no the output is [...] checking for ranlib... ranlib checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking whether gcc -I ./nt/inc accepts -g3 -O2... yes checking whether the compiler is clang... no checking whether C compiler handles -Werror -Wunknown-warning-option... no checking whether make supports nested variables... (cached) yes [...] No SED failure. Now all this seems strange because out of git check out, the option "--enable-gcc-warnings=no" should be enabled by default, if I understand some recent commit about it.. (It is YES, by default, in git check out, i think). Maybe Paul has some idea about this.. Ciao, Angelo. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-19 14:39 ` Eli Zaretskii 2016-04-19 21:15 ` Angelo Graziosi 2016-04-19 21:18 ` Angelo Graziosi @ 2016-04-19 21:20 ` Angelo Graziosi 2016-04-20 0:26 ` Paul Eggert 2 siblings, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-04-19 21:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Paul Eggert, emacs-devel Il 19/04/2016 16:39, Eli Zaretskii ha scritto: >> From: Angelo Graziosi <angelo.graziosi@alice.it> >> Date: Tue, 19 Apr 2016 11:58:57 +0200 >> >> I just noticed the following message about SED while configuring (it was >> there also in my previous builds) >> >> ./autogen.sh >> >> PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure --without-imagemagick >> [...] >> checking the archiver (ar) interface... ar >> checking for ar... (cached) ar >> checking for ranlib... ranlib >> checking for special C compiler options needed for large files... no >> checking for _FILE_OFFSET_BITS value needed for large files... 64 >> checking whether gcc -I ./nt/inc accepts -g3 -O2... yes >> sed: can't read conftest.c: No such file or directory > > Doesn't happen here. > I image you are using a git check out as source, instead I am using the tar-ball http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-master.tar.gz. The cause of that SED failure seems the omission of "--enable-gcc-warnings=no" option. Indeed when I use PKG_CONFIG_PATH=/mingw64/lib/pkgconfig ./configure --without-imagemagick --enable-gcc-warnings=no the output is [...] checking for ranlib... ranlib checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking whether gcc -I ./nt/inc accepts -g3 -O2... yes checking whether the compiler is clang... no checking whether C compiler handles -Werror -Wunknown-warning-option... no checking whether make supports nested variables... (cached) yes [...] No SED failure. Now all this seems strange because out of git check out, the option "--enable-gcc-warnings=no" should be enabled by default, if I understand some recent commit about it.. (It is YES, by default, in git check out, i think). Maybe Paul has some idea about this.. Ciao, Angelo. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-19 21:20 ` Angelo Graziosi @ 2016-04-20 0:26 ` Paul Eggert 2016-04-20 14:25 ` Angelo Graziosi 0 siblings, 1 reply; 119+ messages in thread From: Paul Eggert @ 2016-04-20 0:26 UTC (permalink / raw) To: Angelo Graziosi, Eli Zaretskii; +Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 176 bytes --] On 04/19/2016 02:20 PM, Angelo Graziosi wrote: > Maybe Paul has some idea about this.. Yes, and I installed the attached patch into 'master'. I hope this fixes the problem. [-- Attachment #2: 0001-Avoid-AC_PREPROC_IFELSE-glitch-in-configure.ac.txt --] [-- Type: text/plain, Size: 1187 bytes --] From 32da59bb0c32ec726beb7871a6871fe980575f96 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Tue, 19 Apr 2016 17:22:22 -0700 Subject: [PATCH] Avoid AC_PREPROC_IFELSE glitch in configure.ac MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem reported by Angelo Graziosi in: http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00545.html * configure.ac (gl_gcc_warnings): Work around an Autoconf glitch: AC_PREPROC_IFELSE doesn’t generate a simple shell command. --- configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index dbb5ad2..1cd9017 100644 --- a/configure.ac +++ b/configure.ac @@ -879,8 +879,9 @@ AC_DEFUN # however, if there is also a .tarball-version file it is probably # just a release imported into Git for patch management. gl_gcc_warnings=no - test -e "$srcdir"/.git && test ! -f "$srcdir"/.tarball-version && + if test -e "$srcdir"/.git && test ! -f "$srcdir"/.tarball-version; then gl_GCC_VERSION_IFELSE([5], [3], [gl_gcc_warnings=warn-only])] + fi ) # clang is unduly picky about some things. -- 2.5.5 ^ permalink raw reply related [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-20 0:26 ` Paul Eggert @ 2016-04-20 14:25 ` Angelo Graziosi 0 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-04-20 14:25 UTC (permalink / raw) To: Paul Eggert, Eli Zaretskii; +Cc: emacs-devel Il 20/04/2016 02:26, Paul Eggert ha scritto: > On 04/19/2016 02:20 PM, Angelo Graziosi wrote: >> Maybe Paul has some idea about this.. > > Yes, and I installed the attached patch into 'master'. I hope this fixes > the problem. Yes, it works! Many thanks, Angelo. PS. I am afraid you have received more than a copy of my recent posts but there were an SMTP server issue. I hope it is fixed now otherwise you can receive more copies of this mail too.. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-12 15:28 ` Build failure " Eli Zaretskii 2016-04-12 21:00 ` Angelo Graziosi 2016-04-12 21:49 ` Andy Moreton @ 2016-04-12 22:42 ` Angelo Graziosi 2016-04-13 20:12 ` Angelo Graziosi 3 siblings, 0 replies; 119+ messages in thread From: Angelo Graziosi @ 2016-04-12 22:42 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Il 12/04/2016 17:28, Eli Zaretskii ha scritto: >> From: Angelo Graziosi >> Date: Tue, 12 Apr 2016 02:36:23 +0200 >> >> Just for the record... >> >> After about a month, the issue has reappeared. >> >> Now it fails with this message: >> >> [...] >> Loading button... >> Loading loaddefs.el (source)... >> Wrong number of arguments: autoload, 1325 >> Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito >> make[1]: *** [emacs.exe] Errore 127 >> make[1]: uscita dalla directory "/tmp/work/emacs-master/src" >> Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito >> make: *** [src] Errore 2 >> >> but the lisp/loaddefs.el seems to have the same defects.. > > And if you delete loaddefs.el, does the following build succeed? > Now I did the following (in a MSYS2/MINGW64 shell). $ wget http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-master.tar.gz $ tar -xf emacs-master.tar.gz $ cd emacs-master/ $ ./autogen.sh 2>&1 | tee ../emacs-build.log $ ./configure --prefix=/opt/emacs --build=x86_64-w64-mingw32 --enable-gcc-warnings=no --without-imagemagick 'CFLAGS=-pipe -O3 -fomit-frame-pointer -funroll-loops' 2>&1 | tee -a ../emacs-build.log $ make 2>&1 | tee -a ../emacs-build.log [...] ELC gnus/gnus-icalendar.elc ^M^M In toplevel form:^M^M gnus/gnus-icalendar.el:359:1:Error: End of file during parsing: c:/msys64/tmp/emacs-master/lisp/org/org-loaddefs.el^M Makefile:282: set di istruzioni per l'obiettivo "gnus/gnus-icalendar.elc" non riuscito make[2]: *** [gnus/gnus-icalendar.elc] Errore 1 make[2]: uscita dalla directory "/tmp/emacs-master/lisp" make[2]: ingresso nella directory "/tmp/emacs-master/lisp" ELC mh-e/mh-thread.elc [...] ELC org/org-agenda.elc ^M^M In toplevel form:^M^M org/org-agenda.el:48:1:Error: End of file during parsing: c:/msys64/tmp/emacs-master/lisp/org/org-loaddefs.el^M Makefile:282: set di istruzioni per l'obiettivo "org/org-agenda.elc" non riuscito make[2]: *** [org/org-agenda.elc] Errore 1 make[2]: uscita dalla directory "/tmp/emacs-master/lisp" make[2]: ingresso nella directory "/tmp/emacs-master/lisp" [...] GEN ../../info/wisent.info GEN ../../info/woman.info GEN ../../info/efaq-w32.info make[2]: uscita dalla directory "/tmp/emacs-master/doc/misc" GEN info/dir make[1]: uscita dalla directory "/tmp/emacs-master" In short, "make", apparently, did not stop but continued to the end.. So: $ cd .. $ grep -i error emacs-build.log [...] gnus/gnus-icalendar.el:359:1:Error: End of file during parsing: c:/msys64/tmp/emacs-master/lisp/org/org-loaddefs.el make[2]: *** [gnus/gnus-icalendar.elc] Errore 1 In org-babel-lilypond-mark-error-line: org/org-agenda.el:48:1:Error: End of file during parsing: c:/msys64/tmp/emacs-master/lisp/org/org-loaddefs.el make[2]: *** [org/org-agenda.elc] Errore 1 At this point, I did: $ rm emacs-master/lisp/org/org-loaddefs.el $ cd emacs-master $ make 2>&1 | tee -a ../emacs-build.log Many many .elc file were created and $ grep -i error ../emacs-build.log did not show other errors. So, it seems that removing the offending file (org-loaddefs.el, in this case) fixes the build.. Angelo ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-12 15:28 ` Build failure " Eli Zaretskii ` (2 preceding siblings ...) 2016-04-12 22:42 ` Angelo Graziosi @ 2016-04-13 20:12 ` Angelo Graziosi 2016-04-13 21:32 ` Paul Eggert 3 siblings, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-04-13 20:12 UTC (permalink / raw) To: emacs-devel Surely this has nothing to do with the issue described here but why now ./autogen.sh Checking whether you have the necessary tools... (Read INSTALL.REPO for more details on building Emacs) Checking for autoconf (need at least version 2.65)... ok Checking for automake (need at least version 1.11)... ok Your system has the required tools. Running 'autoreconf -fi -I m4' ... configure.ac:796: installing 'build-aux/ar-lib' configure.ac:139: installing 'build-aux/config.guess' configure.ac:139: installing 'build-aux/config.sub' configure.ac:136: installing 'build-aux/install-sh' configure.ac:136: installing 'build-aux/missing' lib/Makefile.am: installing 'build-aux/depcomp' You can now run './autogen.sh git'. Really we need to run './autogen.sh git'? Maybe I am wrong but INSTALL.REPO, which should contain the "more details on building Emacs", does not document this nor the "git" option for autogen.sh nor the other "all" option.. Maybe I am only adopting the wrong procedure to build Emacs and.. hem.. hem.. I see this build failure.. hem.. hem... Angelo >> From: Angelo Graziosi >> Date: Tue, 12 Apr 2016 02:36:23 +0200 >> >> Just for the record... >> >> After about a month, the issue has reappeared. >> >> Now it fails with this message: >> >> [...] >> Loading button... >> Loading loaddefs.el (source)... >> Wrong number of arguments: autoload, 1325 >> Makefile:540: set di istruzioni per l'obiettivo "emacs.exe" non riuscito >> make[1]: *** [emacs.exe] Errore 127 >> make[1]: uscita dalla directory "/tmp/work/emacs-master/src" >> Makefile:398: set di istruzioni per l'obiettivo "src" non riuscito >> make: *** [src] Errore 2 ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-13 20:12 ` Angelo Graziosi @ 2016-04-13 21:32 ` Paul Eggert 2016-04-13 22:00 ` Angelo Graziosi 2016-04-14 1:38 ` Stefan Monnier 0 siblings, 2 replies; 119+ messages in thread From: Paul Eggert @ 2016-04-13 21:32 UTC (permalink / raw) To: Angelo Graziosi; +Cc: Emacs development discussions On 04/13/2016 01:12 PM, Angelo Graziosi wrote: > why now > > ./autogen.sh > ... > You can now run './autogen.sh git'. > > Really we need to run './autogen.sh git'? Yes you need to, and yes it is silly. This extra step was put in as a result of the email thread starting here: http://lists.gnu.org/archive/html/emacs-devel/2016-02/msg00012.html I preferred a simpler system where ./autogen.sh just works, without any extra steps, but I was outvoted. > Maybe I am wrong but INSTALL.REPO, which should contain the "more > details on building Emacs", does not document this nor the "git" > option for autogen.sh nor the other "all" option. Although INSTALL.REPO contains "more details", it shouldn't contain *all* details (as there are too many). It's not clear that this particular detail is worth recording in INSTALL.REPO. > Maybe I am only adopting the wrong procedure to build Emacs Yes, as you used a procedure that is not recommended in INSTALL.REPO. You would have avoided the './install.sh git' glitch if you had run plain 'make', or had run './autogen.sh all', which are the two methods that INSTALL.REPO suggests. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-13 21:32 ` Paul Eggert @ 2016-04-13 22:00 ` Angelo Graziosi 2016-04-14 1:31 ` Paul Eggert 2016-04-14 1:38 ` Stefan Monnier 1 sibling, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-04-13 22:00 UTC (permalink / raw) To: Paul Eggert; +Cc: Emacs development discussions Il 13/04/2016 23:32, Paul Eggert ha scritto: > On 04/13/2016 01:12 PM, Angelo Graziosi wrote: >> why now >> >> ./autogen.sh >> ... >> You can now run './autogen.sh git'. >> >> Really we need to run './autogen.sh git'? > > Yes you need to, and yes it is silly. This extra step was put in as a > result of the email thread starting here: > > http://lists.gnu.org/archive/html/emacs-devel/2016-02/msg00012.html > > I preferred a simpler system where ./autogen.sh just works, without any > extra steps, but I was outvoted. > >> Maybe I am wrong but INSTALL.REPO, which should contain the "more >> details on building Emacs", does not document this nor the "git" >> option for autogen.sh nor the other "all" option. > > Although INSTALL.REPO contains "more details", it shouldn't contain > *all* details (as there are too many). It's not clear that this > particular detail is worth recording in INSTALL.REPO. > >> Maybe I am only adopting the wrong procedure to build Emacs > > Yes, as you used a procedure that is not recommended in INSTALL.REPO. > You would have avoided the './install.sh git' glitch if you had run > plain 'make', or had run './autogen.sh all', which are the two methods > that INSTALL.REPO suggests. Hmmm... './autogen.sh all' does not work using http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-master.tar.gz as source: ./autogen.sh all Checking whether you have the necessary tools... (Read INSTALL.REPO for more details on building Emacs) Checking for autoconf (need at least version 2.65)... ok Checking for automake (need at least version 1.11)... ok Your system has the required tools. Running 'autoreconf -fi -I m4' ... configure.ac:796: installing 'build-aux/ar-lib' configure.ac:139: installing 'build-aux/config.guess' configure.ac:139: installing 'build-aux/config.sub' configure.ac:136: installing 'build-aux/install-sh' configure.ac:136: installing 'build-aux/missing' lib/Makefile.am: installing 'build-aux/depcomp' Configuring local git repository... cp: impossibile eseguire stat di '.git/config': No such file or directory or one is "constrained" to use a clone of git repo? Only an ill mind could think that.. Angelo ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-13 22:00 ` Angelo Graziosi @ 2016-04-14 1:31 ` Paul Eggert 2016-04-14 8:03 ` Angelo Graziosi 2016-04-14 16:36 ` Build failure for Emacs master Angelo Graziosi 0 siblings, 2 replies; 119+ messages in thread From: Paul Eggert @ 2016-04-14 1:31 UTC (permalink / raw) To: Angelo Graziosi; +Cc: Emacs development discussions [-- Attachment #1: Type: text/plain, Size: 618 bytes --] On 04/13/2016 03:00 PM, Angelo Graziosi wrote: > > './autogen.sh all' does not work using > http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-master.tar.gz as > source: That's a different approach from what's in INSTALL.REPO. INSTALL.REPO assumes you're building from a Git clone; among other things, that's why INSTALL.REPO requires that you have Git installed. Since you're using a strategy that does not involve Git, a different procedure is called for. './autogen.sh all' can be adjusted to work for your use case. I installed the attached patch, which attempts to do that. Please give it a try. [-- Attachment #2: 0001-Port-.-autogen.sh-git-to-non-clones.txt --] [-- Type: text/plain, Size: 3020 bytes --] From 1aa7a86397a750cf93a6377e413cfb4ea4db2735 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Wed, 13 Apr 2016 18:19:04 -0700 Subject: [PATCH] =?UTF-8?q?Port=20=E2=80=98./autogen.sh=20git=E2=80=99=20t?= =?UTF-8?q?o=20non-clones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem reported by Angelo Graziosi in: http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00341.html * autogen.sh (do_git): Default to false when the arg is ‘all’ but there is no ‘.git’. (git_common_dir, hooks): New vars. (git_config, tailored_hooks, sample_hooks): Use them. --- autogen.sh | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/autogen.sh b/autogen.sh index 2e10a77..cd0accd 100755 --- a/autogen.sh +++ b/autogen.sh @@ -112,7 +112,8 @@ do_git= --help) exec echo "$0: usage: $0 [all|autoconf|git]";; all) - do_autoconf=true do_git=true;; + do_autoconf=true + test -e .git && do_git=true;; autoconf) do_autoconf=true;; git) @@ -260,7 +261,8 @@ git_config () echo 'Configuring local git repository...' case $cp_options in --backup=*) - cp $cp_options --force .git/config .git/config || exit;; + config=$git_common_dir/config + cp $cp_options --force -- "$config" "$config" || exit;; esac fi echo "git config $name '$value'" @@ -272,6 +274,13 @@ git_config () ## Configure Git, if requested. +# Get location of Git's common configuration directory. For older Git +# versions this is just '.git'. Newer Git versions support worktrees. + +test -e .git && git_common_dir=`git rev-parse --git-common-dir 2>/dev/null` || + git_common_dir=.git +hooks=$git_common_dir/hooks + # Check hashes when transferring objects among repositories. git_config transfer.fsckObjects true @@ -296,12 +305,11 @@ tailored_hooks= sample_hooks= for hook in commit-msg pre-commit; do - cmp build-aux/git-hooks/$hook .git/hooks/$hook >/dev/null 2>&1 || + cmp -- build-aux/git-hooks/$hook "$hooks/$hook" >/dev/null 2>&1 || tailored_hooks="$tailored_hooks $hook" done for hook in applypatch-msg pre-applypatch; do - src=.git/hooks/$hook.sample - cmp "$src" .git/hooks/$hook >/dev/null 2>&1 || + cmp -- "$hooks/$hook.sample" "$hooks/$hook" >/dev/null 2>&1 || sample_hooks="$sample_hooks $hook" done @@ -311,15 +319,15 @@ sample_hooks= if test -n "$tailored_hooks"; then for hook in $tailored_hooks; do - dst=.git/hooks/$hook - cp $cp_options build-aux/git-hooks/$hook "$dst" || exit - chmod a-w "$dst" || exit + dst=$hooks/$hook + cp $cp_options -- build-aux/git-hooks/$hook "$dst" || exit + chmod -- a-w "$dst" || exit done fi if test -n "$sample_hooks"; then for hook in $sample_hooks; do - cp $cp_options .git/hooks/$hook.sample .git/hooks/$hook || exit + cp $cp_options -- "$hooks/$hook.sample" "$hooks/$hook" || exit chmod a-w .git/hooks/$hook || exit done fi -- 2.5.5 ^ permalink raw reply related [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 1:31 ` Paul Eggert @ 2016-04-14 8:03 ` Angelo Graziosi 2016-04-14 15:30 ` Eli Zaretskii 2016-04-14 16:36 ` Build failure for Emacs master Angelo Graziosi 1 sibling, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-04-14 8:03 UTC (permalink / raw) To: Paul Eggert; +Cc: Emacs development discussions Il 14/04/2016 03:31, Paul Eggert ha scritto: > On 04/13/2016 03:00 PM, Angelo Graziosi wrote: >> >> './autogen.sh all' does not work using >> http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-master.tar.gz as >> source: > > That's a different approach from what's in INSTALL.REPO. INSTALL.REPO In MSYS2 and other OS there are *-git packages just to have the last development source not because that people aims to develop and maintain the applications of those packages.. So even when Emacs source comes from git you should not need other option for autogen.sh... > assumes you're building from a Git clone; among other things, that's why > INSTALL.REPO requires that you have Git installed. Since you're using a > strategy that does not involve Git, a different procedure is called for. > > './autogen.sh all' can be adjusted to work for your use case. I > installed the attached patch, which attempts to do that. Please give it > a try. Maybe when I have some time.. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 8:03 ` Angelo Graziosi @ 2016-04-14 15:30 ` Eli Zaretskii 2016-04-14 15:58 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Óscar Fuentes 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 15:30 UTC (permalink / raw) To: Angelo Graziosi; +Cc: eggert, emacs-devel > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Thu, 14 Apr 2016 10:03:19 +0200 > Cc: Emacs development discussions <emacs-devel@gnu.org> > > Il 14/04/2016 03:31, Paul Eggert ha scritto: > > On 04/13/2016 03:00 PM, Angelo Graziosi wrote: > >> > >> './autogen.sh all' does not work using > >> http://git.savannah.gnu.org/cgit/emacs.git/snapshot/emacs-master.tar.gz as > >> source: > > > > That's a different approach from what's in INSTALL.REPO. INSTALL.REPO > > In MSYS2 and other OS there are *-git packages just to have the last > development source not because that people aims to develop and maintain > the applications of those packages.. I'd urge all those who are tracking development sources to please use the official established build procedure. Using 3rd-party packages whose procedures deviate from the project instructions is susceptible to bumping into problems that stem from using those deviant procedures, which is an added maintenance burden I think we'd like to avoid. Also, doing so means less testing for the official build procedures. If you can convince the MSYS2 maintainers to adopt the official build procedure, it would be even better. Failing that, please consider switching back to what the project recommends, what is documented in the relevant INSTALL documents. TIA ^ permalink raw reply [flat|nested] 119+ messages in thread
* Building Emacs on MSYS2 (was: Build failure for Emacs master) 2016-04-14 15:30 ` Eli Zaretskii @ 2016-04-14 15:58 ` Óscar Fuentes 2016-04-14 16:09 ` Building Emacs on MSYS2 Paul Eggert 2016-04-14 16:15 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Eli Zaretskii 0 siblings, 2 replies; 119+ messages in thread From: Óscar Fuentes @ 2016-04-14 15:58 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> In MSYS2 and other OS there are *-git packages just to have the last >> development source not because that people aims to develop and maintain >> the applications of those packages.. > > I'd urge all those who are tracking development sources to please use > the official established build procedure. Using 3rd-party packages > whose procedures deviate from the project instructions is susceptible > to bumping into problems that stem from using those deviant > procedures, which is an added maintenance burden I think we'd like to > avoid. Also, doing so means less testing for the official build > procedures. Currently this is the code for configuring the build of emacs-git on MSYS2 MinGW-packages: build() { [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" mkdir -p "${srcdir}/build-${MINGW_CHOST}" cd "build-${MINGW_CHOST}" local with_wide_int='no' if test "${CARCH}" == 'x86_64'; then with_wide_int='yes' fi CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" CFLAGS="-pipe -O3 -fomit-frame-pointer -funroll-loops" LDFLAGS="-s -Wl,-s" "${srcdir}/${_realname}/configure" \ --prefix="${MINGW_PREFIX}" \ --build="${MINGW_CHOST}" \ --with-wide-int="${with_wide_int}" \ --with-sound="yes" \ --with-file-notification="yes" \ --without-gpm \ --without-gconf \ --without-gsettings \ --without-selinux make } Apart from setting with_wide_int and adding some (unnecessary, IMHO) optimization options, it looks like a fairly standard configuration. The package contains two patches too. This one that looks like trying to avoid a link problem: --- src/image.c.orig 2014-10-15 14:18:29.088716000 +0200 +++ src/image.c 2014-10-15 15:54:12.407522800 +0200 @@ -7862,7 +7862,7 @@ }; #if defined HAVE_NTGUI && defined WINDOWSNT -static bool init_imagemagick_functions (void); +#define init_imagemagick_functions NULL #else #define init_imagemagick_functions NULL #endif and this one that seems related to locating the source directory: --- src/lread.c.orig 2014-11-04 20:29:22.129549000 +0100 +++ src/lread.c 2014-11-04 22:33:07.346414100 +0100 @@ -4351,6 +4351,12 @@ } /* Vinstallation_directory != Vsource_directory */ } /* if Vinstallation_directory */ + else + { + Vsource_directory + = Fexpand_file_name (build_string ("../"), + Fcar (decode_env_path (0, PATH_DATA, 0))); + } } else /* !initialized */ { > If you can convince the MSYS2 maintainers to adopt the official build > procedure, it would be even better. I can change the emacs-git package for not adding those optimization options and not setting with-wide-int. Do you think that's enough? > Failing that, please consider > switching back to what the project recommends, what is documented in > the relevant INSTALL documents. Because MSYS2 does not distribute binaries for emacs-git, I guess that the number of people who currently uses the PKGBUILD shown above is very small. AFAIK Angelo and others that build Emacs on MSYS2 are not using the PKGBUILD, but following the recipe on the Emacs' docs (possibly with their own personal modifications.) ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 15:58 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Óscar Fuentes @ 2016-04-14 16:09 ` Paul Eggert 2016-04-14 16:13 ` Óscar Fuentes 2016-04-14 16:15 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Paul Eggert @ 2016-04-14 16:09 UTC (permalink / raw) To: Óscar Fuentes, emacs-devel On 04/14/2016 08:58 AM, Óscar Fuentes wrote: > local with_wide_int='no' > > if test "${CARCH}" == 'x86_64'; then > with_wide_int='yes' > fi You shouldn't need this. --with-wide-int is effective only on 32-bit platforms; integers are always wide on 64-bit platforms. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 16:09 ` Building Emacs on MSYS2 Paul Eggert @ 2016-04-14 16:13 ` Óscar Fuentes 2016-04-14 16:21 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Óscar Fuentes @ 2016-04-14 16:13 UTC (permalink / raw) To: emacs-devel Paul Eggert <eggert@cs.ucla.edu> writes: > On 04/14/2016 08:58 AM, Óscar Fuentes wrote: >> local with_wide_int='no' >> >> if test "${CARCH}" == 'x86_64'; then >> with_wide_int='yes' >> fi > > You shouldn't need this. --with-wide-int is effective only on 32-bit > platforms; integers are always wide on 64-bit platforms. Right. Maybe the person who introduced that code on the PKGBUILD worried about the possibility of changing the default on x86 to wide-int. IIRC there was some discussion about that on the past. Anyway, if the emacs maintainers decide to change the default, there is no reason for overriding it on the PKGBUILD. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 16:13 ` Óscar Fuentes @ 2016-04-14 16:21 ` Eli Zaretskii 2016-04-14 16:46 ` Óscar Fuentes 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 16:21 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Thu, 14 Apr 2016 18:13:41 +0200 > > Paul Eggert <eggert@cs.ucla.edu> writes: > > > On 04/14/2016 08:58 AM, Óscar Fuentes wrote: > >> local with_wide_int='no' > >> > >> if test "${CARCH}" == 'x86_64'; then > >> with_wide_int='yes' > >> fi > > > > You shouldn't need this. --with-wide-int is effective only on 32-bit > > platforms; integers are always wide on 64-bit platforms. > > Right. Maybe the person who introduced that code on the PKGBUILD worried > about the possibility of changing the default on x86 to wide-int. IIRC > there was some discussion about that on the past. The discussions were about the 32-bit build. If anything, the script should use --with-wide-int in the 32-bit build, i.e. exactly the opposite of what it does now. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 16:21 ` Eli Zaretskii @ 2016-04-14 16:46 ` Óscar Fuentes 2016-04-14 17:26 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Óscar Fuentes @ 2016-04-14 16:46 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> >> local with_wide_int='no' >> >> >> >> if test "${CARCH}" == 'x86_64'; then >> >> with_wide_int='yes' >> >> fi >> > >> > You shouldn't need this. --with-wide-int is effective only on 32-bit >> > platforms; integers are always wide on 64-bit platforms. >> >> Right. Maybe the person who introduced that code on the PKGBUILD worried >> about the possibility of changing the default on x86 to wide-int. IIRC >> there was some discussion about that on the past. > > The discussions were about the 32-bit build. If anything, the script > should use --with-wide-int in the 32-bit build, i.e. exactly the > opposite of what it does now. My point is that the PKGBUILD author possibly was "protecting" the package against upstream changing the x86 default to --with-wide-int. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 16:46 ` Óscar Fuentes @ 2016-04-14 17:26 ` Eli Zaretskii 2016-04-14 20:09 ` Óscar Fuentes 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 17:26 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Thu, 14 Apr 2016 18:46:02 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> >> local with_wide_int='no' > >> >> > >> >> if test "${CARCH}" == 'x86_64'; then > >> >> with_wide_int='yes' > >> >> fi > >> > > >> > You shouldn't need this. --with-wide-int is effective only on 32-bit > >> > platforms; integers are always wide on 64-bit platforms. > >> > >> Right. Maybe the person who introduced that code on the PKGBUILD worried > >> about the possibility of changing the default on x86 to wide-int. IIRC > >> there was some discussion about that on the past. > > > > The discussions were about the 32-bit build. If anything, the script > > should use --with-wide-int in the 32-bit build, i.e. exactly the > > opposite of what it does now. > > My point is that the PKGBUILD author possibly was "protecting" the > package against upstream changing the x86 default to --with-wide-int. It does exactly the opposite, and to the non-x86 build, so I don't understand how did you reach that conclusion. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 17:26 ` Eli Zaretskii @ 2016-04-14 20:09 ` Óscar Fuentes 2016-04-15 15:03 ` Paul Eggert 0 siblings, 1 reply; 119+ messages in thread From: Óscar Fuentes @ 2016-04-14 20:09 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> >> >> local with_wide_int='no' >> >> >> >> >> >> if test "${CARCH}" == 'x86_64'; then >> >> >> with_wide_int='yes' >> >> >> fi >> >> > >> >> > You shouldn't need this. --with-wide-int is effective only on 32-bit >> >> > platforms; integers are always wide on 64-bit platforms. >> >> >> >> Right. Maybe the person who introduced that code on the PKGBUILD worried >> >> about the possibility of changing the default on x86 to wide-int. IIRC >> >> there was some discussion about that on the past. >> > >> > The discussions were about the 32-bit build. If anything, the script >> > should use --with-wide-int in the 32-bit build, i.e. exactly the >> > opposite of what it does now. >> >> My point is that the PKGBUILD author possibly was "protecting" the >> package against upstream changing the x86 default to --with-wide-int. > > It does exactly the opposite, and to the non-x86 build, so I don't > understand how did you reach that conclusion. You misread the code. It unconditionally sets with_wide_int='no' and *then* checks if the arch is x86_64, in which case sets with_wide_int='yes'. Hence the code is explicitly setting --with-wide-int on both cases to a value which happens to coincide with the default *for now*. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 20:09 ` Óscar Fuentes @ 2016-04-15 15:03 ` Paul Eggert 2016-04-15 15:37 ` Óscar Fuentes 0 siblings, 1 reply; 119+ messages in thread From: Paul Eggert @ 2016-04-15 15:03 UTC (permalink / raw) To: Óscar Fuentes, emacs-devel On 04/14/2016 01:09 PM, Óscar Fuentes wrote: > You misread the code. It unconditionally sets with_wide_int='no' and > *then* checks if the arch is x86_64, in which case sets > with_wide_int='yes'. > > Hence the code is explicitly setting --with-wide-int on both cases to a > value which happens to coincide with the default*for now*. --with-wide-int is not the default on any platform. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 15:03 ` Paul Eggert @ 2016-04-15 15:37 ` Óscar Fuentes 2016-04-15 17:30 ` Paul Eggert 0 siblings, 1 reply; 119+ messages in thread From: Óscar Fuentes @ 2016-04-15 15:37 UTC (permalink / raw) To: emacs-devel Paul Eggert <eggert@cs.ucla.edu> writes: > On 04/14/2016 01:09 PM, Óscar Fuentes wrote: >> You misread the code. It unconditionally sets with_wide_int='no' and >> *then* checks if the arch is x86_64, in which case sets >> with_wide_int='yes'. >> >> Hence the code is explicitly setting --with-wide-int on both cases to a >> value which happens to coincide with the default*for now*. > > --with-wide-int is not the default on any platform. Isn't it the default on 64 bit platforms, as you mentioned some messages upthread? ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 15:37 ` Óscar Fuentes @ 2016-04-15 17:30 ` Paul Eggert 2016-04-15 17:58 ` Óscar Fuentes 0 siblings, 1 reply; 119+ messages in thread From: Paul Eggert @ 2016-04-15 17:30 UTC (permalink / raw) To: Óscar Fuentes, emacs-devel On 04/15/2016 08:37 AM, Óscar Fuentes wrote: >> --with-wide-int is not the default on any platform. > Isn't it the default on 64 bit platforms, as you mentioned some messages > upthread? > > No. --with-wide-int causes Emacs to use 'long long int' for EMACS_INT, even if pointers fit in a narrower type. On my platform (Fedora 23 x86-64), EMACS_INT is 'long int' because that is wide enough for pointers. Although 'long int' and 'long long int' both happen to be 64-bit integers on my platform, 'long int' is a bit nicer (e.g., printf formats can use "%ld" rather than "%lld"), so using --with-wide-int would be a minor loss. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 17:30 ` Paul Eggert @ 2016-04-15 17:58 ` Óscar Fuentes 2016-04-15 19:15 ` Paul Eggert 2016-04-15 19:42 ` Stefan Monnier 0 siblings, 2 replies; 119+ messages in thread From: Óscar Fuentes @ 2016-04-15 17:58 UTC (permalink / raw) To: emacs-devel Paul Eggert <eggert@cs.ucla.edu> writes: > On 04/15/2016 08:37 AM, Óscar Fuentes wrote: >>> --with-wide-int is not the default on any platform. >> Isn't it the default on 64 bit platforms, as you mentioned some messages >> upthread? > > No. --with-wide-int causes Emacs to use 'long long int' for EMACS_INT, > even if pointers fit in a narrower type. On my platform (Fedora 23 > x86-64), EMACS_INT is 'long int' because that is wide enough for > pointers. Although 'long int' and 'long long int' both happen to be > 64-bit integers on my platform, 'long int' is a bit nicer (e.g., > printf formats can use "%ld" rather than "%lld"), so using > --with-wide-int would be a minor loss. Which is irrelevant for the user who builds Emacs, isn't it? I was just saying that Emacs wide integers are the default on 64 bit platforms. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 17:58 ` Óscar Fuentes @ 2016-04-15 19:15 ` Paul Eggert 2016-04-15 19:40 ` Óscar Fuentes 2016-04-15 19:42 ` Stefan Monnier 1 sibling, 1 reply; 119+ messages in thread From: Paul Eggert @ 2016-04-15 19:15 UTC (permalink / raw) To: Óscar Fuentes, emacs-devel On 04/15/2016 10:58 AM, Óscar Fuentes wrote: > Which is irrelevant for the user who builds Emacs, isn't it? Yes, and this supports Eli's point. Generally speaking, it's better to keep the MSYS2 build simple so that it tracks mainline Emacs development. In particular, the --with-wide-int settings of the MSYS2 build are irrelevant to the user who builds Emacs, so they should be omitted. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 19:15 ` Paul Eggert @ 2016-04-15 19:40 ` Óscar Fuentes 2016-04-15 20:03 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Óscar Fuentes @ 2016-04-15 19:40 UTC (permalink / raw) To: emacs-devel Paul Eggert <eggert@cs.ucla.edu> writes: > On 04/15/2016 10:58 AM, Óscar Fuentes wrote: >> Which is irrelevant for the user who builds Emacs, isn't it? > > Yes, and this supports Eli's point. Generally speaking, it's better to > keep the MSYS2 build simple so that it tracks mainline Emacs > development. Why? The MSYS2 build for emacs-git (or any other package) is configured for the MSYS2 user's convenience, as per the best judgement of the PKGBUILD author. > In particular, the --with-wide-int settings of the MSYS2 > build are irrelevant to the user who builds Emacs, so they should be > omitted. First things first, I was not involved on writing that PKGBUILD file. I was just *guessing* that the author's intention is to enforce --with-wide-int=no on the 32 bit build regardless of current and future upstream's default setting. Neither you nor I agree with that decision, but that's a different topic. Maybe the author knows something that we ignore. Or maybe he is simply imposing his personal preferences and prejudices. We don't know. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 19:40 ` Óscar Fuentes @ 2016-04-15 20:03 ` Eli Zaretskii 2016-04-15 20:20 ` Óscar Fuentes 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-15 20:03 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Fri, 15 Apr 2016 21:40:55 +0200 > > Paul Eggert <eggert@cs.ucla.edu> writes: > > > On 04/15/2016 10:58 AM, Óscar Fuentes wrote: > >> Which is irrelevant for the user who builds Emacs, isn't it? > > > > Yes, and this supports Eli's point. Generally speaking, it's better to > > keep the MSYS2 build simple so that it tracks mainline Emacs > > development. > > Why? The MSYS2 build for emacs-git (or any other package) is configured > for the MSYS2 user's convenience, as per the best judgement of the > PKGBUILD author. If there are problems in the upstream build procedure that fail to account for some use case, that use case should be brought to the project's attention, so that the maintainers could decide if and how they'd like to support that use case. Deviating from the upstream build procedure without talking with the project is not a good idea, IMO. Especially so since quite a few people who use the deviant procedure are active participants in emacs-devel discussions and report bugs, which could well be (and in fact were in the past found to be) the result of the deviation. > Neither you nor I agree with that decision, but that's a different > topic. Maybe the author knows something that we ignore. Or maybe he is > simply imposing his personal preferences and prejudices. We don't know. All I say is that I urge people to use the official build procedure. If you or someone else wants to talk to the author, or invite him/her to discuss this here, that's a bonus. Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 20:03 ` Eli Zaretskii @ 2016-04-15 20:20 ` Óscar Fuentes 2016-04-15 20:49 ` Eli Zaretskii 2016-04-15 21:37 ` Stephen Leake 0 siblings, 2 replies; 119+ messages in thread From: Óscar Fuentes @ 2016-04-15 20:20 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > All I say is that I urge people to use the official build procedure. > If you or someone else wants to talk to the author, or invite him/her > to discuss this here, that's a bonus. I'll like to remove that stuff from the PKGBUILD and submit a build request (which will be accepted, I'm sure) but first I need to test the build on x86 and x86_64, and that means quite a lot of time with my (non-)hardware and scarce Windows usage. I hope to get it ready before Emacs 25 is released. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 20:20 ` Óscar Fuentes @ 2016-04-15 20:49 ` Eli Zaretskii 2016-04-15 21:37 ` Stephen Leake 1 sibling, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-15 20:49 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Fri, 15 Apr 2016 22:20:19 +0200 > > I'll like to remove that stuff from the PKGBUILD and submit a build > request (which will be accepted, I'm sure) but first I need to test the > build on x86 and x86_64, and that means quite a lot of time with my > (non-)hardware and scarce Windows usage. I hope to get it ready before > Emacs 25 is released. Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 20:20 ` Óscar Fuentes 2016-04-15 20:49 ` Eli Zaretskii @ 2016-04-15 21:37 ` Stephen Leake 2016-04-15 22:11 ` Óscar Fuentes ` (2 more replies) 1 sibling, 3 replies; 119+ messages in thread From: Stephen Leake @ 2016-04-15 21:37 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel Óscar Fuentes <ofv@wanadoo.es> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >> All I say is that I urge people to use the official build procedure. >> If you or someone else wants to talk to the author, or invite him/her >> to discuss this here, that's a bonus. > > I'll like to remove that stuff from the PKGBUILD and submit a build > request (which will be accepted, I'm sure) but first I need to test the > build on x86 and x86_64, and that means quite a lot of time with my > (non-)hardware and scarce Windows usage. I hope to get it ready before > Emacs 25 is released. If it would help, I also build Emacs with MSYS2. I have not been using the PKGBUILD script, but it doesn't look hard. So I can help with testing. I have Windows 8.1 64 bit, with msys2 mingw64 installed; I can install mingw32 if we want to test there. One thing I'd like to fix; my build of emacs 25 does not display png files. The binary pretest install does. I'd like to figure out the difference. -- -- Stephe ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 21:37 ` Stephen Leake @ 2016-04-15 22:11 ` Óscar Fuentes 2016-04-16 6:42 ` Eli Zaretskii 2016-04-16 6:30 ` Building Emacs on MSYS2 Eli Zaretskii 2016-04-18 12:32 ` Building Emacs on MSYS2 Phillip Lord 2 siblings, 1 reply; 119+ messages in thread From: Óscar Fuentes @ 2016-04-15 22:11 UTC (permalink / raw) To: emacs-devel Stephen Leake <stephen_leake@stephe-leake.org> writes: > Óscar Fuentes <ofv@wanadoo.es> writes: > >> Eli Zaretskii <eliz@gnu.org> writes: >> >>> All I say is that I urge people to use the official build procedure. >>> If you or someone else wants to talk to the author, or invite him/her >>> to discuss this here, that's a bonus. >> >> I'll like to remove that stuff from the PKGBUILD and submit a build >> request (which will be accepted, I'm sure) but first I need to test the >> build on x86 and x86_64, and that means quite a lot of time with my >> (non-)hardware and scarce Windows usage. I hope to get it ready before >> Emacs 25 is released. > > If it would help, I also build Emacs with MSYS2. I have not been using > the PKGBUILD script, but it doesn't look hard. > > So I can help with testing. I have Windows 8.1 64 bit, with msys2 > mingw64 installed; I can install mingw32 if we want to test there. Thank you. You need the PKGBUILD and accompanying files. You can check out MINGW-Packages (https://github.com/Alexpux/MINGW-packages) or copy the files of the mingw-w64-emacs-git directory from that repo on a local directory. Remove from PKGBUILD all CPPFLAGS, CFLAGS and LDFLAGS variables on the `build' function. Also remove all `configure' paramaters except --prefix and --build. From a MSYS2 shell (not a MinGWXX shell), cd to the directory that contains the PKBUILD file and execute makepkg-mingw. Probably you will need to execute `makepkg-mingw -s' for installing the dependencies. Taking a look at `makepkg-mingw --help' will be useful. If the build goes well, this will create two pacman package files, (32 and 64 bits). Install one of both packages with pacman -U <file name of emacs package> and then you should have emacs installed along the rest of your Mingw-w64 packages distributed with MSYS2. Use it for some time. You can also try to see what happens if you omit the patches. Remove image.c.diff from `source' and the corresponding SHA hash from `sha256sums' (the hashes of the files are listed in the same order as in `sources'). See if the build breaks. See if imagemagick is detected. See if you can use imagemagick from the resulting package. Report your results. Ditto for lread.c.diff and locating Emacs .el files from Emacs. > One thing I'd like to fix; my build of emacs 25 does not display png > files. The binary pretest install does. I'd like to figure out the > difference. libpng is listed as an optional dependency, you need to install it explicitly if you install the emacs binary package, but the build process should download and install it when you build on your machine. For the record, my old emacs-25 MSYS2 build can display png images fine. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 22:11 ` Óscar Fuentes @ 2016-04-16 6:42 ` Eli Zaretskii 2016-04-17 21:46 ` Fixing imagemagick on W32 Stephen Leake 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-16 6:42 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Sat, 16 Apr 2016 00:11:30 +0200 > > You can also try to see what happens if you omit the patches. Remove > image.c.diff from `source' and the corresponding SHA hash from > `sha256sums' (the hashes of the files are listed in the same order as in > `sources'). See if the build breaks. See if imagemagick is detected. See > if you can use imagemagick from the resulting package. Report your > results. The Imagemagick build is not officially supported in the MS-Windows build, because no one submitted patches to make it behave like all the other optional image libraries. By that I mean: be able to run an Emacs binary built with Imagemagick support on a system that doesn't have the Imagemagick DLLs installed. AFAIU, the image.c.diff hack allows one to build Emacs with Imagemagick, but the resulting binary will refuse to run on a system where it cannot load the Imagemagick DLLs at startup. That is not how we handle optional libraries in the Windows build. So the right way of handling this problem is to modify the Emacs Imagemagick support code in image.c so that it uses LOAD_DLL_FN etc. (There's one complication with Imagemagick: it needs to load 2 DLLs rather than one, and figuring out how to deal with that is part of the job.) ^ permalink raw reply [flat|nested] 119+ messages in thread
* Fixing imagemagick on W32 2016-04-16 6:42 ` Eli Zaretskii @ 2016-04-17 21:46 ` Stephen Leake 2016-04-18 2:28 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Stephen Leake @ 2016-04-17 21:46 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Óscar Fuentes, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > The Imagemagick build is not officially supported in the MS-Windows > build, because no one submitted patches to make it behave like all the > other optional image libraries. By that I mean: be able to run an > Emacs binary built with Imagemagick support on a system that doesn't > have the Imagemagick DLLs installed. AFAIU, the image.c.diff hack > allows one to build Emacs with Imagemagick, but the resulting binary > will refuse to run on a system where it cannot load the Imagemagick > DLLs at startup. That is not how we handle optional libraries in the > Windows build. > > So the right way of handling this problem is to modify the Emacs > Imagemagick support code in image.c so that it uses LOAD_DLL_FN etc. > (There's one complication with Imagemagick: it needs to load 2 DLLs > rather than one, and figuring out how to deal with that is part of the > job.) I'd like to work on this. First I need a test; what elisp level functions use the imagemagick functions in image.c? -- -- Stephe ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Fixing imagemagick on W32 2016-04-17 21:46 ` Fixing imagemagick on W32 Stephen Leake @ 2016-04-18 2:28 ` Eli Zaretskii 0 siblings, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-18 2:28 UTC (permalink / raw) To: Stephen Leake; +Cc: ofv, emacs-devel > From: Stephen Leake <stephen_leake@stephe-leake.org> > Cc: Óscar Fuentes <ofv@wanadoo.es>, emacs-devel@gnu.org > Date: Sun, 17 Apr 2016 16:46:31 -0500 > > Eli Zaretskii <eliz@gnu.org> writes: > > > The Imagemagick build is not officially supported in the MS-Windows > > build, because no one submitted patches to make it behave like all the > > other optional image libraries. By that I mean: be able to run an > > Emacs binary built with Imagemagick support on a system that doesn't > > have the Imagemagick DLLs installed. AFAIU, the image.c.diff hack > > allows one to build Emacs with Imagemagick, but the resulting binary > > will refuse to run on a system where it cannot load the Imagemagick > > DLLs at startup. That is not how we handle optional libraries in the > > Windows build. > > > > So the right way of handling this problem is to modify the Emacs > > Imagemagick support code in image.c so that it uses LOAD_DLL_FN etc. > > (There's one complication with Imagemagick: it needs to load 2 DLLs > > rather than one, and figuring out how to deal with that is part of the > > job.) > > I'd like to work on this. Thank you. > First I need a test; what elisp level functions use the imagemagick > functions in image.c? Something that scales an image, perhaps in shr.el? ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 21:37 ` Stephen Leake 2016-04-15 22:11 ` Óscar Fuentes @ 2016-04-16 6:30 ` Eli Zaretskii 2016-04-16 12:17 ` Stephen Leake 2016-04-18 12:32 ` Building Emacs on MSYS2 Phillip Lord 2 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-16 6:30 UTC (permalink / raw) To: Stephen Leake; +Cc: ofv, emacs-devel > From: Stephen Leake <stephen_leake@stephe-leake.org> > Date: Fri, 15 Apr 2016 16:37:33 -0500 > Cc: emacs-devel@gnu.org > > One thing I'd like to fix; my build of emacs 25 does not display png > files. The binary pretest install does. I'd like to figure out the > difference. Are both binaries in the same directory? Is the libpng DLL on PATH or with one of the binaries? Do you have more than one libpng DLL, one of which might be in conflict with the w64 build, or from a different version of libpng, or lacks its own support libraries? What is the version of libpng whose header files are visible when you build your own Emacs, and are those headers from the same version of libpng as the DLL you have installed? These are some of the reasons that might explain the problem. In general, it's most probably some kind of DLL hell. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-16 6:30 ` Building Emacs on MSYS2 Eli Zaretskii @ 2016-04-16 12:17 ` Stephen Leake 2016-04-16 12:40 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Stephen Leake @ 2016-04-16 12:17 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Stephen Leake <stephen_leake@stephe-leake.org> >> Date: Fri, 15 Apr 2016 16:37:33 -0500 >> Cc: emacs-devel@gnu.org >> >> One thing I'd like to fix; my build of emacs 25 does not display png >> files. The binary pretest install does. I'd like to figure out the >> difference. > > Are both binaries in the same directory? My build is in c:/Projects/emacs/emacs-25-build-mingw64/src (I don't install, so I can easily switch versions), with libpng16-16.dll in d:/msys64/mingw54/bin in PATH. The error message is "Cannot display image: (Invalid image specification)". I traced thru some of the code that tries to open the image; image.c init-image-library returns nil. I haven't tried running under the debugger to go further. config.h sets HAVE_PNG true. The pretest binary is in d:/Apps/emacs-25.0.90/bin, both emacs.exe and libpng16-16.dll; mingw64 is _not_ in PATH. cygwin "diff" says the two dlls differ. > Is the libpng DLL on PATH or > with one of the binaries? Do you have more than one libpng DLL, one > of which might be in conflict with the w64 build, or from a different > version of libpng, or lacks its own support libraries? depends.exe on emacs and libpng (both builds) reports no obvious errors (it seems there is always something missing on windows; I assume those are optional Windows components). depends.exe says emacs.exe does not depend on libpng; I assume that's because emacs only loads it if it is present. > What is the > version of libpng whose header files are visible when you build your > own Emacs, and are those headers from the same version of libpng as > the DLL you have installed? The libpng comes from the msys2 package manager, so I assume it's all consistent. How do I discover the version of the dll to check? > These are some of the reasons that might explain the problem. In > general, it's most probably some kind of DLL hell. Yes, I figured it was some obscure dll issue, which is why I have not tried to track it down yet. Since the problem is not present in the pretest, I figured it's a problem with my setup, not the Emacs sources, so I did not report a bug. -- -- Stephe ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-16 12:17 ` Stephen Leake @ 2016-04-16 12:40 ` Eli Zaretskii 2016-04-16 20:34 ` png in emacs 25 mingw64 Stephen Leake 0 siblings, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-16 12:40 UTC (permalink / raw) To: Stephen Leake; +Cc: ofv, emacs-devel > From: Stephen Leake <stephen_leake@stephe-leake.org> > Cc: ofv@wanadoo.es, emacs-devel@gnu.org > Date: Sat, 16 Apr 2016 07:17:25 -0500 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> From: Stephen Leake <stephen_leake@stephe-leake.org> > >> Date: Fri, 15 Apr 2016 16:37:33 -0500 > >> Cc: emacs-devel@gnu.org > >> > >> One thing I'd like to fix; my build of emacs 25 does not display png > >> files. The binary pretest install does. I'd like to figure out the > >> difference. > > > > Are both binaries in the same directory? > > My build is in c:/Projects/emacs/emacs-25-build-mingw64/src (I don't > install, so I can easily switch versions), with libpng16-16.dll in > d:/msys64/mingw54/bin in PATH. > > The error message is "Cannot display image: (Invalid image > specification)". I traced thru some of the code that tries to open > the image; image.c init-image-library returns nil. I haven't tried > running under the debugger to go further. > > config.h sets HAVE_PNG true. > > > The pretest binary is in d:/Apps/emacs-25.0.90/bin, both emacs.exe and > libpng16-16.dll; mingw64 is _not_ in PATH. > > cygwin "diff" says the two dlls differ. So this is the root cause, right there: the DLLs differ. Where did you get them? Are both 64-bit DLLs? Are they both MinGW DLLs? > depends.exe on emacs and libpng (both builds) reports no obvious errors > (it seems there is always something missing on windows; I assume those > are optional Windows components). I didn't mean errors. Libpng should depend on zlib DLL; do you have it? is it good? is there only one zlib DLL? > The libpng comes from the msys2 package manager, so I assume it's all > consistent. Does it come with zlib DLL, or did you install zlib DLL separately? If the latter, they could be inconsistent. > Yes, I figured it was some obscure dll issue, which is why I have not > tried to track it down yet. Since the problem is not present in the > pretest, I figured it's a problem with my setup, not the Emacs sources, > so I did not report a bug. I don't understand why you (and others) use different PATH arrangements to run different binaries, and have multiple versions of support DLLs. Isn't it clear that by doing so you create your own DLL hell? It's much better to have just one copy of each support DLL, in a place that is always on PATH. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: png in emacs 25 mingw64 2016-04-16 12:40 ` Eli Zaretskii @ 2016-04-16 20:34 ` Stephen Leake 2016-04-16 21:02 ` Stephen Leake 2016-04-17 2:45 ` Eli Zaretskii 0 siblings, 2 replies; 119+ messages in thread From: Stephen Leake @ 2016-04-16 20:34 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, emacs-devel TLDR; I usually have Cygwin in the PATH as well; it has shell tools I can't get in Mingw (yet). It turns out that is the problem; if I run my build of Emacs from a Mingw64 shell (no Cygwin in PATH), it can show PNGs. More details below. Question; exactly which path is searched for DLLs? I have two: PATH from the parent process exec-path after editing in ~/.emacs The png image is opened well after ~/.emacs is processed, so does it look on the edited exec-path for the dll? Or does the dll search take place during startup, in which case it is the parent PATH (or exec-path before editing in ~/.emacs). Eli Zaretskii <eliz@gnu.org> writes: >> From: Stephen Leake <stephen_leake@stephe-leake.org> >> Cc: ofv@wanadoo.es, emacs-devel@gnu.org >> Date: Sat, 16 Apr 2016 07:17:25 -0500 >> >> Eli Zaretskii <eliz@gnu.org> writes: >> >> >> From: Stephen Leake <stephen_leake@stephe-leake.org> >> >> Date: Fri, 15 Apr 2016 16:37:33 -0500 >> >> Cc: emacs-devel@gnu.org >> >> >> >> One thing I'd like to fix; my build of emacs 25 does not display png >> >> files. The binary pretest install does. I'd like to figure out the >> >> difference. >> > >> > Are both binaries in the same directory? >> >> My build is in c:/Projects/emacs/emacs-25-build-mingw64/src (I don't >> install, so I can easily switch versions), with libpng16-16.dll in >> d:/msys64/mingw54/bin in PATH. >> >> The error message is "Cannot display image: (Invalid image >> specification)". I traced thru some of the code that tries to open >> the image; image.c init-image-library returns nil. I haven't tried >> running under the debugger to go further. >> >> config.h sets HAVE_PNG true. >> >> >> The pretest binary is in d:/Apps/emacs-25.0.90/bin, both emacs.exe and >> libpng16-16.dll; mingw64 is _not_ in PATH. >> >> cygwin "diff" says the two dlls differ. > > So this is the root cause, right there: the DLLs differ. I don't see why that has to be the problem; the difference could be in some date. > Where did > you get them? One from the MSYS2 distribution, the other from the pretest binary, which may have been built with the MSYS2 distribution, but I'm not sure. >Are both 64-bit DLLs? Are they both MinGW DLLs? I don't know how to tell. >> depends.exe on emacs and libpng (both builds) reports no obvious errors >> (it seems there is always something missing on windows; I assume those >> are optional Windows components). > > I didn't mean errors. Libpng should depend on zlib DLL; Yes; zlib1.dll >do you have > it? Yes; in the respective distributions. >is it good? I don't know how to tell. I guess I need to find some other Mingw64 program that uses it? >is there only one zlib DLL? In PATH for each build, yes. Although "type -a zlib1.dll" says "not found", so it's hard to be sure. >> The libpng comes from the msys2 package manager, so I assume it's all >> consistent. > > Does it come with zlib DLL, or did you install zlib DLL separately? > If the latter, they could be inconsistent. Still from the package manager. Yes, the packages could be inconsistent with each other. >> Yes, I figured it was some obscure dll issue, which is why I have not >> tried to track it down yet. Since the problem is not present in the >> pretest, I figured it's a problem with my setup, not the Emacs sources, >> so I did not report a bug. > > I don't understand why you (and others) use different PATH > arrangements to run different binaries, and have multiple versions of > support DLLs. If I want to use the Mingw distribution, I use that path. If I want to use the Emacs pretest binary distribution, I use that path. I do _not_ mix distributions. I have no idea how the Emacs pretest was built; simply assuming it is the same as my current Mingw installation is almost guarranteed to be false. That's what PATH is for. >Isn't it clear that by doing so you create your own DLL > hell? No, I'm avoiding it by not mixing distributions. >It's much better to have just one copy of each support DLL, in > a place that is always on PATH. That would be nice. I can do that on Debian, that has only one package manager, and a rigorous distribution policy. I could do that on Windows by only using MSYS2. But then I would not be able to use the Emacs pretest. Hmm. I do usually have Cygwin in the PATH as well; it has shell tools I can't get in Mingw (yet). It turns out that is the problem; if I run my build of Emacs from a Mingw64 shell (no Cygwin in PATH), it can show PNGs. So your point about mixing distributions is valid; I was not being careful enough. Most of the time it's not a problem (this is the first problem I can remember). -- -- Stephe ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: png in emacs 25 mingw64 2016-04-16 20:34 ` png in emacs 25 mingw64 Stephen Leake @ 2016-04-16 21:02 ` Stephen Leake 2016-04-17 2:46 ` Eli Zaretskii 2016-04-17 2:45 ` Eli Zaretskii 1 sibling, 1 reply; 119+ messages in thread From: Stephen Leake @ 2016-04-16 21:02 UTC (permalink / raw) To: Eli Zaretskii; +Cc: ofv, emacs-devel Stephen Leake <stephen_leake@stephe-leake.org> writes: > Question; exactly which path is searched for DLLs? I have two: > > PATH from the parent process > > exec-path after editing in ~/.emacs > > The png image is opened well after ~/.emacs is processed, so does it > look on the edited exec-path for the dll? > > Or does the dll search take place during startup, in which case it is > the parent PATH (or exec-path before editing in ~/.emacs). Apparently the dll is searched for on the parent process PATH; moving mingw64/bin earlier in the parent process PATH (without changing the editing in ~/.emacs) fixes the PNG problem for me. -- -- Stephe ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: png in emacs 25 mingw64 2016-04-16 21:02 ` Stephen Leake @ 2016-04-17 2:46 ` Eli Zaretskii 0 siblings, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-17 2:46 UTC (permalink / raw) To: Stephen Leake; +Cc: ofv, emacs-devel > From: Stephen Leake <stephen_leake@stephe-leake.org> > Cc: ofv@wanadoo.es, emacs-devel@gnu.org > Date: Sat, 16 Apr 2016 16:02:06 -0500 > > Apparently the dll is searched for on the parent process PATH No, it's Windows PATH augmented by several directories. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: png in emacs 25 mingw64 2016-04-16 20:34 ` png in emacs 25 mingw64 Stephen Leake 2016-04-16 21:02 ` Stephen Leake @ 2016-04-17 2:45 ` Eli Zaretskii 1 sibling, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-17 2:45 UTC (permalink / raw) To: Stephen Leake; +Cc: ofv, emacs-devel > From: Stephen Leake <stephen_leake@stephe-leake.org> > Cc: ofv@wanadoo.es, emacs-devel@gnu.org > Date: Sat, 16 Apr 2016 15:34:16 -0500 > > > Question; exactly which path is searched for DLLs? I have two: > > PATH from the parent process > > exec-path after editing in ~/.emacs > > The png image is opened well after ~/.emacs is processed, so does it > look on the edited exec-path for the dll? > > Or does the dll search take place during startup, in which case it is > the parent PATH (or exec-path before editing in ~/.emacs). DLL search is done by the OS. See here: https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28v=vs.85%29.aspx > >Are both 64-bit DLLs? Are they both MinGW DLLs? > > I don't know how to tell. The 'file' command is one way. > > I don't understand why you (and others) use different PATH > > arrangements to run different binaries, and have multiple versions of > > support DLLs. > > If I want to use the Mingw distribution, I use that path. > > If I want to use the Emacs pretest binary distribution, I use that path. They are both MinGW programs, so I don't understand why you would need to keep them apart. > I have no idea how the Emacs pretest was built; simply assuming it is > the same as my current Mingw installation is almost guarranteed to be > false. There's only one procedure to build Emacs on Windows, so yes, you can assume that, and it will be almost certainly true. > >Isn't it clear that by doing so you create your own DLL > > hell? > > No, I'm avoiding it by not mixing distributions. Suit yourself, but then don't be surprised when you have such problems. > Hmm. I do usually have Cygwin in the PATH as well Now, _that_ you should keep separate from MinGW. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 21:37 ` Stephen Leake 2016-04-15 22:11 ` Óscar Fuentes 2016-04-16 6:30 ` Building Emacs on MSYS2 Eli Zaretskii @ 2016-04-18 12:32 ` Phillip Lord 2 siblings, 0 replies; 119+ messages in thread From: Phillip Lord @ 2016-04-18 12:32 UTC (permalink / raw) To: Stephen Leake; +Cc: Óscar Fuentes, emacs-devel Stephen Leake <stephen_leake@stephe-leake.org> writes: > Óscar Fuentes <ofv@wanadoo.es> writes: > > If it would help, I also build Emacs with MSYS2. I have not been using > the PKGBUILD script, but it doesn't look hard. > > So I can help with testing. I have Windows 8.1 64 bit, with msys2 > mingw64 installed; I can install mingw32 if we want to test there. > > One thing I'd like to fix; my build of emacs 25 does not display png > files. The binary pretest install does. I'd like to figure out the > difference. All I did was make sure that the libpng libraries were available on the build machine. The binary pretest needs the DLLs locally, though, or it fails. Only Xpm is supported by the bundle. Phil ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 17:58 ` Óscar Fuentes 2016-04-15 19:15 ` Paul Eggert @ 2016-04-15 19:42 ` Stefan Monnier 2016-04-15 20:17 ` Óscar Fuentes 1 sibling, 1 reply; 119+ messages in thread From: Stefan Monnier @ 2016-04-15 19:42 UTC (permalink / raw) To: emacs-devel > I was just saying that Emacs wide integers are the default on 64 bit > platforms. No: --with-wide-int was introduced so that Emacs can use integers which are twice the size of pointers (at the cost of making Lisp_Object twice the size, hence wasting space for all non-integer values). I.e. on a 64bit system, this would mean that the Lisp_Object type is 128bit wide, which would be a waste. Luckily for that script you quoted, on 64bit hosts, we basically ignore --with-wide-int, so even though it goes to extra trouble to set --with-wide-int on amd64 we disregard this "preposterous request". Stefan ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 19:42 ` Stefan Monnier @ 2016-04-15 20:17 ` Óscar Fuentes 2016-04-15 21:22 ` Stefan Monnier 0 siblings, 1 reply; 119+ messages in thread From: Óscar Fuentes @ 2016-04-15 20:17 UTC (permalink / raw) To: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> I was just saying that Emacs wide integers are the default on 64 bit >> platforms. > > No: --with-wide-int was introduced so that Emacs can use integers which > are twice the size of pointers (at the cost of making Lisp_Object twice > the size, hence wasting space for all non-integer values). AFAIK that was the reasoning when 64 bit platforms were not prevalent and 32 bit the norm. > I.e. on > a 64bit system, this would mean that the Lisp_Object type is 128bit > wide, which would be a waste. > > Luckily for that script you quoted, on 64bit hosts, we basically > ignore --with-wide-int, so even though it goes to extra trouble to > set --with-wide-int on amd64 we disregard this "preposterous request". Hence effectively --with-wide-int is a method for ensuring that a 64 bit type is used for storing Emacs integers. But as on 64 bit platforms Emacs already uses a 64 bit type for that, there is no observable difference from the POV of the user among passing --with-wide-int=yes to the configure script and not doing it. Which is in line with what you quoted from my previous message. Now, can be agree on that I'm right and stop this pointless discussion :-) ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-15 20:17 ` Óscar Fuentes @ 2016-04-15 21:22 ` Stefan Monnier 0 siblings, 0 replies; 119+ messages in thread From: Stefan Monnier @ 2016-04-15 21:22 UTC (permalink / raw) To: emacs-devel >>> I was just saying that Emacs wide integers are the default on 64 bit >>> platforms. >> No: --with-wide-int was introduced so that Emacs can use integers which >> are twice the size of pointers (at the cost of making Lisp_Object twice >> the size, hence wasting space for all non-integer values). > AFAIK that was the reasoning when 64 bit platforms were not prevalent > and 32 bit the norm. --with-wide-int is pretty recent, so 64bit was already prevalent when it appeared. IOW The reasoning hasn't changed since. > Hence effectively --with-wide-int is a method for ensuring that a 64 bit > type is used for storing Emacs integers. That's the end result in practice, I guess. But from the implementation point of view it's quite different. > Now, can be agree on that I'm right and stop this pointless discussion > :-) Admit it: I'm right, Stefan ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 (was: Build failure for Emacs master) 2016-04-14 15:58 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Óscar Fuentes 2016-04-14 16:09 ` Building Emacs on MSYS2 Paul Eggert @ 2016-04-14 16:15 ` Eli Zaretskii 2016-04-14 16:43 ` Building Emacs on MSYS2 Óscar Fuentes 1 sibling, 1 reply; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 16:15 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Thu, 14 Apr 2016 17:58:09 +0200 > > Currently this is the code for configuring the build of emacs-git on > MSYS2 MinGW-packages: > > build() { > [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}" > mkdir -p "${srcdir}/build-${MINGW_CHOST}" > cd "build-${MINGW_CHOST}" > > local with_wide_int='no' > > if test "${CARCH}" == 'x86_64'; then > with_wide_int='yes' > fi > > CPPFLAGS="-DNDEBUG -isystem ${MINGW_PREFIX}/include" > CFLAGS="-pipe -O3 -fomit-frame-pointer -funroll-loops" > LDFLAGS="-s -Wl,-s" > "${srcdir}/${_realname}/configure" \ > --prefix="${MINGW_PREFIX}" \ > --build="${MINGW_CHOST}" \ > --with-wide-int="${with_wide_int}" \ > --with-sound="yes" \ > --with-file-notification="yes" \ > --without-gpm \ > --without-gconf \ > --without-gsettings \ > --without-selinux > > make > } > > Apart from setting with_wide_int and adding some (unnecessary, IMHO) > optimization options, it looks like a fairly standard configuration. Actually, I see nothing standard at all here. I see no reason for _any_ of the options, neither in CPPFLAGS nor in CFLAGS. They are all potential source of trouble for the uninitiated. (If there are real reasons for them, they must be bugs that should be reported and fixed upstream.) And why "-s" in LDFLAGS? that's just hostile to developers, since no user can possibly provide any details about any bugs. (Of course, this is in line with -fomit-frame-pointer, which is also a killer for any attempts to debug.) And all the switches to 'configure', with the single exception of --prefix (assuming that it has the correct /d/foo/bar form and points to the MinGW directory, not to MSYS2 directory) are simply clutter, they are no-ops at best and potential trouble at worst. Bottom line, I really don't like this script. > The package contains two patches too. This one that looks like trying to > avoid a link problem: > > > --- src/image.c.orig 2014-10-15 14:18:29.088716000 +0200 > +++ src/image.c 2014-10-15 15:54:12.407522800 +0200 > @@ -7862,7 +7862,7 @@ > }; > > #if defined HAVE_NTGUI && defined WINDOWSNT > -static bool init_imagemagick_functions (void); > +#define init_imagemagick_functions NULL > #else > #define init_imagemagick_functions NULL > #endif What link problem is that? Why those who use the official procedure never have or report it? > and this one that seems related to locating the source directory: > > --- src/lread.c.orig 2014-11-04 20:29:22.129549000 +0100 > +++ src/lread.c 2014-11-04 22:33:07.346414100 +0100 > @@ -4351,6 +4351,12 @@ > } /* Vinstallation_directory != Vsource_directory */ > > } /* if Vinstallation_directory */ > + else > + { > + Vsource_directory > + = Fexpand_file_name (build_string ("../"), > + Fcar (decode_env_path (0, PATH_DATA, 0))); > + } > } > else /* !initialized */ > { What problem does this try to fix, and why? > I can change the emacs-git package for not adding those optimization > options and not setting with-wide-int. Do you think that's enough? I think this should simply invoke the commands shown in nt/INSTALL.W64, and that's it. IOW, it should run the official procedure, and if there are reasons to change that, those reasons should be reported and discussed. > > Failing that, please consider > > switching back to what the project recommends, what is documented in > > the relevant INSTALL documents. > > Because MSYS2 does not distribute binaries for emacs-git, I guess that > the number of people who currently uses the PKGBUILD shown above is very > small. I have similar issues with the MSYS2 procedure for building official releases. Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 16:15 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Eli Zaretskii @ 2016-04-14 16:43 ` Óscar Fuentes 2016-04-14 17:35 ` Eli Zaretskii 0 siblings, 1 reply; 119+ messages in thread From: Óscar Fuentes @ 2016-04-14 16:43 UTC (permalink / raw) To: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> Apart from setting with_wide_int and adding some (unnecessary, IMHO) >> optimization options, it looks like a fairly standard configuration. > > Actually, I see nothing standard at all here. I see no reason for > _any_ of the options, neither in CPPFLAGS nor in CFLAGS. They are all > potential source of trouble for the uninitiated. (If there are real > reasons for them, they must be bugs that should be reported and fixed > upstream.) And why "-s" in LDFLAGS? that's just hostile to > developers, since no user can possibly provide any details about any > bugs. (Of course, this is in line with -fomit-frame-pointer, which is > also a killer for any attempts to debug.) The MSYS2 packages (as well as the Arch Linux packages which serves as models) are intended for use on production, not for debugging. OTOH, PKGBUILDs are supposed to have code for choosing debug builds if the user passes certain flags to the build tool. This specific PKGBUILD lacks that code. Adding it is not difficult. > And all the switches to > 'configure', with the single exception of --prefix (assuming that it > has the correct /d/foo/bar form and points to the MinGW directory, not > to MSYS2 directory) Of course, the MinGW hierarchy is used. > are simply clutter, they are no-ops at best and > potential trouble at worst. I guess those came from the Arch Linux package that served as model. OTOH is a good practice to explicitly state "I have this feature so use it". The MSYS2 build procedure already makes sure that the dependencies are installed, so if something is not properly detected by the configure script, it is a good thing to error out. Most of the listed options on that PKGBUILD are not related to this, though. > Bottom line, I really don't like this script. > >> The package contains two patches too. This one that looks like trying to >> avoid a link problem: >> >> >> --- src/image.c.orig 2014-10-15 14:18:29.088716000 +0200 >> +++ src/image.c 2014-10-15 15:54:12.407522800 +0200 >> @@ -7862,7 +7862,7 @@ >> }; >> >> #if defined HAVE_NTGUI && defined WINDOWSNT >> -static bool init_imagemagick_functions (void); >> +#define init_imagemagick_functions NULL >> #else >> #define init_imagemagick_functions NULL >> #endif > > What link problem is that? Why those who use the official procedure > never have or report it? I have no idea. Probably imagemagick, as built and distributed by MSYS2, does not have or need that feature. >> and this one that seems related to locating the source directory: >> >> --- src/lread.c.orig 2014-11-04 20:29:22.129549000 +0100 >> +++ src/lread.c 2014-11-04 22:33:07.346414100 +0100 >> @@ -4351,6 +4351,12 @@ >> } /* Vinstallation_directory != Vsource_directory */ >> >> } /* if Vinstallation_directory */ >> + else >> + { >> + Vsource_directory >> + = Fexpand_file_name (build_string ("../"), >> + Fcar (decode_env_path (0, PATH_DATA, 0))); >> + } >> } >> else /* !initialized */ >> { > > What problem does this try to fix, and why? Just guessing: the post-build install directory is not the same as the directory used for running Emacs (after running `make install', the resulting files are packaged, stored and distributed by the project; then users unpackage in their own installs; it's like doing `make install' and the moving the install directory elsewhere.) >> I can change the emacs-git package for not adding those optimization >> options and not setting with-wide-int. Do you think that's enough? > > I think this should simply invoke the commands shown in > nt/INSTALL.W64, and that's it. IOW, it should run the official > procedure, and if there are reasons to change that, those reasons > should be reported and discussed. Some modifications may be unavoidable due to how MSYS2 works (see above) but I agree with the sentiment. >> > Failing that, please consider >> > switching back to what the project recommends, what is documented in >> > the relevant INSTALL documents. >> >> Because MSYS2 does not distribute binaries for emacs-git, I guess that >> the number of people who currently uses the PKGBUILD shown above is very >> small. > > I have similar issues with the MSYS2 procedure for building official > releases. The idea is to put emacs-git on good shape and, when emacs 25 is released, port the modifications to the stable MSYS emacs PKGBUILD. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Building Emacs on MSYS2 2016-04-14 16:43 ` Building Emacs on MSYS2 Óscar Fuentes @ 2016-04-14 17:35 ` Eli Zaretskii 0 siblings, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-04-14 17:35 UTC (permalink / raw) To: Óscar Fuentes; +Cc: emacs-devel > From: Óscar Fuentes <ofv@wanadoo.es> > Date: Thu, 14 Apr 2016 18:43:08 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > >> Apart from setting with_wide_int and adding some (unnecessary, IMHO) > >> optimization options, it looks like a fairly standard configuration. > > > > Actually, I see nothing standard at all here. I see no reason for > > _any_ of the options, neither in CPPFLAGS nor in CFLAGS. They are all > > potential source of trouble for the uninitiated. (If there are real > > reasons for them, they must be bugs that should be reported and fixed > > upstream.) And why "-s" in LDFLAGS? that's just hostile to > > developers, since no user can possibly provide any details about any > > bugs. (Of course, this is in line with -fomit-frame-pointer, which is > > also a killer for any attempts to debug.) > > The MSYS2 packages (as well as the Arch Linux packages which serves as > models) are intended for use on production, not for debugging. We are talking about building the development snapshots. It is IMO silly to build those without debugging info. > OTOH, PKGBUILDs are supposed to have code for choosing debug builds if > the user passes certain flags to the build tool. This specific PKGBUILD > lacks that code. Adding it is not difficult. Development snapshots are best compiled with debugging info (and with "--enable-checking" as well, btw). > > are simply clutter, they are no-ops at best and > > potential trouble at worst. > > I guess those came from the Arch Linux package that served as model. I wonder why someone might think that copying configure-time option from a totally different OS could be a good idea. Why not ask here instead? > OTOH is a good practice to explicitly state "I have this feature so use > it". Emacs can do that without these switches, see system-configuration-features. > The MSYS2 build procedure already makes sure that the dependencies > are installed, so if something is not properly detected by the configure > script, it is a good thing to error out. Most of the listed options on > that PKGBUILD are not related to this, though. None of them are related to this, actually. > >> --- src/lread.c.orig 2014-11-04 20:29:22.129549000 +0100 > >> +++ src/lread.c 2014-11-04 22:33:07.346414100 +0100 > >> @@ -4351,6 +4351,12 @@ > >> } /* Vinstallation_directory != Vsource_directory */ > >> > >> } /* if Vinstallation_directory */ > >> + else > >> + { > >> + Vsource_directory > >> + = Fexpand_file_name (build_string ("../"), > >> + Fcar (decode_env_path (0, PATH_DATA, 0))); > >> + } > >> } > >> else /* !initialized */ > >> { > > > > What problem does this try to fix, and why? > > Just guessing: the post-build install directory is not the same as the > directory used for running Emacs (after running `make install', the > resulting files are packaged, stored and distributed by the project; > then users unpackage in their own installs; it's like doing `make > install' and the moving the install directory elsewhere.) This kind of problem (if it indeed is it) should be fixed in site-init.el files, not by patching sources. > >> > Failing that, please consider > >> > switching back to what the project recommends, what is documented in > >> > the relevant INSTALL documents. > >> > >> Because MSYS2 does not distribute binaries for emacs-git, I guess that > >> the number of people who currently uses the PKGBUILD shown above is very > >> small. > > > > I have similar issues with the MSYS2 procedure for building official > > releases. > > The idea is to put emacs-git on good shape and, when emacs 25 is > released, port the modifications to the stable MSYS emacs PKGBUILD. That's not what I meant, I meant the argument about the small number of people who use this script. I don't think it's small, because the same problems are in building the official releases. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 1:31 ` Paul Eggert 2016-04-14 8:03 ` Angelo Graziosi @ 2016-04-14 16:36 ` Angelo Graziosi 2016-04-14 16:39 ` Paul Eggert 1 sibling, 1 reply; 119+ messages in thread From: Angelo Graziosi @ 2016-04-14 16:36 UTC (permalink / raw) To: Paul Eggert; +Cc: Emacs development discussions Just for completeness... I have seen you have committed the patch.. Using emacs-master.tar.gz as source, the result is $ ./autogen.sh all Checking whether you have the necessary tools... (Read INSTALL.REPO for more details on building Emacs) Checking for autoconf (need at least version 2.65)... ok Checking for automake (need at least version 1.11)... ok Your system has the required tools. Running 'autoreconf -fi -I m4' ... configure.ac:796: installing 'build-aux/ar-lib' configure.ac:139: installing 'build-aux/config.guess' configure.ac:139: installing 'build-aux/config.sub' configure.ac:136: installing 'build-aux/install-sh' configure.ac:136: installing 'build-aux/missing' lib/Makefile.am: installing 'build-aux/depcomp' You can now run './configure'. which should be Ok. Right? Angelo Il 14/04/2016 03:31, Paul Eggert ha scritto: > './autogen.sh all' can be adjusted to work for your use case. I > installed the attached patch, which attempts to do that. Please give it > a try. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 16:36 ` Build failure for Emacs master Angelo Graziosi @ 2016-04-14 16:39 ` Paul Eggert 0 siblings, 0 replies; 119+ messages in thread From: Paul Eggert @ 2016-04-14 16:39 UTC (permalink / raw) To: Angelo Graziosi; +Cc: Emacs development discussions On 04/14/2016 09:36 AM, Angelo Graziosi wrote: > > which should be Ok. Right? Yes, looks good, thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-13 21:32 ` Paul Eggert 2016-04-13 22:00 ` Angelo Graziosi @ 2016-04-14 1:38 ` Stefan Monnier 2016-04-14 2:04 ` John Wiegley 2016-04-14 14:41 ` Paul Eggert 1 sibling, 2 replies; 119+ messages in thread From: Stefan Monnier @ 2016-04-14 1:38 UTC (permalink / raw) To: emacs-devel >> You can now run './autogen.sh git'. >> Really we need to run './autogen.sh git'? > Yes you need to, and yes it is silly. Does he really need to? I thought the whole point is that it's optional, and not desired by everyone. IOW, he might like to do that, but he shouldn't need to. Stefan ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 1:38 ` Stefan Monnier @ 2016-04-14 2:04 ` John Wiegley 2016-04-14 14:41 ` Paul Eggert 1 sibling, 0 replies; 119+ messages in thread From: John Wiegley @ 2016-04-14 2:04 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel >>>>> Stefan Monnier <monnier@iro.umontreal.ca> writes: > Does he really need to? I thought the whole point is that it's optional, and > not desired by everyone. IOW, he might like to do that, but he shouldn't > need to. I thought that it should always be optional as well. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2 ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-04-14 1:38 ` Stefan Monnier 2016-04-14 2:04 ` John Wiegley @ 2016-04-14 14:41 ` Paul Eggert 1 sibling, 0 replies; 119+ messages in thread From: Paul Eggert @ 2016-04-14 14:41 UTC (permalink / raw) To: emacs-devel On 04/13/2016 06:38 PM, Stefan Monnier wrote: >>> You can now run './autogen.sh git'. >>> >>Really we need to run './autogen.sh git'? >> >Yes you need to, and yes it is silly. > Does he really need to? I thought the whole point is that it's > optional, and not desired by everyone. You're right, it's optional (though it is a good idea unless one knows Git well). And for his particular case, where he didn't have a .git subdirectory, it shouldn't be done at all. Anyway, this should be fixed now. ^ permalink raw reply [flat|nested] 119+ messages in thread
* Re: Build failure for Emacs master 2016-02-24 9:36 ` Angelo Graziosi 2016-02-24 10:20 ` Angelo Graziosi @ 2016-02-24 17:31 ` Eli Zaretskii 1 sibling, 0 replies; 119+ messages in thread From: Eli Zaretskii @ 2016-02-24 17:31 UTC (permalink / raw) To: Angelo Graziosi; +Cc: emacs-devel > Cc: emacs-devel@gnu.org > From: Angelo Graziosi <angelo.graziosi@alice.it> > Date: Wed, 24 Feb 2016 10:36:13 +0100 > > Il 24/02/2016 04:42, Eli Zaretskii ha scritto: > >> From: Angelo Graziosi <angelo.graziosi@alice.it> > >> Date: Tue, 23 Feb 2016 23:11:42 +0100 > >> > >> Just for the record, master fail to build on MSYS2/MinGW64: > > > > It doesn't fail for me. > > > >> Loading faces... > >> Loading button... > >> Loading loaddefs.el (source)... > >> End of file during parsing: > >> c:/msys64/tmp/mingw-w64-emacs-git/src/emacs/lisp/loaddefs.el > > > > Please look at your loaddefs.el, and tell if you see something strange > > there, like null bytes. > > > > Hmm.. I removed the Emacs tree and recreated from scratch, then retried > the build.. Now it fails on another loaddefs, org-loaddefs.el. I have > seen the same failure a week ago or so and just retrying worked... > > I wonder if this could be related to the "make -j3" (two core) or some > other thing in MSYS2.. > > Let's see what happen with another try.. Please also look at these files and try to figure out what's wrong with them. I think there's a subtle bug that hits from time to time, and it's important for us to collect as much info about it as possible. Thanks. ^ permalink raw reply [flat|nested] 119+ messages in thread
end of thread, other threads:[~2016-04-21 10:46 UTC | newest] Thread overview: 119+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-02-23 22:11 Build failure for Emacs master Angelo Graziosi 2016-02-23 23:14 ` Paul Eggert 2016-02-24 0:23 ` Angelo Graziosi 2016-02-24 3:42 ` Eli Zaretskii 2016-02-24 9:36 ` Angelo Graziosi 2016-02-24 10:20 ` Angelo Graziosi 2016-02-24 17:37 ` Eli Zaretskii 2016-02-24 22:20 ` Angelo Graziosi 2016-02-25 16:43 ` Eli Zaretskii 2016-03-04 21:50 ` Angelo Graziosi 2016-03-05 7:25 ` Eli Zaretskii 2016-03-05 13:53 ` Angelo Graziosi 2016-03-05 20:59 ` Angelo Graziosi 2016-03-06 3:35 ` Eli Zaretskii 2016-03-06 16:55 ` Eli Zaretskii 2016-03-06 22:00 ` Angelo Graziosi 2016-03-06 17:37 ` Andy Moreton 2016-03-06 17:54 ` Eli Zaretskii 2016-04-12 0:36 ` Angelo Graziosi 2016-04-12 11:36 ` Phillip Lord 2016-04-12 20:54 ` Angelo Graziosi 2016-04-12 22:52 ` MS-Windows warnings (was build failure) " Paul Eggert 2016-04-12 23:36 ` Angelo Graziosi 2016-04-13 5:49 ` Yuri Khan 2016-04-13 15:26 ` Eli Zaretskii 2016-04-13 18:06 ` Paul Eggert 2016-04-13 19:16 ` Eli Zaretskii 2016-04-19 15:46 ` Davis Herring 2016-04-19 16:04 ` Eli Zaretskii 2016-04-19 19:19 ` Davis Herring 2016-04-12 15:28 ` Build failure " Eli Zaretskii 2016-04-12 21:00 ` Angelo Graziosi 2016-04-12 21:49 ` Andy Moreton 2016-04-13 2:37 ` Eli Zaretskii 2016-04-13 23:11 ` Andy Moreton 2016-04-14 7:32 ` Phillip Lord 2016-04-14 16:06 ` Paul Eggert 2016-04-14 16:19 ` Eli Zaretskii 2016-04-14 16:50 ` O_BINARY and emacs_open (was: Build failure for Emacs master) Paul Eggert 2016-04-15 11:08 ` Build failure for Emacs master Phillip Lord 2016-04-15 14:40 ` Eli Zaretskii 2016-04-18 19:08 ` Phillip Lord 2016-04-18 19:33 ` Eli Zaretskii 2016-04-18 20:05 ` Phillip Lord 2016-04-18 21:10 ` Paul Eggert 2016-04-20 8:18 ` Phillip Lord 2016-04-20 15:05 ` Eli Zaretskii 2016-04-20 16:55 ` Phillip Lord 2016-04-20 17:41 ` Eli Zaretskii 2016-04-20 17:59 ` Andy Moreton 2016-04-21 10:46 ` Phillip Lord 2016-04-14 16:35 ` Eli Zaretskii 2016-04-14 17:06 ` Andy Moreton 2016-04-14 17:48 ` Eli Zaretskii 2016-04-14 18:40 ` Andy Moreton 2016-04-14 19:31 ` Eli Zaretskii 2016-04-14 20:30 ` Andy Moreton 2016-04-15 7:29 ` Eli Zaretskii 2016-04-15 8:18 ` Andy Moreton 2016-04-15 14:38 ` Eli Zaretskii 2016-04-15 15:36 ` Andy Moreton 2016-04-18 8:31 ` Angelo Graziosi 2016-04-18 18:30 ` Eli Zaretskii 2016-04-18 23:48 ` Andy Moreton 2016-04-19 9:58 ` Angelo Graziosi 2016-04-19 14:39 ` Eli Zaretskii 2016-04-19 21:15 ` Angelo Graziosi 2016-04-19 21:18 ` Angelo Graziosi 2016-04-19 21:20 ` Angelo Graziosi 2016-04-20 0:26 ` Paul Eggert 2016-04-20 14:25 ` Angelo Graziosi 2016-04-12 22:42 ` Angelo Graziosi 2016-04-13 20:12 ` Angelo Graziosi 2016-04-13 21:32 ` Paul Eggert 2016-04-13 22:00 ` Angelo Graziosi 2016-04-14 1:31 ` Paul Eggert 2016-04-14 8:03 ` Angelo Graziosi 2016-04-14 15:30 ` Eli Zaretskii 2016-04-14 15:58 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Óscar Fuentes 2016-04-14 16:09 ` Building Emacs on MSYS2 Paul Eggert 2016-04-14 16:13 ` Óscar Fuentes 2016-04-14 16:21 ` Eli Zaretskii 2016-04-14 16:46 ` Óscar Fuentes 2016-04-14 17:26 ` Eli Zaretskii 2016-04-14 20:09 ` Óscar Fuentes 2016-04-15 15:03 ` Paul Eggert 2016-04-15 15:37 ` Óscar Fuentes 2016-04-15 17:30 ` Paul Eggert 2016-04-15 17:58 ` Óscar Fuentes 2016-04-15 19:15 ` Paul Eggert 2016-04-15 19:40 ` Óscar Fuentes 2016-04-15 20:03 ` Eli Zaretskii 2016-04-15 20:20 ` Óscar Fuentes 2016-04-15 20:49 ` Eli Zaretskii 2016-04-15 21:37 ` Stephen Leake 2016-04-15 22:11 ` Óscar Fuentes 2016-04-16 6:42 ` Eli Zaretskii 2016-04-17 21:46 ` Fixing imagemagick on W32 Stephen Leake 2016-04-18 2:28 ` Eli Zaretskii 2016-04-16 6:30 ` Building Emacs on MSYS2 Eli Zaretskii 2016-04-16 12:17 ` Stephen Leake 2016-04-16 12:40 ` Eli Zaretskii 2016-04-16 20:34 ` png in emacs 25 mingw64 Stephen Leake 2016-04-16 21:02 ` Stephen Leake 2016-04-17 2:46 ` Eli Zaretskii 2016-04-17 2:45 ` Eli Zaretskii 2016-04-18 12:32 ` Building Emacs on MSYS2 Phillip Lord 2016-04-15 19:42 ` Stefan Monnier 2016-04-15 20:17 ` Óscar Fuentes 2016-04-15 21:22 ` Stefan Monnier 2016-04-14 16:15 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Eli Zaretskii 2016-04-14 16:43 ` Building Emacs on MSYS2 Óscar Fuentes 2016-04-14 17:35 ` Eli Zaretskii 2016-04-14 16:36 ` Build failure for Emacs master Angelo Graziosi 2016-04-14 16:39 ` Paul Eggert 2016-04-14 1:38 ` Stefan Monnier 2016-04-14 2:04 ` John Wiegley 2016-04-14 14:41 ` Paul Eggert 2016-02-24 17:31 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).