===================================================================
@@ -23,9 +23,11 @@ unsigned int __machine_arch_type;
#include <linux/linkage.h>
static void putstr(const char *ptr);
-extern void error(char *x);
+void error(char *x);
+#ifndef CONFIG_ARCH_MULTIPLATFORM
#include <mach/uncompress.h>
+#endif
#ifdef CONFIG_DEBUG_ICEDCC
@@ -83,6 +85,34 @@ static void icedcc_putc(int ch)
#define putc(ch) icedcc_putc(ch)
#endif
+#ifdef CONFIG_ARCH_MULTIPLATFORM
+
+void fallback_arch_setup(void)
+{
+}
+
+void fallback_arch_error(char *x)
+{
+}
+
+#else
+
+#ifndef arch_error
+#define arch_error(x)
+#endif
+
+void fallback_arch_setup(void)
+{
+ arch_decomp_setup();
+}
+
+void fallback_arch_error(char *x)
+{
+ arch_error(x);
+}
+
+#endif /* CONFIG_ARCH_MULTIPLATFORM */
+
static void putstr(const char *ptr)
{
char c;
@@ -107,13 +137,9 @@ unsigned char *output_data;
unsigned long free_mem_ptr;
unsigned long free_mem_end_ptr;
-#ifndef arch_error
-#define arch_error(x)
-#endif
-
void error(char *x)
{
- arch_error(x);
+ fallback_arch_error(x);
putstr("\n\n");
putstr(x);
@@ -142,7 +168,7 @@ decompress_kernel(unsigned long output_s
free_mem_end_ptr = free_mem_ptr_end_p;
__machine_arch_type = arch_id;
- arch_decomp_setup();
+ fallback_arch_setup();
putstr("Uncompressing Linux...");
ret = do_decompress(input_data, input_data_end - input_data,