summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/usermode-sources')
-rw-r--r--sys-kernel/usermode-sources/ChangeLog10
-rw-r--r--sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.18-r29
-rw-r--r--sys-kernel/usermode-sources/files/usermode-sources-2.6.18-r2-gentoo-headers.patch179
-rw-r--r--sys-kernel/usermode-sources/usermode-sources-2.6.18-r2.ebuild26
4 files changed, 223 insertions, 1 deletions
diff --git a/sys-kernel/usermode-sources/ChangeLog b/sys-kernel/usermode-sources/ChangeLog
index b3950b14793b..9c20947d43b5 100644
--- a/sys-kernel/usermode-sources/ChangeLog
+++ b/sys-kernel/usermode-sources/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-kernel/usermode-sources
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/ChangeLog,v 1.86 2007/01/03 04:32:05 dang Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/ChangeLog,v 1.87 2007/05/25 03:23:50 dang Exp $
+
+*usermode-sources-2.6.18-r2 (25 May 2007)
+
+ 25 May 2007; Daniel Gryniewicz <dang@gentoo.org>
+ +files/usermode-sources-2.6.18-r2-gentoo-headers.patch,
+ +usermode-sources-2.6.18-r2.ebuild:
+ Bump to 2.6.18-r2
+ - Includes a patch to work with linux-header-2.6.21
03 Jan 2007; Daniel Gryniewicz <dang@gentoo.org>
+files/usermode-sources-2.6.18-r1-CVE-2006-4572.patch,
diff --git a/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.18-r2 b/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.18-r2
new file mode 100644
index 000000000000..4784d6488cf2
--- /dev/null
+++ b/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.18-r2
@@ -0,0 +1,9 @@
+MD5 65e0ac78c740fd7e70cdd2fcab6d89ad genpatches-2.6.18-8.base.tar.bz2 108656
+RMD160 b0d604f8a1f476e34f6a3a4143e07a24dbcab6e8 genpatches-2.6.18-8.base.tar.bz2 108656
+SHA256 3ac24ea4b287429719de0b2828594e84eecbedb05f66300632363d3a60c185d0 genpatches-2.6.18-8.base.tar.bz2 108656
+MD5 296a6d150d260144639c3664d127d174 linux-2.6.18.tar.bz2 41863580
+RMD160 f92283f956880676bfb1f1d5288325461e4e02e7 linux-2.6.18.tar.bz2 41863580
+SHA256 c95280ff6c5d2a17788f7cc582d23ae8a9a7ba3f202ec6e4238eaadfce7c163d linux-2.6.18.tar.bz2 41863580
+MD5 683956ae680b9a09e5c5d7b99a568775 uml-2.6.18.1-bb2.patch.bz2 36108
+RMD160 8984ba75df2283764c916cebc38a4d05ee617996 uml-2.6.18.1-bb2.patch.bz2 36108
+SHA256 58366bd9a2129ed4486c37f9756a35a981a0e3d30a960da1278254777c6d8ac2 uml-2.6.18.1-bb2.patch.bz2 36108
diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.18-r2-gentoo-headers.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.18-r2-gentoo-headers.patch
new file mode 100644
index 000000000000..a483716f8f2a
--- /dev/null
+++ b/sys-kernel/usermode-sources/files/usermode-sources-2.6.18-r2-gentoo-headers.patch
@@ -0,0 +1,179 @@
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN linux-2.6.18-usermode-r1.orig/arch/um/kernel/skas/clone.c linux-2.6.18-usermode-r1/arch/um/kernel/skas/clone.c
+--- linux-2.6.18-usermode-r1.orig/arch/um/kernel/skas/clone.c 2007-05-24 22:32:15.000000000 -0400
++++ linux-2.6.18-usermode-r1/arch/um/kernel/skas/clone.c 2007-05-24 22:44:48.000000000 -0400
+@@ -3,7 +3,6 @@
+ #include <sys/mman.h>
+ #include <sys/time.h>
+ #include <asm/unistd.h>
+-#include <asm/page.h>
+ #include "ptrace_user.h"
+ #include "skas.h"
+ #include "stub-data.h"
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN linux-2.6.18-usermode-r1.orig/arch/um/os-Linux/main.c linux-2.6.18-usermode-r1/arch/um/os-Linux/main.c
+--- linux-2.6.18-usermode-r1.orig/arch/um/os-Linux/main.c 2007-05-24 22:32:15.000000000 -0400
++++ linux-2.6.18-usermode-r1/arch/um/os-Linux/main.c 2007-05-24 22:44:48.000000000 -0400
+@@ -12,7 +12,6 @@
+ #include <sys/resource.h>
+ #include <sys/mman.h>
+ #include <sys/user.h>
+-#include <asm/page.h>
+ #include "user_util.h"
+ #include "kern_util.h"
+ #include "mem_user.h"
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN linux-2.6.18-usermode-r1.orig/arch/um/os-Linux/skas/mem.c linux-2.6.18-usermode-r1/arch/um/os-Linux/skas/mem.c
+--- linux-2.6.18-usermode-r1.orig/arch/um/os-Linux/skas/mem.c 2007-05-24 22:32:15.000000000 -0400
++++ linux-2.6.18-usermode-r1/arch/um/os-Linux/skas/mem.c 2007-05-24 22:44:48.000000000 -0400
+@@ -8,7 +8,6 @@
+ #include <string.h>
+ #include <sys/mman.h>
+ #include <sys/wait.h>
+-#include <asm/page.h>
+ #include <asm/unistd.h>
+ #include "mem_user.h"
+ #include "mem.h"
+@@ -109,6 +108,8 @@ static inline long do_syscall_stub(struc
+ return ret;
+ }
+
++#define PAGE_MASK (~(UM_KERN_PAGE_SIZE-1))
++#define PAGE_SHIFT 12
+ long run_syscall_stub(struct mm_id * mm_idp, int syscall,
+ unsigned long *args, long expected, void **addr,
+ int done)
+@@ -133,7 +134,7 @@ long run_syscall_stub(struct mm_id * mm_
+ multi_op_count++;
+
+ if(!done && ((((unsigned long) stack) & ~PAGE_MASK) <
+- PAGE_SIZE - 10 * sizeof(long))){
++ UM_KERN_PAGE_SIZE - 10 * sizeof(long))){
+ *addr = stack;
+ return 0;
+ }
+@@ -152,7 +153,7 @@ long syscall_stub_data(struct mm_id * mm
+ * Thus in this case do_syscall_stub correctly won't be called.
+ */
+ if((((unsigned long) *addr) & ~PAGE_MASK) >=
+- PAGE_SIZE - (10 + data_count) * sizeof(long)) {
++ UM_KERN_PAGE_SIZE - (10 + data_count) * sizeof(long)) {
+ ret = do_syscall_stub(mm_idp, addr);
+ /* in case of error, don't overwrite data on stack */
+ if(ret)
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN linux-2.6.18-usermode-r1.orig/arch/um/os-Linux/start_up.c linux-2.6.18-usermode-r1/arch/um/os-Linux/start_up.c
+--- linux-2.6.18-usermode-r1.orig/arch/um/os-Linux/start_up.c 2007-05-24 22:32:15.000000000 -0400
++++ linux-2.6.18-usermode-r1/arch/um/os-Linux/start_up.c 2007-05-24 22:44:48.000000000 -0400
+@@ -19,7 +19,6 @@
+ #include <sys/wait.h>
+ #include <sys/mman.h>
+ #include <asm/unistd.h>
+-#include <asm/page.h>
+ #include <sys/types.h>
+ #include "user_util.h"
+ #include "kern_util.h"
+@@ -80,11 +79,11 @@ static int start_ptraced_child(void **st
+ unsigned long sp;
+ int pid, n, status;
+
+- stack = mmap(NULL, PAGE_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC,
++ stack = mmap(NULL, UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ if(stack == MAP_FAILED)
+ panic("check_ptrace : mmap failed, errno = %d", errno);
+- sp = (unsigned long) stack + PAGE_SIZE - sizeof(void *);
++ sp = (unsigned long) stack + UM_KERN_PAGE_SIZE - sizeof(void *);
+ pid = clone(ptrace_child, (void *) sp, SIGCHLD, NULL);
+ if(pid < 0)
+ panic("start_ptraced_child : clone failed, errno = %d", errno);
+@@ -129,7 +128,7 @@ static int stop_ptraced_child(int pid, v
+ ret = -1;
+ }
+
+- if(munmap(stack, PAGE_SIZE) < 0)
++ if(munmap(stack, UM_KERN_PAGE_SIZE) < 0)
+ panic("check_ptrace : munmap failed, errno = %d", errno);
+ return ret;
+ }
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN linux-2.6.18-usermode-r1.orig/arch/um/os-Linux/tt.c linux-2.6.18-usermode-r1/arch/um/os-Linux/tt.c
+--- linux-2.6.18-usermode-r1.orig/arch/um/os-Linux/tt.c 2007-05-24 22:32:15.000000000 -0400
++++ linux-2.6.18-usermode-r1/arch/um/os-Linux/tt.c 2007-05-24 22:53:08.000000000 -0400
+@@ -18,7 +18,6 @@
+ #include <sys/mman.h>
+ #include <asm/ptrace.h>
+ #include <asm/unistd.h>
+-#include <asm/page.h>
+ #include "user_util.h"
+ #include "kern_util.h"
+ #include "user.h"
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN linux-2.6.18-usermode-r1.orig/arch/um/sys-i386/ptrace_user.c linux-2.6.18-usermode-r1/arch/um/sys-i386/ptrace_user.c
+--- linux-2.6.18-usermode-r1.orig/arch/um/sys-i386/ptrace_user.c 2007-05-24 22:32:15.000000000 -0400
++++ linux-2.6.18-usermode-r1/arch/um/sys-i386/ptrace_user.c 2007-05-24 22:46:26.000000000 -0400
+@@ -7,9 +7,8 @@
+ #include <errno.h>
+ #include <unistd.h>
+ #include <linux/stddef.h>
++#include <sys/user.h>
+ #include "ptrace_user.h"
+-/* Grr, asm/user.h includes asm/ptrace.h, so has to follow ptrace_user.h */
+-#include <asm/user.h>
+ #include "kern_util.h"
+ #include "sysdep/thread.h"
+ #include "user.h"
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN linux-2.6.18-usermode-r1.orig/arch/um/sys-i386/user-offsets.c linux-2.6.18-usermode-r1/arch/um/sys-i386/user-offsets.c
+--- linux-2.6.18-usermode-r1.orig/arch/um/sys-i386/user-offsets.c 2007-05-24 22:32:15.000000000 -0400
++++ linux-2.6.18-usermode-r1/arch/um/sys-i386/user-offsets.c 2007-05-24 22:56:43.000000000 -0400
+@@ -1,7 +1,8 @@
+ #include <stdio.h>
+ #include <signal.h>
++#include <stddef.h>
+ #include <asm/ptrace.h>
+-#include <asm/user.h>
++#include <sys/user.h>
+ #include <linux/stddef.h>
+ #include <sys/poll.h>
+
+@@ -14,6 +15,34 @@
+ #define OFFSET(sym, str, mem) \
+ DEFINE(sym, offsetof(struct str, mem));
+
++/* These are gone from userspace; not sure where to pull them from */
++struct user_i387_struct {
++ long cwd;
++ long swd;
++ long twd;
++ long fip;
++ long fcs;
++ long foo;
++ long fos;
++ long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */
++};
++
++struct user_fxsr_struct {
++ unsigned short cwd;
++ unsigned short swd;
++ unsigned short twd;
++ unsigned short fop;
++ long fip;
++ long fcs;
++ long foo;
++ long fos;
++ long mxcsr;
++ long reserved;
++ long st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
++ long xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
++ long padding[56];
++};
++
+ void foo(void)
+ {
+ OFFSET(HOST_SC_IP, sigcontext, eip);
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN linux-2.6.18-usermode-r1.orig/arch/um/sys-x86_64/user-offsets.c linux-2.6.18-usermode-r1/arch/um/sys-x86_64/user-offsets.c
+--- linux-2.6.18-usermode-r1.orig/arch/um/sys-x86_64/user-offsets.c 2007-05-24 22:32:15.000000000 -0400
++++ linux-2.6.18-usermode-r1/arch/um/sys-x86_64/user-offsets.c 2007-05-24 22:44:48.000000000 -0400
+@@ -12,7 +12,7 @@
+ */
+ typedef __u64 u64;
+ typedef __u32 u32;
+-#include <asm/user.h>
++#include <sys/user.h>
+
+ #define DEFINE(sym, val) \
+ asm volatile("\n->" #sym " %0 " #val : : "i" (val))
diff --git a/sys-kernel/usermode-sources/usermode-sources-2.6.18-r2.ebuild b/sys-kernel/usermode-sources/usermode-sources-2.6.18-r2.ebuild
new file mode 100644
index 000000000000..2561316f4a74
--- /dev/null
+++ b/sys-kernel/usermode-sources/usermode-sources-2.6.18-r2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.6.18-r2.ebuild,v 1.1 2007/05/25 03:23:50 dang Exp $
+
+ETYPE="sources"
+K_WANT_GENPATCHES="base"
+K_GENPATCHES_VER="8"
+inherit kernel-2
+detect_version
+
+UML_VER="uml-2.6.18.1-bb2"
+UNIPATCH_LIST="${FILESDIR}/uml-2.6.18-genpatches-8-prep.patch
+ ${DISTDIR}/${UML_VER}.patch.bz2
+ ${FILESDIR}/${P}-r1-CVE-2006-4572.patch
+ ${FILESDIR}/${PF}-gentoo-headers.patch"
+UNIPATCH_STRICTORDER="yes"
+
+DESCRIPTION="Full sources for the User Mode Linux kernel"
+SRC_URI="${KERNEL_URI} ${GENPATCHES_URI}
+ http://www.user-mode-linux.org/~blaisorblade/patches/guest/${UML_VER}/${UML_VER}.patch.bz2"
+HOMEPAGE="http://www.kernel.org/ http://user-mode-linux.sourceforge.net"
+KEYWORDS="~amd64 ~x86"
+
+K_EXTRAEINFO="Since you are using UML, you may want to read the Gentoo Linux
+Developer's guide to system testing with User-Mode Linux that
+can be found at http://www.gentoo.org/doc/en/uml.xml"