--- linux-2.6.0/arch/um/kernel/um_arch.c.~1~ 2003-12-31 16:40:09.000000000 +0100 +++ linux-2.6.0/arch/um/kernel/um_arch.c 2003-12-31 16:43:35.000000000 +0100 @@ -422,6 +422,10 @@ check_devanon(); } +void apply_alternatives(void *start, void *end) +{ +} + /* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically --- linux-2.6.0/arch/um/kernel/user_syms.c.~1~ 2003-12-31 16:40:09.000000000 +0100 +++ linux-2.6.0/arch/um/kernel/user_syms.c 2003-12-31 16:43:41.000000000 +0100 @@ -16,6 +16,62 @@ * since this includes various user-level headers. */ +/* Had to update this: this changed in late 2.5 to add CRC and other beasts + * and was never updated here- 13 Dec 2003-Blaisorblade*/ + +/* v850 toolchain uses a `_' prefix for all user symbols */ +#ifndef MODULE_SYMBOL_PREFIX +#define MODULE_SYMBOL_PREFIX "" +#endif + +struct kernel_symbol +{ + unsigned long value; + const char *name; +}; + +#if !defined(UML_CONFIG_MODULES) +#define EXPORT_SYMBOL(sym) +#define EXPORT_SYMBOL_GPL(sym) +#define EXPORT_SYMBOL_NOVERS(sym) + +#else /*UML_CONFIG_MODULES*/ +#ifndef __GENKSYMS__ +#ifdef UML_CONFIG_MODVERSIONS +/* Mark the CRC weak since genksyms apparently decides not to + * generate a checksums for some symbols */ +#define __CRC_SYMBOL(sym, sec) \ + extern void *__crc_##sym __attribute__((weak)); \ + static const unsigned long __kcrctab_##sym \ + __attribute__((section("__kcrctab" sec), unused)) \ + = (unsigned long) &__crc_##sym; +#else +#define __CRC_SYMBOL(sym, sec) +#endif + +/* For every exported symbol, place a struct in the __ksymtab section */ +#define __EXPORT_SYMBOL(sym, sec) \ + __CRC_SYMBOL(sym, sec) \ + static const char __kstrtab_##sym[] \ + __attribute__((section("__ksymtab_strings"))) \ + = MODULE_SYMBOL_PREFIX #sym; \ + static const struct kernel_symbol __ksymtab_##sym \ + __attribute__((section("__ksymtab" sec), unused)) \ + = { (unsigned long)&sym, __kstrtab_##sym } + +#define EXPORT_SYMBOL(sym) \ + __EXPORT_SYMBOL(sym, "") + +#define EXPORT_SYMBOL_GPL(sym) \ + __EXPORT_SYMBOL(sym, "_gpl") + +#endif + +/* We don't mangle the actual symbol anymore, so no need for + * special casing EXPORT_SYMBOL_NOVERS. FIXME: Deprecated */ +#define EXPORT_SYMBOL_NOVERS(sym) EXPORT_SYMBOL(sym) +#endif +#if 0 struct module_symbol { unsigned long value; @@ -57,6 +113,7 @@ #define EXPORT_SYMBOL_NOVERS(var) __EXPORT_SYMBOL(var, __MODULE_STRING(var)) #endif +#endif EXPORT_SYMBOL(__errno_location); @@ -109,5 +166,7 @@ EXPORT_SYMBOL(memset); EXPORT_SYMBOL(strstr); +EXPORT_SYMBOL(printf); +EXPORT_SYMBOL(strlen); EXPORT_SYMBOL(find_iomem); --- linux-2.6.0/include/asm-um/elf.h.~1~ 2003-12-31 11:55:32.000000000 +0100 +++ linux-2.6.0/include/asm-um/elf.h 2003-12-31 16:49:11.000000000 +0100 @@ -15,4 +15,17 @@ #define USE_ELF_CORE_DUMP +#define R_386_NONE 0 +#define R_386_32 1 +#define R_386_PC32 2 +#define R_386_GOT32 3 +#define R_386_PLT32 4 +#define R_386_COPY 5 +#define R_386_GLOB_DAT 6 +#define R_386_JMP_SLOT 7 +#define R_386_RELATIVE 8 +#define R_386_GOTOFF 9 +#define R_386_GOTPC 10 +#define R_386_NUM 11 + #endif