Index: configure
===================================================================
RCS file: /cvsroot/grub/grub2/configure,v
retrieving revision 1.20
diff -u -p -r1.20 configure
--- configure	13 Aug 2005 18:44:14 -0000	1.20
+++ configure	20 Aug 2005 11:26:12 -0000
@@ -1397,6 +1397,7 @@ host_os=`echo $ac_cv_host | sed 's/^\([^
 case "$host_cpu" in
   i[3456]86) host_cpu=i386 ;;
   powerpc) ;;
+  sparc64) ;;
   *) { { echo "$as_me:$LINENO: error: unsupported CPU type" >&5
 echo "$as_me: error: unsupported CPU type" >&2;}
    { (exit 1); exit 1; }; } ;;
@@ -1405,6 +1406,7 @@ esac
 case "$host_cpu"-"$host_vendor" in
   i386-*) host_vendor=pc ;;
   powerpc-*) host_vendor=ieee1275 ;;
+  sparc64-*) host_vendor=ieee1275 ;;
   *) { { echo "$as_me:$LINENO: error: unsupported machine type" >&5
 echo "$as_me: error: unsupported machine type" >&2;}
    { (exit 1); exit 1; }; } ;;
Index: configure.ac
===================================================================
RCS file: /cvsroot/grub/grub2/configure.ac,v
retrieving revision 1.12
diff -u -p -r1.12 configure.ac
--- configure.ac	8 Aug 2005 23:15:21 -0000	1.12
+++ configure.ac	20 Aug 2005 11:00:45 -0000
@@ -23,12 +23,14 @@ AC_CANONICAL_HOST
 case "$host_cpu" in
   i[[3456]]86) host_cpu=i386 ;;
   powerpc) ;;
+  sparc64) ;;
   *) AC_MSG_ERROR([unsupported CPU type]) ;;
 esac
 
 case "$host_cpu"-"$host_vendor" in
   i386-*) host_vendor=pc ;;
   powerpc-*) host_vendor=ieee1275 ;;
+  sparc64-*) host_vendor=ieee1275 ;;
   *) AC_MSG_ERROR([unsupported machine type]) ;;
 esac
 
Index: disk/ieee1275/ofdisk.c
===================================================================
RCS file: /cvsroot/grub/grub2/disk/ieee1275/ofdisk.c,v
retrieving revision 1.1
diff -u -p -r1.1 ofdisk.c
--- disk/ieee1275/ofdisk.c	3 Aug 2005 22:53:50 -0000	1.1
+++ disk/ieee1275/ofdisk.c	20 Aug 2005 11:01:02 -0000
@@ -53,7 +53,7 @@ grub_ofdisk_open (const char *name, grub
   char *devpath;
   /* XXX: This should be large enough for any possible case.  */
   char prop[64];
-  int actual;
+  grub_ssize_t actual;
 
   devpath = grub_strndup (name, grub_strlen (name) + 2);
   if (! devpath)
@@ -72,7 +72,7 @@ grub_ofdisk_open (const char *name, grub
       goto fail;
     }
 
-  grub_dprintf ("disk", "Opened `%s' as handle 0x%x.\n", devpath, dev_ihandle);
+  grub_dprintf ("disk", "Opened `%s' as handle %p.\n", devpath, (void *) dev_ihandle);
 
   if (grub_ieee1275_finddevice (devpath, &dev))
     {
@@ -116,8 +116,8 @@ grub_ofdisk_open (const char *name, grub
 static void
 grub_ofdisk_close (grub_disk_t disk)
 {
-  grub_dprintf ("disk", "Closing handle 0x%x.\n",
-		(grub_ieee1275_ihandle_t) disk->data);
+  grub_dprintf ("disk", "Closing handle %p.\n",
+		(void *) disk->data);
   grub_ieee1275_close ((grub_ieee1275_ihandle_t) disk->data);
 }
 
@@ -125,13 +125,12 @@ static grub_err_t
 grub_ofdisk_read (grub_disk_t disk, unsigned long sector,
 		  unsigned long size, char *buf)
 {
-  int status;
-  int actual;
+  grub_ssize_t status, actual;
   unsigned long long pos;
 
   grub_dprintf ("disk",
-		"Reading handle 0x%x: sector 0x%lx, size 0x%lx, buf %p.\n",
-		(grub_ieee1275_ihandle_t) disk->data, sector, size, buf);
+		"Reading handle %p: sector 0x%lx, size 0x%lx, buf %p.\n",
+		(void *) disk->data, sector, size, buf);
 
   pos = (unsigned long long) sector * 512UL;
 
Index: include/grub/ieee1275/ieee1275.h
===================================================================
RCS file: /cvsroot/grub/grub2/include/grub/ieee1275/ieee1275.h,v
retrieving revision 1.1
diff -u -p -r1.1 ieee1275.h
--- include/grub/ieee1275/ieee1275.h	3 Aug 2005 22:53:50 -0000	1.1
+++ include/grub/ieee1275/ieee1275.h	20 Aug 2005 11:01:02 -0000
@@ -126,7 +126,7 @@ int EXPORT_FUNC(grub_ieee1275_parent) (g
 int EXPORT_FUNC(grub_ieee1275_interpret) (const char *command,
 					  grub_ieee1275_cell_t *catch);
 int EXPORT_FUNC(grub_ieee1275_enter) (void);
-int EXPORT_FUNC(grub_ieee1275_exit) (void) __attribute__ ((noreturn));
+void EXPORT_FUNC(grub_ieee1275_exit) (void) __attribute__ ((noreturn));
 int EXPORT_FUNC(grub_ieee1275_open) (const char *node,
 				     grub_ieee1275_ihandle_t *result);
 int EXPORT_FUNC(grub_ieee1275_close) (grub_ieee1275_ihandle_t ihandle);
Index: kern/mm.c
===================================================================
RCS file: /cvsroot/grub/grub2/kern/mm.c,v
retrieving revision 1.12
diff -u -p -r1.12 mm.c
--- kern/mm.c	12 Jul 2005 22:36:43 -0000	1.12
+++ kern/mm.c	20 Aug 2005 11:01:05 -0000
@@ -137,7 +137,7 @@ grub_mm_init_region (void *addr, grub_si
   grub_mm_header_t h;
   grub_mm_region_t r, *p, q;
 
-  grub_dprintf ("mem", "Using memory for heap: addr=%p, size=%u\n", addr, size);
+  grub_dprintf ("mem", "Using memory for heap: addr=%p, size=%u\n", addr, (unsigned int) size);
 
   /* If this region is too small, ignore it.  */
   if (size < GRUB_MM_ALIGN * 2)
@@ -408,10 +408,10 @@ grub_mm_dump (unsigned lineno)
 	    {
 	    case GRUB_MM_FREE_MAGIC:
 	      grub_printf ("F:%p:%u:%p\n",
-			   p, p->size << GRUB_MM_ALIGN_LOG2, p->next);
+			   p, (unsigned int) p->size << GRUB_MM_ALIGN_LOG2, p->next);
 	      break;
 	    case GRUB_MM_ALLOC_MAGIC:
-	      grub_printf ("A:%p:%u\n", p, p->size << GRUB_MM_ALIGN_LOG2);
+	      grub_printf ("A:%p:%u\n", p, (unsigned int) p->size << GRUB_MM_ALIGN_LOG2);
 	      break;
 	    }
 	}
Index: kern/ieee1275/ieee1275.c
===================================================================
RCS file: /cvsroot/grub/grub2/kern/ieee1275/ieee1275.c,v
retrieving revision 1.1
diff -u -p -r1.1 ieee1275.c
--- kern/ieee1275/ieee1275.c	9 Aug 2005 03:36:50 -0000	1.1
+++ kern/ieee1275/ieee1275.c	20 Aug 2005 11:01:05 -0000
@@ -393,7 +393,7 @@ grub_ieee1275_enter (void)
   return 0;
 }
 
-int
+void
 grub_ieee1275_exit (void)
 {
   struct exit_args
