--- /dev/null
+diff -rup em-4.0.15-lt.oorig/display.c em-4.0.15-lt/display.c
+--- em-4.0.15-lt.oorig/display.c 1994-05-21 12:40:56.000000000 +0200
++++ em-4.0.15-lt/display.c 2005-11-16 16:54:22.000000000 +0100
+@@ -9,6 +9,7 @@
+ */
+
+ #include <stdio.h>
++#include <errno.h>
+ #include "estruct.h"
+ #include "edef.h"
+
+diff -rup em-4.0.15-lt.oorig/main.c em-4.0.15-lt/main.c
+--- em-4.0.15-lt.oorig/main.c 1994-05-21 12:41:03.000000000 +0200
++++ em-4.0.15-lt/main.c 2005-11-16 16:54:01.000000000 +0100
+@@ -123,7 +123,7 @@ char *argv[]; /* argument strings */
+ #endif
+
+ #if UNIX
+- static void emergencyexit();
++ void emergencyexit();
+ #ifdef SIGWINCH
+ extern void sizesignal();
+ #endif
+@@ -599,7 +599,7 @@ quickexit(f, n)
+ return(TRUE);
+ }
+
+-static void emergencyexit(signr)
++void emergencyexit(signr)
+ int signr;
+ {
+ quickexit(FALSE, 0);
+
--- /dev/null
+--- em-4.0.15-lt.oorig/lock.c 1999-05-16 09:04:17.000000000 +0200
++++ em-4.0.15-lt/lock.c 2006-03-10 15:22:16.000000000 +0100
+@@ -152,10 +152,8 @@
+
+ strcpy(obuf, errstr);
+ strcat(obuf, " - ");
+- if (errno < sys_nerr)
+- strcat(obuf, sys_errlist[errno]);
+- else
+- strcat(obuf, "(can not get system error message)");
++ strcat(obuf, strerror(errno));
++
+ mlwrite(obuf);
+ }
+ #endif
+--- em-4.0.15-lt.oorig/input.c 1994-05-21 12:41:02.000000000 +0200
++++ em-4.0.15-lt/input.c 2006-03-10 15:31:18.000000000 +0100
+@@ -581,7 +581,7 @@
+ if (! iswild)
+ strcat(ffbuf,"*");
+ strcat(ffbuf, " >");
+- mktemp(tmp);
++ mkstemp(tmp);
+ strcat(ffbuf, tmp);
+ strcat(ffbuf, " 2>&1");
+ system(ffbuf);
--- /dev/null
+#############################################################
+#
+# uemacs
+#
+#############################################################
+UEMACS_VER:=4.0.15-lt
+UEMACS_SOURCE:=em-$(UEMACS_VER).tar.bz2
+UEMACS_SITE:=ftp://ftp.kernel.org/pub/software/editors/uemacs/
+UEMACS_DIR:=$(BUILD_DIR)/em-$(UEMACS_VER)
+UEMACS_BINARY:=em
+UEMACS_TARGET_BINARY:=usr/bin/emacs
+
+$(DL_DIR)/$(UEMACS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(UEMACS_SITE)/$(UEMACS_SOURCE)
+
+uemacs-source: $(DL_DIR)/$(UEMACS_SOURCE)
+
+$(UEMACS_DIR)/.unpacked: $(DL_DIR)/$(UEMACS_SOURCE)
+ bzcat $(DL_DIR)/$(UEMACS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(UEMACS_DIR) package/uemacs/ uemacs\*.patch
+ touch $(UEMACS_DIR)/.unpacked
+
+$(UEMACS_DIR)/$(UEMACS_BINARY): $(UEMACS_DIR)/.unpacked
+ $(MAKE) -C $(UEMACS_DIR) \
+ CC="$(TARGET_CC)" DEFINES="-DAUTOCONF -DPOSIX -DUSG" CFLAGS+="$(TARGET_CFLAGS) -march=$(ARCH)" LIBS=-lcurses
+ $(STRIP) $(UEMACS_DIR)/$(UEMACS_BINARY)
+
+$(TARGET_DIR)/$(UEMACS_TARGET_BINARY): $(UEMACS_DIR)/$(UEMACS_BINARY)
+ $(INSTALL) -m 0755 -D $(UEMACS_DIR)/$(UEMACS_BINARY) $(TARGET_DIR)/$(UEMACS_TARGET_BINARY)
+
+uemacs: uclibc $(TARGET_DIR)/$(UEMACS_TARGET_BINARY)
+
+uemacs-clean:
+ rm -f $(TARGET_DIR)/$(UEMACS_TARGET_BINARY)
+ -$(MAKE) -C $(UEMACS_DIR) clean
+
+uemacs-dirclean:
+ rm -rf $(UEMACS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_UEMACS)),y)
+TARGETS+=uemacs
+endif