diff options
Diffstat (limited to 'meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch')
-rw-r--r-- | meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch | 106 |
1 files changed, 106 insertions, 0 deletions
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 00000000000..df5e4bd2583 --- /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)'` |