diff --git a/arch/sparc/boot/Makefile b/arch/sparc/boot/Makefile
index 96041a8..5e2caeb 100644
--- a/arch/sparc/boot/Makefile
+++ b/arch/sparc/boot/Makefile
@@ -58,7 +58,7 @@ $(obj)/image: $(obj)/btfix.o FORCE
$(obj)/zImage: $(obj)/image
$(call if_changed,strip)

-$(obj)/tftpboot.img: $(obj)/piggyback $(obj)/System.map $(obj)/image FORCE
+$(obj)/tftpboot.img: $(obj)/piggyback_32 $(obj)/System.map $(obj)/image 
FORCE
$(call if_changed,elftoaout)
$(call if_changed,piggy)

HOSTCC arch/sparc/boot/piggyback_32
arch/sparc/boot/piggyback_32.c: In function ‘main’:
arch/sparc/boot/piggyback_32.c:84: warning: pointer targets in passing 
argument 1 of ‘fgets’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘strlen’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘strlen’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘strlen’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘strlen’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:85: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:86: warning: pointer targets in passing 
argument 1 of ‘strtoul’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘strlen’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘strlen’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘strlen’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘strlen’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:87: warning: pointer targets in passing 
argument 1 of ‘__builtin_strcmp’ differ in signedness
arch/sparc/boot/piggyback_32.c:88: warning: pointer targets in passing 
argument 1 of ‘strtoul’ differ in signedness
arch/sparc/boot/piggyback_32.c:98: warning: pointer targets in passing 
argument 1 of ‘ld4’ differ in signedness
arch/sparc/boot/piggyback_32.c:99: warning: pointer targets in passing 
argument 1 of ‘ld4’ differ in signedness
arch/sparc/boot/piggyback_32.c:99: warning: pointer targets in passing 
argument 1 of ‘ld4’ differ in signedness
arch/sparc/boot/piggyback_32.c:99: warning: pointer targets in passing 
argument 1 of ‘ld4’ differ in signedness
arch/sparc/boot/piggyback_32.c:110: warning: pointer targets in passing 
argument 1 of ‘ld2’ differ in signedness
arch/sparc/boot/piggyback_32.c:124: warning: pointer targets in passing 
argument 1 of ‘st4’ differ in signedness
arch/sparc/boot/piggyback_32.c:125: warning: pointer targets in passing 
argument 1 of ‘st4’ differ in signedness
arch/sparc/boot/piggyback_32.c:126: warning: pointer targets in passing 
argument 1 of ‘st4’ differ in signedness
arch/sparc/boot/piggyback_32.c:127: warning: pointer targets in passing 
argument 1 of ‘st4’ differ in signedness
make: *** [tftpboot.img] Error 2

This patch fixes the warnings but there are still more issues:

diff --git a/arch/sparc/boot/piggyback_32.c b/arch/sparc/boot/piggyback_32.c
index c9f500c..3f0f933 100644
--- a/arch/sparc/boot/piggyback_32.c
+++ b/arch/sparc/boot/piggyback_32.c
@@ -70,7 +70,7 @@ void die(char *str)
int main(int argc,char **argv)
{
static char aout_magic[] = { 0x01, 0x03, 0x01, 0x07 };
- unsigned char buffer[1024], *q, *r;
+ char buffer[1024], *q, *r;
unsigned int i, j, k, start, end, offset;
FILE *map;
struct stat s;
