|
|
Tobias Hintze: on machines with more than 4GB RAM there is an issue resulting in: Error 28: "selected item cannot fit into memory"
the bug is in grubs bugtracker (including this patch) since 2004 but still not in 0.97: http://savannah.gnu.org/bugs/?func=detailitem&item_id=9954
diff -Naur grub-0.97~/stage2/char_io.c grub-0.97/stage2/char_io.c
--- grub-0.97~/stage2/char_io.c 2005-02-01 21:51:23.000000000 +0100
+++ grub-0.97/stage2/char_io.c 2007-08-06 19:35:37.711924190 +0200
@@ -1175,13 +1175,13 @@
#endif /* ! STAGE1_5 */ int -memcheck (int addr, int len)
+memcheck (unsigned long addr, unsigned long len)
{ #ifdef GRUB_UTIL - auto int start_addr (void);
- auto int end_addr (void);
+ auto unsigned long start_addr (void);
+ auto unsigned long end_addr (void);
- auto int start_addr (void)
+ auto unsigned long start_addr (void)
{ int ret; # if defined(HAVE_START_SYMBOL) @@ -1192,7 +1192,7 @@
return ret; } - auto int end_addr (void)
+ auto unsigned long end_addr (void)
{ int ret; # if defined(HAVE_END_SYMBOL) diff -Naur grub-0.97~/stage2/shared.h grub-0.97/stage2/shared.h
--- grub-0.97~/stage2/shared.h 2004-06-19 18:40:09.000000000 +0200
+++ grub-0.97/stage2/shared.h 2007-08-06 19:35:43.856274336 +0200
@@ -911,7 +911,7 @@
int nul_terminate (char *str); int get_based_digit (int c, int base); int safe_parse_maxint (char **str_ptr, int *myint_ptr); -int memcheck (int start, int len);
+int memcheck (unsigned long start, unsigned long len);
void grub_putstr (const char *str); #ifndef NO_DECOMPRESSION
|