Index: linux-2.6.28/arch/cris/Makefile
===================================================================
--- linux-2.6.28.orig/arch/cris/Makefile	2008-12-25 00:26:37.000000000 +0100
+++ linux-2.6.28/arch/cris/Makefile	2009-01-09 22:52:39.000000000 +0100
@@ -40,7 +40,7 @@
 
 LD = $(CROSS_COMPILE)ld -mcrislinux
 
-OBJCOPYFLAGS := -O binary -R .note -R .comment -S
+OBJCOPYFLAGS := -O binary -R .bss -R .note -R .note.gnu.build-id -R .comment -S
 
 CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
 
Index: linux-2.6.28/arch/cris/arch-v10/boot/Makefile
===================================================================
--- linux-2.6.28.orig/arch/cris/arch-v10/boot/Makefile	2008-12-25 00:26:37.000000000 +0100
+++ linux-2.6.28/arch/cris/arch-v10/boot/Makefile	2009-01-09 22:52:39.000000000 +0100
@@ -13,7 +13,6 @@
 
 $(obj)/compressed/vmlinux: $(obj)/Image FORCE
 	$(Q)$(MAKE) $(build)=$(obj)/compressed $@
-	$(Q)$(MAKE) $(build)=$(obj)/rescue $(obj)/rescue/rescue.bin
 
 $(obj)/zImage:  $(obj)/compressed/vmlinux
 	@cp $< $@
Index: linux-2.6.28/arch/cris/arch-v10/boot/compressed/misc.c
===================================================================
--- linux-2.6.28.orig/arch/cris/arch-v10/boot/compressed/misc.c	2008-12-25 00:26:37.000000000 +0100
+++ linux-2.6.28/arch/cris/arch-v10/boot/compressed/misc.c	2009-01-10 18:00:45.000000000 +0100
@@ -5,7 +5,7 @@
  * adapted for Linux.
  *
  * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
- * puts by Nick Holloway 1993, better puts by Martin Mares 1995
+ * putstr by Nick Holloway 1993, better putstr by Martin Mares 1995
  * adaptation for Linux/CRIS Axis Communications AB, 1999
  *
  */
@@ -102,7 +102,6 @@
 static long bytes_out = 0;
 static uch *output_data;
 static unsigned long output_ptr = 0;
-static void puts(const char *);
 
 /* the "heap" is put directly after the BSS ends, at end */
 
@@ -115,7 +114,7 @@
 /* decompressor info and error messages to serial console */
 
 static void
-puts(const char *s)
+putstr(const char *s)
 {
 #ifndef CONFIG_ETRAX_DEBUG_PORT_NULL
 	while (*s) {
@@ -188,9 +187,9 @@
 
 static void error(char *x)
 {
-	puts("\n\n");
-	puts(x);
-	puts("\n\n -- System halted\n");
+	putstr("\n\n");
+	putstr(x);
+	putstr("\n\n -- System halted\n");
 
 	while (1);	/* Halt */
 }
@@ -236,11 +235,11 @@
 
 	__asm__ volatile ("move $vr,%0" : "=rm" (revision));
 	if (revision < 10) {
-		puts("You need an ETRAX 100LX to run linux 2.6\n");
+		putstr("You need an ETRAX 100LX to run linux 2.6\n");
 		while (1);
 	}
 
-	puts("Uncompressing Linux...\n");
+	putstr("Uncompressing Linux...\n");
 	gunzip();
-	puts("Done. Now booting the kernel.\n");
+	putstr("Done. Now booting the kernel.\n");
 }
Index: linux-2.6.28/arch/cris/arch-v10/mm/init.c
===================================================================
--- linux-2.6.28.orig/arch/cris/arch-v10/mm/init.c	2008-12-25 00:26:37.000000000 +0100
+++ linux-2.6.28/arch/cris/arch-v10/mm/init.c	2009-01-09 22:52:39.000000000 +0100
@@ -184,6 +184,9 @@
 
 	free_area_init_node(0, zones_size, PAGE_OFFSET >> PAGE_SHIFT, 0);
 }
+void free_initrd_mem(unsigned long start, unsigned long end)
+{
+}
 
 /* Initialize remaps of some I/O-ports. It is important that this
  * is called before any driver is initialized.
