diff options
| -rw-r--r-- | target/linux/uml/Makefile | 2 | ||||
| -rw-r--r-- | target/linux/uml/patches/002-syscall_define_fix_uml_compile_bug.patch | 54 | 
2 files changed, 55 insertions, 1 deletions
diff --git a/target/linux/uml/Makefile b/target/linux/uml/Makefile index 41d20ff94..7b8f4fca2 100644 --- a/target/linux/uml/Makefile +++ b/target/linux/uml/Makefile @@ -23,7 +23,7 @@ BOARDNAME:=User Mode Linux  FEATURES:=ext2  LINUX_CONFIG:=$(CURDIR)/config/$(ARCH) -LINUX_VERSION:=2.6.28 +LINUX_VERSION:=2.6.28.5  include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/uml/patches/002-syscall_define_fix_uml_compile_bug.patch b/target/linux/uml/patches/002-syscall_define_fix_uml_compile_bug.patch new file mode 100644 index 000000000..563294a95 --- /dev/null +++ b/target/linux/uml/patches/002-syscall_define_fix_uml_compile_bug.patch @@ -0,0 +1,54 @@ +http://patchwork.kernel.org/patch/7166/ + +--- a/include/linux/syscalls.h ++++ b/include/linux/syscalls.h +@@ -95,13 +95,13 @@ struct old_linux_dirent; + #define __SC_TEST5(t5, a5, ...)	__SC_TEST(t5); __SC_TEST4(__VA_ARGS__) + #define __SC_TEST6(t6, a6, ...)	__SC_TEST(t6); __SC_TEST5(__VA_ARGS__) +  +-#define SYSCALL_DEFINE0(name)   asmlinkage long sys_##name(void) +-#define SYSCALL_DEFINE1(...)    SYSCALL_DEFINEx(1, __VA_ARGS__) +-#define SYSCALL_DEFINE2(...)    SYSCALL_DEFINEx(2, __VA_ARGS__) +-#define SYSCALL_DEFINE3(...)    SYSCALL_DEFINEx(3, __VA_ARGS__) +-#define SYSCALL_DEFINE4(...)    SYSCALL_DEFINEx(4, __VA_ARGS__) +-#define SYSCALL_DEFINE5(...)    SYSCALL_DEFINEx(5, __VA_ARGS__) +-#define SYSCALL_DEFINE6(...)    SYSCALL_DEFINEx(6, __VA_ARGS__) ++#define SYSCALL_DEFINE0(name)	   asmlinkage long sys_##name(void) ++#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__) ++#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__) ++#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__) ++#define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__) ++#define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__) ++#define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__) +  + #ifdef CONFIG_PPC64 + #define SYSCALL_ALIAS(alias, name)					\ +@@ -116,21 +116,21 @@ struct old_linux_dirent; +  + #define SYSCALL_DEFINE(name) static inline long SYSC_##name + #define SYSCALL_DEFINEx(x, name, ...)					\ +-	asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__));		\ +-	static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__));	\ +-	asmlinkage long SyS_##name(__SC_LONG##x(__VA_ARGS__))		\ ++	asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__));		\ ++	static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__));	\ ++	asmlinkage long SyS##name(__SC_LONG##x(__VA_ARGS__))		\ + 	{								\ + 		__SC_TEST##x(__VA_ARGS__);				\ +-		return (long) SYSC_##name(__SC_CAST##x(__VA_ARGS__));	\ ++		return (long) SYSC##name(__SC_CAST##x(__VA_ARGS__));	\ + 	}								\ +-	SYSCALL_ALIAS(sys_##name, SyS_##name);				\ +-	static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__)) ++	SYSCALL_ALIAS(sys##name, SyS##name);				\ ++	static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__)) +  + #else /* CONFIG_HAVE_SYSCALL_WRAPPERS */ +  + #define SYSCALL_DEFINE(name) asmlinkage long sys_##name + #define SYSCALL_DEFINEx(x, name, ...)					\ +-	asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__)) ++	asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__)) +  + #endif /* CONFIG_HAVE_SYSCALL_WRAPPERS */ +   | 
