summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-07-09 19:36:00 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-07-09 19:36:00 +0200
commit701793d880b16e88eba3847653f3ce5914e81471 (patch)
tree877df1b0b188a2d4d2005311736fafd270c5476d /debian
parent1e8f7af147c9a254dbf1b0053b6affac0cb6b546 (diff)
add patch series
Diffstat (limited to 'debian')
-rw-r--r--debian/patches/series5
-rw-r--r--debian/patches/upstreamme0001-kern-improve-error-handling.patch27
-rw-r--r--debian/patches/upstreamme0002-kern-remove-superfluous-file.patch124
-rw-r--r--debian/patches/upstreamme0003-i386-fix-line-wrapping-in-the-immediate-console.patch26
-rw-r--r--debian/patches/upstreamme0004-vm-fix-panic-message.patch34
-rw-r--r--debian/patches/upstreamme0005-kern-make-printf-handle-long-long-integers.patch121
6 files changed, 337 insertions, 0 deletions
diff --git a/debian/patches/series b/debian/patches/series
index e532dda..c765d74 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -13,3 +13,8 @@ vm-cache-policy0001-VM-cache-policy-change.patch
vm-cache-policy0002-vm-keep-track-of-clean-pages.patch
vm-cache-policy0003-vm-evict-clean-pages-first.patch
+upstreamme0001-kern-improve-error-handling.patch
+upstreamme0002-kern-remove-superfluous-file.patch
+upstreamme0003-i386-fix-line-wrapping-in-the-immediate-console.patch
+upstreamme0004-vm-fix-panic-message.patch
+upstreamme0005-kern-make-printf-handle-long-long-integers.patch
diff --git a/debian/patches/upstreamme0001-kern-improve-error-handling.patch b/debian/patches/upstreamme0001-kern-improve-error-handling.patch
new file mode 100644
index 0000000..11da201
--- /dev/null
+++ b/debian/patches/upstreamme0001-kern-improve-error-handling.patch
@@ -0,0 +1,27 @@
+From babb522465c0a3339dfea673d2e6c85d304606f3 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 5 Jul 2015 00:14:30 +0200
+Subject: [PATCH gnumach 1/5] kern: improve error handling
+
+* kern/bootstrap.c (boot_script_exec_cmd): Improve error handling.
+---
+ kern/bootstrap.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/kern/bootstrap.c b/kern/bootstrap.c
+index 4edae7b..e70e1f6 100644
+--- a/kern/bootstrap.c
++++ b/kern/bootstrap.c
+@@ -725,7 +725,8 @@ boot_script_exec_cmd (void *hook, task_t task, char *path, int argc,
+ assert(err == 0);
+ thread->saved.other = &info;
+ thread_start (thread, user_bootstrap);
+- thread_resume (thread);
++ err = thread_resume (thread);
++ assert(err == 0);
+
+ /* We need to synchronize with the new thread and block this
+ main thread until it has finished referring to our local state. */
+--
+2.1.4
+
diff --git a/debian/patches/upstreamme0002-kern-remove-superfluous-file.patch b/debian/patches/upstreamme0002-kern-remove-superfluous-file.patch
new file mode 100644
index 0000000..67cc733
--- /dev/null
+++ b/debian/patches/upstreamme0002-kern-remove-superfluous-file.patch
@@ -0,0 +1,124 @@
+From 4b8a219f30c319c9965204e42b7167c4ca90656c Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 5 Jul 2015 00:08:16 +0200
+Subject: [PATCH gnumach 2/5] kern: remove superfluous file
+
+* kern/server_loop.ch: Remove superfluous file.
+---
+ kern/server_loop.ch | 104 ----------------------------------------------------
+ 1 file changed, 104 deletions(-)
+ delete mode 100644 kern/server_loop.ch
+
+diff --git a/kern/server_loop.ch b/kern/server_loop.ch
+deleted file mode 100644
+index 409e013..0000000
+--- a/kern/server_loop.ch
++++ /dev/null
+@@ -1,104 +0,0 @@
+-/*
+- * Mach Operating System
+- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
+- * All Rights Reserved.
+- *
+- * Permission to use, copy, modify and distribute this software and its
+- * documentation is hereby granted, provided that both the copyright
+- * notice and this permission notice appear in all copies of the
+- * software, derivative works or modified versions, and any portions
+- * thereof, and that both notices appear in supporting documentation.
+- *
+- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+- *
+- * Carnegie Mellon requests users of this software to return to
+- *
+- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
+- * School of Computer Science
+- * Carnegie Mellon University
+- * Pittsburgh PA 15213-3890
+- *
+- * any improvements or extensions that they make and grant Carnegie Mellon
+- * the rights to redistribute these changes.
+- */
+-/*
+- * File: kern/server_loop.c
+- *
+- * A common server loop for builtin tasks.
+- */
+-
+-/*
+- * Must define symbols for:
+- * SERVER_NAME String name of this module
+- * SERVER_LOOP Routine name for the loop
+- * SERVER_DISPATCH MiG function(s) to handle message
+- *
+- * Must redefine symbols for pager_server functions.
+- */
+-
+-#include <kern/debug.h>
+-#include <kern/kalloc.h>
+-#include <mach/port.h>
+-#include <mach/message.h>
+-#include <vm/vm_kern.h> /* for kernel_map */
+-
+-void SERVER_LOOP(rcv_set, max_size)
+-{
+- register mach_msg_header_t *in_msg;
+- register mach_msg_header_t *out_msg;
+- register mach_msg_header_t *tmp_msg;
+- vm_offset_t messages;
+- mach_msg_return_t r;
+-
+- /*
+- * Allocate our message buffers.
+- */
+-
+- messages = kalloc(2 * max_size);
+- if (messages == 0)
+- panic(SERVER_NAME);
+- in_msg = (mach_msg_header_t *) messages;
+- out_msg = (mach_msg_header_t *) (messages + max_size);
+-
+- /*
+- * Service loop... receive messages and process them.
+- */
+-
+- for (;;) {
+- /* receive first message */
+-
+- receive_msg:
+- r = mach_msg(in_msg, MACH_RCV_MSG, 0, max_size, rcv_set,
+- MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+- if (r == MACH_MSG_SUCCESS)
+- break;
+-
+- printf("%s: receive failed, 0x%x.\n", SERVER_NAME, r);
+- }
+-
+- for (;;) {
+- /* process request message */
+-
+- (void) SERVER_DISPATCH(in_msg, out_msg);
+-
+- /* send reply and receive next request */
+-
+- if (out_msg->msgh_remote_port == MACH_PORT_NULL)
+- goto receive_msg;
+-
+- r = mach_msg(out_msg, MACH_SEND_MSG|MACH_RCV_MSG,
+- out_msg->msgh_size, max_size, rcv_set,
+- MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+- if (r != MACH_MSG_SUCCESS) {
+- printf("%s: send/receive failed, 0x%x.\n",
+- SERVER_NAME, r);
+- goto receive_msg;
+- }
+-
+- /* swap message buffers */
+-
+- tmp_msg = in_msg; in_msg = out_msg; out_msg = tmp_msg;
+- }
+-}
+--
+2.1.4
+
diff --git a/debian/patches/upstreamme0003-i386-fix-line-wrapping-in-the-immediate-console.patch b/debian/patches/upstreamme0003-i386-fix-line-wrapping-in-the-immediate-console.patch
new file mode 100644
index 0000000..730283c
--- /dev/null
+++ b/debian/patches/upstreamme0003-i386-fix-line-wrapping-in-the-immediate-console.patch
@@ -0,0 +1,26 @@
+From 4f7070b8d271888ce57529a44f5c4b69cc894135 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Thu, 9 Jul 2015 19:20:04 +0200
+Subject: [PATCH gnumach 3/5] i386: fix line wrapping in the immediate console
+
+* i386/i386at/immc.c (immc_cnputc): Fix line wrapping.
+---
+ i386/i386at/immc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/i386/i386at/immc.c b/i386/i386at/immc.c
+index ea95169..bd61522 100644
+--- a/i386/i386at/immc.c
++++ b/i386/i386at/immc.c
+@@ -86,7 +86,7 @@ immc_cnputc(dev_t dev, int c)
+
+ if (!immediate_console_enable)
+ return -1;
+- if (ofs < 0)
++ if (ofs < 0 || ofs >= 80)
+ {
+ ofs = 0;
+ immc_cnputc(dev, '\n');
+--
+2.1.4
+
diff --git a/debian/patches/upstreamme0004-vm-fix-panic-message.patch b/debian/patches/upstreamme0004-vm-fix-panic-message.patch
new file mode 100644
index 0000000..5d7d57a
--- /dev/null
+++ b/debian/patches/upstreamme0004-vm-fix-panic-message.patch
@@ -0,0 +1,34 @@
+From 923c1f275596b97e823023e7020475b9a5258d5e Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sat, 4 Jul 2015 16:36:03 +0200
+Subject: [PATCH gnumach 4/5] vm: fix panic message
+
+* vm/vm_kern.c (kmem_init): Fix panic message.
+---
+ vm/vm_kern.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/vm/vm_kern.c b/vm/vm_kern.c
+index 775d8e8..9c0a20b 100644
+--- a/vm/vm_kern.c
++++ b/vm/vm_kern.c
+@@ -827,7 +827,6 @@ void kmem_init(
+ /*
+ * Reserve virtual memory allocated up to this time.
+ */
+-
+ if (start != VM_MIN_KERNEL_ADDRESS) {
+ kern_return_t rc;
+ vm_offset_t addr = VM_MIN_KERNEL_ADDRESS;
+@@ -838,7 +837,7 @@ void kmem_init(
+ VM_PROT_DEFAULT, VM_PROT_ALL,
+ VM_INHERIT_DEFAULT);
+ if (rc)
+- panic("%s:%d: vm_map_enter failed (%d)\n", rc);
++ panic("vm_map_enter failed (%d)\n", rc);
+ }
+ }
+
+--
+2.1.4
+
diff --git a/debian/patches/upstreamme0005-kern-make-printf-handle-long-long-integers.patch b/debian/patches/upstreamme0005-kern-make-printf-handle-long-long-integers.patch
new file mode 100644
index 0000000..d522625
--- /dev/null
+++ b/debian/patches/upstreamme0005-kern-make-printf-handle-long-long-integers.patch
@@ -0,0 +1,121 @@
+From 9f87efd5c3ca1a84d60505910558bae350f9376c Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sat, 4 Jul 2015 11:59:48 +0200
+Subject: [PATCH gnumach 5/5] kern: make printf handle long long integers
+
+* Makefile.am (clib_routines): Steal `__umoddi3'.
+* kern/printf.c (MAXBUF): Increase size.
+(printnum, _doprnt): Handle long long integers.
+* kern/printf.h (printnum): Adjust declaration.
+---
+ Makefile.am | 2 +-
+ kern/printf.c | 28 +++++++++++++++++++++-------
+ kern/printf.h | 2 +-
+ 3 files changed, 23 insertions(+), 9 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 913db55..76a192b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -159,7 +159,7 @@ noinst_PROGRAMS += \
+ clib_routines := memcmp memcpy memmove \
+ strchr strstr strsep strtok \
+ htonl htons ntohl ntohs \
+- udivdi3 __udivdi3 \
++ udivdi3 __udivdi3 __umoddi3 \
+ __rel_iplt_start __rel_iplt_end \
+ __ffsdi2 \
+ _START _start etext _edata end _end # actually ld magic, not libc.
+diff --git a/kern/printf.c b/kern/printf.c
+index 1db0d08..e060b9d 100644
+--- a/kern/printf.c
++++ b/kern/printf.c
+@@ -126,11 +126,11 @@
+ #define isdigit(d) ((d) >= '0' && (d) <= '9')
+ #define Ctod(c) ((c) - '0')
+
+-#define MAXBUF (sizeof(long int) * 8) /* enough for binary */
++#define MAXBUF (sizeof(long long int) * 8) /* enough for binary */
+
+
+ void printnum(
+- unsigned long u,
++ unsigned long long u,
+ int base,
+ void (*putc)( char, vm_offset_t ),
+ vm_offset_t putc_arg)
+@@ -178,8 +178,9 @@ void _doprnt(
+ int prec;
+ boolean_t ladjust;
+ char padc;
+- long n;
+- unsigned long u;
++ long long n;
++ unsigned long long u;
++ int have_long_long = 0;
+ int plus_sign;
+ int sign_char;
+ boolean_t altfmt, truncate;
+@@ -276,6 +277,10 @@ void _doprnt(
+
+ if (c == 'l')
+ c = *++fmt; /* need it if sizeof(int) < sizeof(long) */
++ if (c == 'l') {
++ c = *++fmt; /* handle `long long' */
++ have_long_long = 1;
++ }
+
+ truncate = FALSE;
+
+@@ -287,7 +292,10 @@ void _doprnt(
+ boolean_t any;
+ int i;
+
+- u = va_arg(argp, unsigned long);
++ if (! have_long_long)
++ u = va_arg(argp, unsigned long);
++ else
++ u = va_arg(argp, unsigned long long);
+ p = va_arg(argp, char *);
+ base = *p++;
+ printnum(u, base, putc, putc_arg);
+@@ -431,7 +439,10 @@ void _doprnt(
+ goto print_unsigned;
+
+ print_signed:
+- n = va_arg(argp, long);
++ if (! have_long_long)
++ n = va_arg(argp, long);
++ else
++ n = va_arg(argp, long long);
+ if (n >= 0) {
+ u = n;
+ sign_char = plus_sign;
+@@ -443,7 +454,10 @@ void _doprnt(
+ goto print_num;
+
+ print_unsigned:
+- u = va_arg(argp, unsigned long);
++ if (! have_long_long)
++ u = va_arg(argp, unsigned long);
++ else
++ u = va_arg(argp, unsigned long long);
+ goto print_num;
+
+ print_num:
+diff --git a/kern/printf.h b/kern/printf.h
+index 86857d3..76047f0 100644
+--- a/kern/printf.h
++++ b/kern/printf.h
+@@ -35,7 +35,7 @@ extern void _doprnt (const char *fmt,
+ int radix,
+ vm_offset_t putc_arg);
+
+-extern void printnum (unsigned long u, int base,
++extern void printnum (unsigned long long u, int base,
+ void (*putc)(char, vm_offset_t),
+ vm_offset_t putc_arg);
+
+--
+2.1.4
+