diff mbox series

emacs: update to 29.1

Message ID 20230830062517.2700246-1-alejandro@enedino.org
State Under Review
Headers show
Series emacs: update to 29.1 | expand

Commit Message

Alejandro Enedino Hernandez Samaniego Aug. 30, 2023, 6:25 a.m. UTC
From: Alejandro Hernandez Samaniego <alejandro@enedino.org>

- Rebase (and rename) use-emacs-native-tools-for-cross-compiling.patch
- Build bootstrap-emacs for emacs-native
- Use bootstrap-emacs (native) for cross compiling.
  - We need to pass EMACSLOADPATH and EMACSDATA so we can control the
  directories being used by bootstrap-emacs.
- Create avoid-running-host-binaries-for-sanity.patch to avoid running
  the newly integrated santity-check by emacs since it tries to run target
  binaries on the host.
- Fix emacs-minimal packaging for new version.

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
---
 .../emacs/{emacs_28.2.bb => emacs_29.1.bb}    |  52 +++++++--
 ...oid-running-host-binaries-for-sanity.patch |  38 +++++++
 ...acs-native-tools-for-cross-compiling.patch | 106 ++++++++++++++++++
 .../emacs/files/usemake-docfile-native.patch  |  85 --------------
 4 files changed, 187 insertions(+), 94 deletions(-)
 rename meta-oe/recipes-support/emacs/{emacs_28.2.bb => emacs_29.1.bb} (88%)
 create mode 100644 meta-oe/recipes-support/emacs/files/avoid-running-host-binaries-for-sanity.patch
 create mode 100644 meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch
 delete mode 100644 meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/emacs/emacs_28.2.bb b/meta-oe/recipes-support/emacs/emacs_29.1.bb
similarity index 88%
rename from meta-oe/recipes-support/emacs/emacs_28.2.bb
rename to meta-oe/recipes-support/emacs/emacs_29.1.bb
index d44026536..ae35367ac 100644
--- a/meta-oe/recipes-support/emacs/emacs_28.2.bb
+++ b/meta-oe/recipes-support/emacs/emacs_29.1.bb
@@ -5,11 +5,13 @@  LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
 
 SRC_URI = "https://ftp.gnu.org/pub/gnu/emacs/emacs-${PV}.tar.xz \
-           file://0001-largefile.m4-Update-from-latest-gnulib.patch \
           "
-SRC_URI:append:class-target = " file://usemake-docfile-native.patch"
+SRC_URI:append:class-target = " \
+    file://use-emacs-native-tools-for-cross-compiling.patch \
+    file://avoid-running-host-binaries-for-sanity.patch \
+"
 
-SRC_URI[sha256sum] = "ee21182233ef3232dc97b486af2d86e14042dbb65bbc535df562c3a858232488"
+SRC_URI[sha256sum] = "d2f881a5cc231e2f5a03e86f4584b0438f83edd7598a09d24a21bd8d003e2e01"
 
 CVE_STATUS[CVE-2007-6109] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
@@ -32,24 +34,42 @@  DEPENDS:append:class-target = " emacs-native"
 
 inherit autotools mime-xdg pkgconfig
 
-# Remove build host references to avoid target pollution
-do_compile:prepend () {
-    sed -i -e 's|${TMPDIR}||g' ${B}/src/config.h
-    sed -i -e 's|${B}||g' ${B}/src/epaths.h
-}
 
+# Create the required native tools for the target build
 do_compile:class-native (){
     cd ${B}/lib-src
     oe_runmake make-docfile
     oe_runmake make-fingerprint
+    cd ${B}/src
+    oe_runmake bootstrap-emacs
 }
+
 do_install:class-native(){
     install -d ${D}${bindir}
     install -m 755 ${B}/lib-src/make-docfile ${D}/${bindir}/
     install -m 755 ${B}/lib-src/make-fingerprint ${D}/${bindir}/
+    install -m 755 ${B}/src/bootstrap-emacs ${D}/${bindir}/
+}
+
+do_compile:prepend:class-target () {
+   # export EMACS env variables for the native tools to use to allow calling bootstrap-emacs
+    export EMACSLOADPATH=${S}/lisp
+    export EMACSDATA=${S}/etc
 }
 
 
