summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/emacs/emacs-22.3/use-qemu.patch93
-rw-r--r--packages/emacs/emacs-x11_20060801.bb2
-rw-r--r--packages/emacs/emacs-x11_22.3.bb15
-rw-r--r--packages/emacs/emacs.inc31
-rw-r--r--packages/emacs/emacs_20060801.bb2
-rw-r--r--packages/emacs/emacs_22.3.bb9
-rw-r--r--packages/emacs/files/nostdlib-unwind.patch16
7 files changed, 166 insertions, 2 deletions
diff --git a/packages/emacs/emacs-22.3/use-qemu.patch b/packages/emacs/emacs-22.3/use-qemu.patch
new file mode 100644
index 0000000000..3b85dc36fb
--- /dev/null
+++ b/packages/emacs/emacs-22.3/use-qemu.patch
@@ -0,0 +1,93 @@
+Warning: When editing the patch, see the ugly hack (removal of pwd) when calling temacs and emacs.
+For unknown reason, qemu-arm is not able to recognize binary correctly.
+
+Index: emacs-22.3/lib-src/Makefile.in
+===================================================================
+--- emacs-22.3.orig/lib-src/Makefile.in 2008-04-24 05:38:12.000000000 +0000
++++ emacs-22.3/lib-src/Makefile.in 2008-11-21 15:51:14.000000000 +0000
+@@ -24,7 +24,7 @@
+ SHELL = /bin/sh
+
+ # Following ../lisp/Makefile.in.
+-EMACS = ../src/emacs
++EMACS = ${QEMU} emacs
+ EMACSOPT = -batch --no-site-file --multibyte
+
+ # ==================== Things `configure' will edit ====================
+@@ -388,7 +388,7 @@
+ clobbered too. */
+ test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
+ $(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
+- ./test-distrib ${srcdir}/testfile
++ ${QEMU} ./test-distrib ${srcdir}/testfile
+
+ /* We need the following in order to create a <getopt.h> when the system
+ doesn't have one that works with the given compiler. */
+Index: emacs-22.3/lisp/Makefile.in
+===================================================================
+--- emacs-22.3.orig/lisp/Makefile.in 2008-08-12 18:35:42.000000000 +0000
++++ emacs-22.3/lisp/Makefile.in 2008-11-21 15:54:38.000000000 +0000
+@@ -63,7 +63,7 @@
+
+ # The actual Emacs command run in the targets below.
+
+-emacs = EMACSLOADPATH=$(lisp) $(EMACS) $(EMACSOPT)
++emacs = EMACSLOADPATH=$(lisp) ${QEMU} emacs $(EMACSOPT)
+
+ # Common command to find subdirectories
+
+Index: emacs-22.3/src/Makefile.in
+===================================================================
+--- emacs-22.3.orig/src/Makefile.in 2008-07-11 08:52:53.000000000 +0000
++++ emacs-22.3/src/Makefile.in 2008-11-21 15:52:09.000000000 +0000
+@@ -497,7 +497,7 @@
+ this with the shell''s ``for'' construct.
+ Note that some people do not have '.' in their paths, so we must
+ use ./prefix-args. */
+-#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
++#define YMF_PASS_LDFLAGS(flags) `${QEMU} ./prefix-args -Xlinker flags`
+ #else
+ #define YMF_PASS_LDFLAGS(flags) flags
+ #endif
+@@ -949,7 +949,7 @@
+ #define OBJECTS_MACHINE
+ #endif
+
+-RUN_TEMACS = ./temacs
++RUN_TEMACS = ${QEMU} temacs
+
+ all: emacs${EXEEXT} OTHER_FILES
+
+@@ -964,7 +964,7 @@
+ LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
+ #endif /* ! defined (HAVE_SHM) */
+ #endif /* ! defined (CANNOT_DUMP) */
+- -./emacs -q -batch -f list-load-path-shadows
++ -${QEMU} emacs -q -batch -f list-load-path-shadows
+
+ /* We run make-docfile twice because the command line may get too long
+ on some systems. */
+@@ -976,8 +976,8 @@
+ Likewise for ${SOME_MACHINE_LISP}. */
+ ${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
+ -rm -f ${etc}DOC
+- ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
+- ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
++ ${QEMU} ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
++ ${QEMU} ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
+
+ ${libsrc}make-docfile${EXEEXT}:
+ cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
+Index: emacs-22.3/leim/Makefile.in
+===================================================================
+--- emacs-22.3.orig/leim/Makefile.in 2008-01-07 08:09:43.000000000 +0000
++++ emacs-22.3/leim/Makefile.in 2008-11-21 15:52:50.000000000 +0000
+@@ -51,7 +51,7 @@
+
+ # How to run Emacs.
+ RUN-EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C\
+- ${BUILT-EMACS} -batch --no-init-file --no-site-file --multibyte
++ ${QEMU} emacs -batch --no-init-file --no-site-file --multibyte
+
+ # Subdirectories to be made if ${srcdir} is different from the current
+ # directory.
diff --git a/packages/emacs/emacs-x11_20060801.bb b/packages/emacs/emacs-x11_20060801.bb
index 3878c42536..a6ed4e73f9 100644
--- a/packages/emacs/emacs-x11_20060801.bb
+++ b/packages/emacs/emacs-x11_20060801.bb
@@ -2,4 +2,4 @@ require emacs-x11_cvs.bb
SRCDATE = "20060801"
-DEFAULT_PREFERENCE = "0"
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/emacs/emacs-x11_22.3.bb b/packages/emacs/emacs-x11_22.3.bb
new file mode 100644
index 0000000000..03102bf58a
--- /dev/null
+++ b/packages/emacs/emacs-x11_22.3.bb
@@ -0,0 +1,15 @@
+require emacs.inc
+
+# full X (non-diet) is needed for X support
+DEPENDS += "gtk+ libungif"
+
+EXTRA_OECONF = "--without-sound --with-x-toolkit=gtk"
+
+RREPLACES = "emacs"
+
+FILESPATH = "${FILE_DIRNAME}/emacs-${PV}:${FILE_DIRNAME}/files"
+SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz \
+ file://use-qemu.patch;patch=1 \
+ file://nostdlib-unwind.patch;patch=1"
+
+S = "${WORKDIR}/emacs-${PV}"
diff --git a/packages/emacs/emacs.inc b/packages/emacs/emacs.inc
new file mode 100644
index 0000000000..95dd6e08e9
--- /dev/null
+++ b/packages/emacs/emacs.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "Emacs"
+HOMEPAGE = "http://www.gnu.org/software/emacs/"
+LICENSE = "GPLv2"
+SECTION = "editor"
+# and it needs to run some generated binaries..
+DEPENDS += "qemu-native"
+
+inherit autotools
+
+PACKAGES =+ "${PN}-el"
+
+FILES_${PN}-el = "${datadir}/emacs/*/*/*.el.gz \
+ ${datadir}/emacs/*/*/*/*.el.gz"
+
+FILES_${PN} += "${datadir}/emacs"
+
+FILES_${PN}-dbg += "${libexecdir}/emacs/*/*/.debug ${datadir}/emacs/*/*/.debug"
+
+# Large stack is required at least on x86_64 host, otherwise random segfaults appear:
+QEMU = "qemu-${TARGET_ARCH} -s 1048576 -L ${STAGING_DIR_TARGET}"
+
+do_compile_prepend() {
+ sed -i ':1;s:\(START.* \|LIB_STANDARD.* \|LIBES.* \)/usr/lib:\1${STAGING_LIBDIR}:;t1' ${S}/src/s/gnu-linux.h `find "${S}" -name Makefile`
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${CROSS_DIR}/${TARGET_SYS}/lib"
+# Ugly hack, see files/use-qemu.patch for more:
+ ln -sf ../src/emacs lisp/emacs
+ ln -sf ../src/emacs lib-src/emacs
+ ln -sf ../src/emacs leim/emacs
+}
+
+EXTRA_OEMAKE += 'QEMU="${QEMU}"'
diff --git a/packages/emacs/emacs_20060801.bb b/packages/emacs/emacs_20060801.bb
index 834e5b6239..fe472b4c5a 100644
--- a/packages/emacs/emacs_20060801.bb
+++ b/packages/emacs/emacs_20060801.bb
@@ -1,3 +1,3 @@
require emacs_cvs.bb
SRCDATE = "20060801"
-DEFAULT_PREFERENCE = "0"
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/emacs/emacs_22.3.bb b/packages/emacs/emacs_22.3.bb
new file mode 100644
index 0000000000..da8de39eec
--- /dev/null
+++ b/packages/emacs/emacs_22.3.bb
@@ -0,0 +1,9 @@
+require emacs.inc
+
+EXTRA_OECONF = "--without-sound --without-x"
+
+SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz \
+ file://use-qemu.patch;patch=1 \
+ file://nostdlib-unwind.patch;patch=1"
+
+S = "${WORKDIR}/emacs-${PV}"
diff --git a/packages/emacs/files/nostdlib-unwind.patch b/packages/emacs/files/nostdlib-unwind.patch
new file mode 100644
index 0000000000..4200301a3f
--- /dev/null
+++ b/packages/emacs/files/nostdlib-unwind.patch
@@ -0,0 +1,16 @@
+Fix linking problem:
+undefined reference to `__aeabi_unwind_cpp_pr0'
+undefined reference to `__aeabi_unwind_cpp_pr1'
+Index: emacs/src/Makefile.in
+===================================================================
+--- emacs.orig/src/Makefile.in 2008-08-16 14:20:18.000000000 +0000
++++ emacs/src/Makefile.in 2008-08-16 14:51:25.000000000 +0000
+@@ -443,7 +443,7 @@
+ ask GCC explicitly where to find libgcc.a. */
+
+ #ifndef LINKER
+-#define LINKER $(CC) -nostdlib
++#define LINKER $(CC) -nostdlib -lgcc_s
+ #endif
+
+ #ifndef LIB_GCC