diff -ru grub-0.97.orig/netboot/main.c grub-0.97/netboot/main.c --- grub-0.97.orig/netboot/main.c 2004-05-21 08:19:33.000000000 +1000 +++ grub-0.97/netboot/main.c 2008-06-30 22:57:04.000000000 +1000 @@ -54,9 +54,9 @@ static int vendorext_isvalid; static unsigned long netmask; -static struct bootpd_t bootp_data; +struct bootpd_t bootp_data; static unsigned long xid; -static unsigned char *end_of_rfc1533 = NULL; +unsigned char *end_of_rfc1533 = NULL; #ifndef NO_DHCP_SUPPORT #endif /* NO_DHCP_SUPPORT */ diff -ru grub-0.97.orig/netboot/natsemi.c grub-0.97/netboot/natsemi.c --- grub-0.97.orig/netboot/natsemi.c 2003-07-09 21:45:38.000000000 +1000 +++ grub-0.97/netboot/natsemi.c 2008-06-30 23:00:30.000000000 +1000 @@ -608,7 +608,7 @@ const char *p) /* Packet */ { u32 status, to, nstype; - u32 tx_status; + volatile u32 tx_status; /* Stop the transmitter */ outl(TxOff, ioaddr + ChipCmd); @@ -647,7 +647,7 @@ to = currticks() + TX_TIMEOUT; - while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < to)) + while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to)) /* wait */ ; if (currticks() >= to) { diff -ru grub-0.97.orig/netboot/sis900.c grub-0.97/netboot/sis900.c --- grub-0.97.orig/netboot/sis900.c 2003-07-09 21:45:38.000000000 +1000 +++ grub-0.97/netboot/sis900.c 2008-06-30 23:01:55.000000000 +1000 @@ -901,7 +901,7 @@ const char *p) /* Packet */ { u32 status, to, nstype; - u32 tx_status; + volatile u32 tx_status; /* Stop the transmitter */ outl(TxDIS, ioaddr + cr); @@ -940,7 +940,7 @@ to = currticks() + TX_TIMEOUT; - while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < to)) + while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to)) /* wait */ ; if (currticks() >= to) {