+do_install:prepend:class-target(){
+    # export EMACS env variables for the native tools to use to allow calling bootstrap-emacs
+    export EMACSLOADPATH=${S}/lisp
+    export EMACSDATA=${S}/etc
+}
+
+# Remove build host references to avoid target pollution
+do_compile:prepend () {
+    sed -i -e 's|${TMPDIR}||g' ${B}/src/config.h
+    sed -i -e 's|${B}||g' ${B}/src/epaths.h
+}
+
 do_install:append(){
     # Delete systemd stuff, extend using DISTRO_FEATURES?
     rm -rf ${D}/${libdir}
@@ -96,18 +116,28 @@  FILES:${PN}-minimal = " \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/bytecomp.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cconv.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-generic.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-lib.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-macs.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-preloaded.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-seq.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/debug-early.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/easy-mmode.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/easymenu.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eldoc.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/float-sup.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/gv.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/inline.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp-mode.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/macroexp.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map-ynp.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/nadvice.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/oclosure.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/pcase.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/regexp-opt.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/rmc.elc \
+    ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/rx.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/seq.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/shorthands.elc \
     ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/subr-x.elc \
@@ -141,6 +171,8 @@  FILES:${PN}-minimal = " \
     ${datadir}/${BPN}/${PV}/lisp/isearch.elc \
     ${datadir}/${BPN}/${PV}/lisp/jit-lock.elc \
     ${datadir}/${BPN}/${PV}/lisp/jka-cmpr-hook.elc \
+    ${datadir}/${BPN}/${PV}/lisp/jka-compr.elc \
+    ${datadir}/${BPN}/${PV}/lisp/keymap.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/burmese.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/cham.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/chinese.elc \
@@ -153,11 +185,13 @@  FILES:${PN}-minimal = " \
     ${datadir}/${BPN}/${PV}/lisp/language/greek.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/hebrew.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/indian.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/indonesian.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/japanese.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/khmer.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/korean.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/lao.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/misc-lang.elc \
+    ${datadir}/${BPN}/${PV}/lisp/language/philippine.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/romanian.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/sinhala.elc \
     ${datadir}/${BPN}/${PV}/lisp/language/slovak.elc \
@@ -182,7 +216,6 @@  FILES:${PN}-minimal = " \
     ${datadir}/${BPN}/${PV}/lisp/rfn-eshadow.elc \
     ${datadir}/${BPN}/${PV}/lisp/select.elc \
     ${datadir}/${BPN}/${PV}/lisp/simple.elc \
-    ${datadir}/${BPN}/${PV}/lisp/simple.elc \
     ${datadir}/${BPN}/${PV}/lisp/startup.elc \
     ${datadir}/${BPN}/${PV}/lisp/subr.elc \
     ${datadir}/${BPN}/${PV}/lisp/tab-bar.elc \
@@ -192,6 +225,7 @@  FILES:${PN}-minimal = " \
     ${datadir}/${BPN}/${PV}/lisp/textmodes/page.elc \
     ${datadir}/${BPN}/${PV}/lisp/textmodes/paragraphs.elc \
     ${datadir}/${BPN}/${PV}/lisp/textmodes/text-mode.elc \
+    ${datadir}/${BPN}/${PV}/lisp/thingatpt.elc \
     ${datadir}/${BPN}/${PV}/lisp/tooltip.elc \
     ${datadir}/${BPN}/${PV}/lisp/uniquify.elc \
     ${datadir}/${BPN}/${PV}/lisp/vc/ediff-hook.elc \
diff --git a/meta-oe/recipes-support/emacs/files/avoid-running-host-binaries-for-sanity.patch b/meta-oe/recipes-support/emacs/files/avoid-running-host-binaries-for-sanity.patch
new file mode 100644
index 000000000..719ee4bce
--- /dev/null
+++ b/meta-oe/recipes-support/emacs/files/avoid-running-host-binaries-for-sanity.patch
@@ -0,0 +1,38 @@ 
+Upstream-Status: Inappropriate  [OE-Specific]
+
+Emacs introduced a sanity-check for the build artifacts, where it
+runs the newly built emacs to perform some checks.
+
+This is not going to work for us since we are cross-compiling,
+we need to avoid running target binaries on the host
+
+Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
+
+Index: emacs-29.1/Makefile.in
+===================================================================
+--- emacs-29.1.orig/Makefile.in
++++ emacs-29.1/Makefile.in
+@@ -416,19 +416,10 @@ advice-on-failure:
+ 	@exit ${exit-status}
+ 
+ sanity-check:
+-	@[ -f .no-advice-on-failure ] && exit 0; true
+-	@v=$$(src/emacs${EXEEXT} --batch --eval \
+-	  '(progn (defun f (n) (if (= 0 n) 1 (* n (f (- n 1))))) (princ (f 10)))' \
+-	  2> /dev/null); \
+-	[ "X$$v" = "X3628800" ] && exit 0; \
+-	echo >&2 '***'; \
+-	echo >&2 '*** '"\"make ${make-target}\" succeeded, but Emacs is not functional."; \
+-	echo >&2 '***'; \
+-	cat Makefile | \
+-	  sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# ADVICE-ON-FAILURE-END:${make-target}/q;};' | \
+-	  sed 's/^# /*** /' | grep -v '^\*\*\* ADVICE-ON-FAILURE-' >&2; \
+-	echo >&2 '***'; \
+-	exit 1
++# The Makefile will try to call the newly built emacs to perform some checks
++# this is not going to work since it was (probably) built for a different architecture.
++# Avoid calling target binaries from the host and simply assume our build artifacts work.
++	exit 0
+ 
+ .PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32 epaths-force-ns-self-contained etc-emacsver
+ 
diff --git a/meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch b/meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch
new file mode 100644
index 000000000..df5e4bd25
--- /dev/null
+++ b/meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch
@@ -0,0 +1,106 @@ 
+Upstream-Status: Inappropriate  [OE-Specific]
+
+When building emacs, it builds some tools for the HOST
+that are then used to build for target, such as
+make-fingerprint and make-docfile and bootstrap-emacs,
+this needs to be adapted to be used by bitbake, otherwise
+the compiled executables arent compatible with the HOST.
+
+We also need to be able to use emacs env variables to
+control how bootstrap-emacs is used when cross-compiling.
+
+Use the above mentioned tools provided by the native
+version of the recipe instead.
+
+Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
+
+Index: emacs-29.1/src/Makefile.in
+===================================================================
+--- emacs-29.1.orig/src/Makefile.in
++++ emacs-29.1/src/Makefile.in
+@@ -1,3 +1,4 @@
++
+ ### @configure_input@
+ 
+ # Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2023 Free Software
+@@ -508,7 +509,7 @@ ifeq ($(CHECK_STRUCTS),true)
+ pdumper.o: dmpstruct.h
+ endif
+ dmpstruct.h: $(srcdir)/dmpstruct.awk
+-dmpstruct.h: $(libsrc)/make-fingerprint$(EXEEXT) $(dmpstruct_headers)
++dmpstruct.h:  $(dmpstruct_headers)
+ 	$(AM_V_GEN)POSIXLY_CORRECT=1 awk -f $(srcdir)/dmpstruct.awk \
+ 		$(dmpstruct_headers) > $@
+ 
+@@ -610,8 +611,7 @@ SYSTEM_TYPE = @SYSTEM_TYPE@
+ ## Strictly speaking, emacs does not depend directly on all of $lisp,
+ ## since not all pieces are used on all platforms.  But DOC depends
+ ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here.
+-emacs$(EXEEXT): temacs$(EXEEXT) \
+-                lisp.mk $(etc)/DOC $(lisp) \
++emacs$(EXEEXT): lisp.mk $(etc)/DOC $(lisp) \
+                 $(lispsource)/international/charprop.el ${charsets}
+ ifeq ($(SYSTEM_TYPE),cygwin)
+ 	find ${top_builddir} -name '*.eln' | rebase -v -O -T -
+@@ -654,7 +654,7 @@ endif
+ $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(doc_obj)
+ 	$(AM_V_GEN)$(MKDIR_P) $(etc)
+ 	$(AM_V_at)rm -f $(etc)/DOC
+-	$(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \
++	make-docfile -d $(srcdir) \
+ 	  $(SOME_MACHINE_OBJECTS) $(doc_obj) > $(etc)/DOC
+ 
+ $(libsrc)/make-docfile$(EXEEXT) $(libsrc)/make-fingerprint$(EXEEXT): \
+@@ -671,7 +671,7 @@ buildobj.h: Makefile
+ GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m)
+ 
+ gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES)
+-	$(AM_V_GLOBALS)$(libsrc)/make-docfile -d $(srcdir) -g $(doc_obj) > globals.tmp
++	make-docfile -d $(srcdir) -g $(doc_obj) > globals.tmp
+ 	$(AM_V_at)$(top_srcdir)/build-aux/move-if-change globals.tmp globals.h
+ 	$(AM_V_at)echo timestamp > $@
+ 
+@@ -685,7 +685,7 @@ $(LIBEGNU_ARCHIVE): $(config_h)
+ 	$(MAKE) -C $(dir $@) all
+ 
+ ifeq ($(HAVE_PDUMPER),yes)
+-MAKE_PDUMPER_FINGERPRINT = $(libsrc)/make-fingerprint$(EXEEXT)
++MAKE_PDUMPER_FINGERPRINT = make-fingerprint
+ else
+ MAKE_PDUMPER_FINGERPRINT =
+ endif
+Index: emacs-29.1/lisp/Makefile.in
+===================================================================
+--- emacs-29.1.orig/lisp/Makefile.in
++++ emacs-29.1/lisp/Makefile.in
+@@ -53,7 +53,7 @@ FIND_DELETE = @FIND_DELETE@
+ # We never change directory before running Emacs, so a relative file
+ # name is fine, and makes life easier.  If we need to change
+ # directory, we can use emacs --chdir.
+-EMACS = ../src/emacs${EXEEXT}
++EMACS = bootstrap-emacs
+ 
+ # Command line flags for Emacs.
+ 
+@@ -109,7 +109,7 @@ MAIN_FIRST = ./emacs-lisp/eieio.el ./ema
+   ./org/oc.el ./org/ol.el ./emacs-lisp/cl-lib.el
+ 
+ # Prevent any settings in the user environment causing problems.
+-unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
++unexport EMACSDOC EMACSPATH
+ 
+ # The actual Emacs command run in the targets below.
+ emacs = '$(EMACS)' $(EMACSOPT)
+Index: emacs-29.1/Makefile.in
+===================================================================
+--- emacs-29.1.orig/Makefile.in
++++ emacs-29.1/Makefile.in
+@@ -328,7 +328,7 @@ GLIB_COMPILE_SCHEMAS = glib-compile-sche
+ TRANSFORM = @program_transform_name@
+ 
+ # Prevent any settings in the user environment causing problems.
+-unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
++unexport  EMACSDOC EMACSPATH
+ 
+ # What emacs should be called when installed.
+ EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'`
diff --git a/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch b/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
deleted file mode 100644
index 95b428183..000000000
--- a/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
+++ /dev/null
@@ -1,85 +0,0 @@ 
-Upstream-Status: Inappropriate  [OE-Specific]
-
-When building emacs, it builds some tools for the HOST
-that are then used to build for target, such as
-make-fingerprint and make-docfile, this needs to be
-adapted to be used by bitbake, otherwise the compiled
-executables arent compatible with the HOST.
-
-Use the above mentioned tools provided by the native
-version of the recipe instead.
-
-Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
-
-Index: emacs-28.2/src/Makefile.in
-===================================================================
---- emacs-28.2.orig/src/Makefile.in
-+++ emacs-28.2/src/Makefile.in
-@@ -462,7 +462,7 @@ ifeq ($(CHECK_STRUCTS),true)
- pdumper.o: dmpstruct.h
- endif
- dmpstruct.h: $(srcdir)/dmpstruct.awk
--dmpstruct.h: $(libsrc)/make-fingerprint$(EXEEXT) $(dmpstruct_headers)
-+dmpstruct.h:  $(dmpstruct_headers)
- 	$(AM_V_GEN)POSIXLY_CORRECT=1 awk -f $(srcdir)/dmpstruct.awk \
- 		$(dmpstruct_headers) > $@
- 
-@@ -563,8 +563,7 @@ SYSTEM_TYPE = @SYSTEM_TYPE@
- ## Strictly speaking, emacs does not depend directly on all of $lisp,
- ## since not all pieces are used on all platforms.  But DOC depends
- ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here.
--emacs$(EXEEXT): temacs$(EXEEXT) \
--                lisp.mk $(etc)/DOC $(lisp) \
-+emacs$(EXEEXT): lisp.mk $(etc)/DOC $(lisp) \
-                 $(lispsource)/international/charprop.el ${charsets}
- ifeq ($(SYSTEM_TYPE),cygwin)
- 	find ${top_builddir} -name '*.eln' | rebase -v -O -T -
-@@ -597,15 +596,15 @@ endif
- ## for the first time, this prevents any variation between configurations
- ## in the contents of the DOC file.
- ##
--$(etc)/DOC: lisp.mk $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp)
-+$(etc)/DOC: lisp.mk $(obj) $(lisp)
- 	$(AM_V_GEN)$(MKDIR_P) $(etc)
- 	$(AM_V_at)rm -f $(etc)/DOC
--	$(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \
-+	make-docfile -d $(srcdir) \
- 	  $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC
--	$(AM_V_at)$(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) \
-+	make-docfile -a $(etc)/DOC -d $(lispsource) \
- 	  $(shortlisp)
- 
--$(libsrc)/make-docfile$(EXEEXT) $(libsrc)/make-fingerprint$(EXEEXT): \
-+$(libsrc)/make-fingerprint$(EXEEXT): \
-   $(lib)/libgnu.a
- 	$(MAKE) -C $(dir $@) $(notdir $@)
- 
-@@ -618,8 +617,8 @@ buildobj.h: Makefile
- 
- GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m)
- 
--gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES)
--	$(AM_V_GLOBALS)$(libsrc)/make-docfile -d $(srcdir) -g $(obj) > globals.tmp
-+gl-stamp: $(GLOBAL_SOURCES)
-+	make-docfile -d $(srcdir) -g $(obj) > globals.tmp
- 	$(AM_V_at)$(top_srcdir)/build-aux/move-if-change globals.tmp globals.h
- 	$(AM_V_at)echo timestamp > $@
- 
-@@ -633,7 +632,7 @@ $(LIBEGNU_ARCHIVE): $(config_h)
- 	$(MAKE) -C $(dir $@) all
- 
- ifeq ($(HAVE_PDUMPER),yes)
--  MAKE_PDUMPER_FINGERPRINT = $(libsrc)/make-fingerprint$(EXEEXT)
-+  MAKE_PDUMPER_FINGERPRINT = make-fingerprint
- else
-   MAKE_PDUMPER_FINGERPRINT =
- endif
-@@ -643,7 +642,7 @@ endif
- ## This goes on to affect various things, and the emacs binary fails
- ## to start if Vinstallation_directory has the wrong value.
- temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(EMACSRES) \
--  $(charsets) $(charscript) ${emoji-zwj} $(MAKE_PDUMPER_FINGERPRINT)
-+  $(charsets) $(charscript) ${emoji-zwj}
- 	$(AM_V_CCLD)$(CC) -o $@.tmp \
- 	  $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \
- 	  $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(W32_RES_LINK) $(LIBES)