diff options
Diffstat (limited to 'debian/patches/upstreamme0002-kern-make-printf-handle-long-long-integers.patch')
-rw-r--r-- | debian/patches/upstreamme0002-kern-make-printf-handle-long-long-integers.patch | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/debian/patches/upstreamme0002-kern-make-printf-handle-long-long-integers.patch b/debian/patches/upstreamme0002-kern-make-printf-handle-long-long-integers.patch deleted file mode 100644 index 76fa0eb..0000000 --- a/debian/patches/upstreamme0002-kern-make-printf-handle-long-long-integers.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 81a3958304581ade78069d850261e74a9a58a014 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 2/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 - |