diff options
| -rw-r--r-- | target/linux/uml-2.6/patches/01-no_syscallx | 71 | 
1 files changed, 71 insertions, 0 deletions
| diff --git a/target/linux/uml-2.6/patches/01-no_syscallx b/target/linux/uml-2.6/patches/01-no_syscallx new file mode 100644 index 000000000..6b542d0ea --- /dev/null +++ b/target/linux/uml-2.6/patches/01-no_syscallx @@ -0,0 +1,71 @@ +# Since the syscallx macros seem to be under threat, this patch stops +# using them, using syscall instead. + +Index: linux-2.6.17/arch/um/os-Linux/process.c +=================================================================== +--- linux-2.6.17.orig/arch/um/os-Linux/process.c	2006-09-20 11:15:08.000000000 -0400 ++++ linux-2.6.17/arch/um/os-Linux/process.c	2006-09-20 13:35:24.000000000 -0400 +@@ -140,11 +140,9 @@ void os_usr1_process(int pid) +  * syscalls, and also breaks with clone(), which does not unshare the TLS. +  */ +  +-inline _syscall0(pid_t, getpid) +- + int os_getpid(void) + { +-	return(getpid()); ++	return syscall(__NR_getpid); + } +  + int os_getpgrp(void) +Index: linux-2.6.17/arch/um/os-Linux/sys-i386/tls.c +=================================================================== +--- linux-2.6.17.orig/arch/um/os-Linux/sys-i386/tls.c	2006-06-18 13:49:35.000000000 -0400 ++++ linux-2.6.17/arch/um/os-Linux/sys-i386/tls.c	2006-09-20 13:37:27.000000000 -0400 +@@ -3,8 +3,6 @@ + #include "sysdep/tls.h" + #include "user_util.h" +  +-static _syscall1(int, get_thread_area, user_desc_t *, u_info); +- + /* Checks whether host supports TLS, and sets *tls_min according to the value +  * valid on the host. +  * i386 host have it == 6; x86_64 host have it == 12, for i386 emulation. */ +@@ -17,7 +15,7 @@ void check_host_supports_tls(int *suppor + 		user_desc_t info; + 		info.entry_number = val[i]; +  +-		if (get_thread_area(&info) == 0) { ++		if(syscall(__NR_get_thread_area, &info) == 0){ + 			*tls_min = val[i]; + 			*supports_tls = 1; + 			return; +Index: linux-2.6.17/arch/um/os-Linux/tls.c +=================================================================== +--- linux-2.6.17.orig/arch/um/os-Linux/tls.c	2006-08-15 21:59:56.000000000 -0400 ++++ linux-2.6.17/arch/um/os-Linux/tls.c	2006-09-20 13:37:14.000000000 -0400 +@@ -48,14 +48,11 @@ int os_get_thread_area(user_desc_t *info + #ifdef UML_CONFIG_MODE_TT + #include "linux/unistd.h" +  +-static _syscall1(int, get_thread_area, user_desc_t *, u_info); +-static _syscall1(int, set_thread_area, user_desc_t *, u_info); +- + int do_set_thread_area_tt(user_desc_t *info) + { + 	int ret; +  +-	ret = set_thread_area(info); ++	ret = syscall(__NR_set_thread_area, info); + 	if (ret < 0) { + 		ret = -errno; + 	} +@@ -66,7 +63,7 @@ int do_get_thread_area_tt(user_desc_t *i + { + 	int ret; +  +-	ret = get_thread_area(info); ++	ret = syscall(__NR_get_thread_area, info); + 	if (ret < 0) { + 		ret = -errno; + 	} | 
