From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Andy Moreton Newsgroups: gmane.emacs.devel Subject: Re: CHECK_STRUCTS/dmpstruct.h mechanism is broken. Date: Wed, 10 Apr 2019 15:59:36 +0100 Message-ID: References: <20190228202146.GC4686@ACM> <20190228205955.GD4686@ACM> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="32564"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (windows-nt) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 10 17:19:15 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hEF0M-0008JM-DS for ged-emacs-devel@m.gmane.org; Wed, 10 Apr 2019 17:19:14 +0200 Original-Received: from localhost ([127.0.0.1]:33074 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hEF0L-0005kb-B5 for ged-emacs-devel@m.gmane.org; Wed, 10 Apr 2019 11:19:13 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:56346) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hEEwt-0002xg-U0 for emacs-devel@gnu.org; Wed, 10 Apr 2019 11:15:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hEEhW-0002v1-7l for emacs-devel@gnu.org; Wed, 10 Apr 2019 10:59:47 -0400 Original-Received: from [195.159.176.226] (port=56610 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hEEhV-0002ua-SP for emacs-devel@gnu.org; Wed, 10 Apr 2019 10:59:46 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1hEEhT-000tIo-UY for emacs-devel@gnu.org; Wed, 10 Apr 2019 16:59:43 +0200 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:2zMJqV3HSS647DeIqxcQhcZWHic= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:235215 Archived-At: On Wed 10 Apr 2019, Andy Moreton wrote: > On Tue 09 Apr 2019, Paul Eggert wrote: > >> On 3/4/19 6:17 PM, Paul Eggert wrote: >>> On 2/28/19 12:59 PM, Alan Mackenzie wrote: >>>> is all this really needed? Is pdumper.c really that fragile, >>>> that it can't cope with changes in certain structs? >>> No, it's not needed, and in my experience the mechanism's costs far >>> exceed any benefit. >> >> No further comment and the mechanism just bit me again, so I installed >> the attached patch to disable it. We can reenable it later if needed >> (which I hope won't happen....). > > This patch seems to be ok, but your following patch in commit d826037475 > ("Remove the need for temacs.in") breaks out of tree builds. > > It seems to me that the patch contains a mixture of changes to remove > temacs.in support, and a number of unrelated changes to Makefile.in > files which break the build. > > For example, this breaks out-of-tree builds, as make tries to use > /path/to/emacs/admin/charsets/Makefile rather than the correct path > /admin/charsets/Makefile: > > diff --git a/src/Makefile.in b/src/Makefile.in > index 0613a0dbed..f8a2ffadc2 100644 > --- a/src/Makefile.in > +++ b/src/Makefile.in > @@ -533,7 +533,7 @@ ${lispintdir}/cp51932.el ${lispintdir}/eucjp-ms.el: > > charsets = ${top_srcdir}/admin/charsets/charsets.stamp > ${charsets}: FORCE > - ${MAKE} -C ../admin/charsets all > + $(MAKE) -C $(dir $@) all > > charscript = ${lispintdir}/charscript.el > ${charscript}: FORCE > > The unrelated changes should have been committed in a separate patch > for easier bisection: a patch should contain a single logical change. > > Please revert all of the unrelated makefile path handling changes so > master is buildable (the example above is one of many breakages). The following changes (a partial revert of commit d826037475) make it possible to build emacs out of tree on Windows (msys2 mingw64): diff --git a/src/Makefile.in b/src/Makefile.in index f8a2ffadc2..6816b8bf8d 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -533,7 +533,7 @@ ${lispintdir}/cp51932.el ${lispintdir}/eucjp-ms.el: charsets = ${top_srcdir}/admin/charsets/charsets.stamp ${charsets}: FORCE - $(MAKE) -C $(dir $@) all + $(MAKE) -C ../admin/charsets all charscript = ${lispintdir}/charscript.el ${charscript}: FORCE @@ -586,7 +586,7 @@ $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(libsrc)/make-fingerprint$(EXEEXT): \ $(lib)/libgnu.a - $(MAKE) -C $(dir $@) $(notdir $@) + $(MAKE) -C $(libsrc) make-docfile$(EXEEXT) buildobj.h: Makefile $(AM_V_GEN)for i in $(ALLOBJS); do \ @@ -614,7 +614,7 @@ $(ALLOBJS): LIBEGNU_ARCHIVE = $(lib)/lib$(if $(HYBRID_MALLOC),e)gnu.a $(LIBEGNU_ARCHIVE): $(config_h) - $(MAKE) -C $(dir $@) all + $(MAKE) -C $(lib) all FINGERPRINTED = $(LIBXMENU) $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(EMACSRES) fingerprint.c: $(FINGERPRINTED) $(libsrc)/make-fingerprint$(EXEEXT) @@ -639,15 +639,15 @@ temacs$(EXEEXT): ## The following oldxmenu-related rules are only (possibly) used if ## HAVE_X11 && !USE_GTK, but there is no harm in always defining them. $(lwlibdir)/liblw.a: $(config_h) globals.h lisp.h FORCE - $(MAKE) -C $(dir $@) $(notdir $@) + $(MAKE) -C $(lwlibdir) liblw.a $(oldXMenudir)/libXMenu11.a: FORCE - $(MAKE) -C $(dir $@) $(notdir $@) + $(MAKE) -C -C $(oldXMenudir) libXMenu11.a FORCE: .PHONY: FORCE .PRECIOUS: ../config.status Makefile ../config.status: $(top_srcdir)/configure.ac $(top_srcdir)/m4/*.m4 - $(MAKE) -C $(dir $@) $(notdir $@) + $(MAKE) -C .. $(notdir $@) Makefile: ../config.status $(srcdir)/Makefile.in $(MAKE) -C .. src/$@ @@ -703,7 +703,7 @@ extraclean: ETAGS = ../lib-src/etags${EXEEXT} ${ETAGS}: FORCE - $(MAKE) -C $(dir $@) $(notdir $@) + $(MAKE) -C ../lib-src $(notdir $@) # Remove macuvs.h and fingerprint.c since they'd cause `src/emacs` # to be built before we can get TAGS. @@ -728,8 +728,11 @@ TAGS: ## Arrange to make tags tables for ../lisp and ../lwlib, ## which the above TAGS file for the C files includes by reference. -../lisp/TAGS $(lwlibdir)/TAGS: FORCE - $(MAKE) -C $(dir $@) $(notdir $@) ETAGS="$(ETAGS)" +../lisp/TAGS: FORCE + $(MAKE) -C ../lisp TAGS ETAGS="$(ETAGS)" + +$(lwlibdir)/TAGS: FORCE + $(MAKE) -C $(lwlibdir) TAGS ETAGS="$(ETAGS)" tags: TAGS ../lisp/TAGS $(lwlibdir)/TAGS .PHONY: tags @@ -765,7 +768,7 @@ VCSWITNESS = $(lispsource)/loaddefs.el: $(VCSWITNESS) | \ bootstrap-emacs$(EXEEXT) $(bootstrap_pdmp) - $(MAKE) -C $(dir $@) autoloads EMACS="$(bootstrap_exe)" + $(MAKE) -C ../lisp autoloads EMACS="$(bootstrap_exe)" ## Dump an Emacs executable named bootstrap-emacs containing the ## files from loadup.el in source form.