From: Pavel Roskin <[email protected]>
Date: Sun, 12 Apr 2009 02:39:22 -0400
> On Sat, 2009-04-11 at 01:08 -0700, David Miller wrote:
>> The grub printf code tries to treat 'long' and 'int' the same,
>> that doesn't work on (most) 64-bit platforms.
>
>> + n = (unsigned) (-((long) n));
>
> "unsigned" means "unsigned int". You need "unsigned long" here.
Thanks, I'll fix this as follows.
* kern/misc.c (grub_ltoa): Fix cast when handling negative
values. Noticed by Pavel Roskin.
--- kern/misc.c (revision 2086)
+++ kern/misc.c (working copy)
@@ -598,7 +598,7 @@
if ((long) n < 0 && c == 'd')
{
- n = (unsigned) (-((long) n));
+ n = (unsigned long) (-((long) n));
*str++ = '-';
}
_______________________________________________
Grub-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel