summaryrefslogtreecommitdiff
path: root/debian/patches/upstreamme0005-kern-make-printf-handle-long-long-integers.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/upstreamme0005-kern-make-printf-handle-long-long-integers.patch')
-rw-r--r--debian/patches/upstreamme0005-kern-make-printf-handle-long-long-integers.patch121
1 files changed, 0 insertions, 121 deletions
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
deleted file mode 100644
index d522625..0000000
--- a/debian/patches/upstreamme0005-kern-make-printf-handle-long-long-integers.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-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
-