mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-27 07:57:27 +00:00
emacs: update to 29.1
- 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> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
committed by
Khem Raj
parent
f9afd63370
commit
1cfd2bcc84
+50
-16
@@ -5,11 +5,13 @@ LICENSE = "GPL-3.0-only"
|
|||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
|
LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
|
||||||
|
|
||||||
SRC_URI = "https://ftp.gnu.org/pub/gnu/emacs/emacs-${PV}.tar.xz \
|
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."
|
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
|
inherit autotools mime-xdg pkgconfig
|
||||||
|
|
||||||
|
|
||||||
|
# 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
|
# Remove build host references to avoid target pollution
|
||||||
do_compile:prepend () {
|
do_compile:prepend () {
|
||||||
sed -i -e 's|${TMPDIR}||g' ${B}/src/config.h
|
sed -i -e 's|${TMPDIR}||g' ${B}/src/config.h
|
||||||
sed -i -e 's|${B}||g' ${B}/src/epaths.h
|
sed -i -e 's|${B}||g' ${B}/src/epaths.h
|
||||||
}
|
}
|
||||||
|
|
||||||
do_compile:class-native (){
|
|
||||||
cd ${B}/lib-src
|
|
||||||
oe_runmake make-docfile
|
|
||||||
oe_runmake make-fingerprint
|
|
||||||
}
|
|
||||||
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}/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
do_install:append(){
|
do_install:append(){
|
||||||
# Delete systemd stuff, extend using DISTRO_FEATURES?
|
# Delete systemd stuff, extend using DISTRO_FEATURES?
|
||||||
rm -rf ${D}/${libdir}
|
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/bytecomp.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cconv.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-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-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/easymenu.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eldoc.elc \
|
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eldoc.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/float-sup.elc \
|
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/float-sup.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/gv.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-mode.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp.elc \
|
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/macroexp.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-ynp.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map.elc \
|
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/nadvice.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/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/seq.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/shorthands.elc \
|
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/shorthands.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/emacs-lisp/subr-x.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/isearch.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/jit-lock.elc \
|
${datadir}/${BPN}/${PV}/lisp/jit-lock.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/jka-cmpr-hook.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/burmese.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/cham.elc \
|
${datadir}/${BPN}/${PV}/lisp/language/cham.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/chinese.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/greek.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/hebrew.elc \
|
${datadir}/${BPN}/${PV}/lisp/language/hebrew.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/indian.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/japanese.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/khmer.elc \
|
${datadir}/${BPN}/${PV}/lisp/language/khmer.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/korean.elc \
|
${datadir}/${BPN}/${PV}/lisp/language/korean.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/lao.elc \
|
${datadir}/${BPN}/${PV}/lisp/language/lao.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/misc-lang.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/romanian.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/sinhala.elc \
|
${datadir}/${BPN}/${PV}/lisp/language/sinhala.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/language/slovak.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/rfn-eshadow.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/select.elc \
|
${datadir}/${BPN}/${PV}/lisp/select.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/simple.elc \
|
${datadir}/${BPN}/${PV}/lisp/simple.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/simple.elc \
|
|
||||||
${datadir}/${BPN}/${PV}/lisp/startup.elc \
|
${datadir}/${BPN}/${PV}/lisp/startup.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/subr.elc \
|
${datadir}/${BPN}/${PV}/lisp/subr.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/tab-bar.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/page.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/textmodes/paragraphs.elc \
|
${datadir}/${BPN}/${PV}/lisp/textmodes/paragraphs.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/textmodes/text-mode.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/tooltip.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/uniquify.elc \
|
${datadir}/${BPN}/${PV}/lisp/uniquify.elc \
|
||||||
${datadir}/${BPN}/${PV}/lisp/vc/ediff-hook.elc \
|
${datadir}/${BPN}/${PV}/lisp/vc/ediff-hook.elc \
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -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)'`
|
||||||
@@ -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)
|
|
||||||
Reference in New Issue
Block a user