shut up gcc!
diff --git a/src/cmd/gzip/gunzip.c b/src/cmd/gzip/gunzip.c
index 3a1c058..fc45ef2 100644
--- a/src/cmd/gzip/gunzip.c
+++ b/src/cmd/gzip/gunzip.c
@@ -189,7 +189,7 @@
 		if(!table && verbose)
 			fprint(2, "extracting %s to %s\n", h.file, ofile);
 
-		err = inflate((void*)ofd, crcwrite, bin, (int(*)(void*))Bgetc);
+		err = inflate((void*)(uintptr)ofd, crcwrite, bin, (int(*)(void*))Bgetc);
 		if(err != FlateOk)
 			error("inflate failed: %s", flateerr(err));
 
@@ -324,7 +324,7 @@
 
 	wlen += n;
 	crc = blockcrc(crctab, crc, buf, n);
-	fd = (int)out;
+	fd = (int)(uintptr)out;
 	if(fd < 0)
 		return n;
 	nw = write(fd, buf, n);
diff --git a/src/cmd/gzip/gzip.c b/src/cmd/gzip/gzip.c
index f4038b8..4379f40 100644
--- a/src/cmd/gzip/gzip.c
+++ b/src/cmd/gzip/gzip.c
@@ -180,7 +180,7 @@
 	crc = 0;
 	eof = 0;
 	totr = 0;
-	err = deflate(bout, gzwrite, (void*)ifd, crcread, level, debug);
+	err = deflate(bout, gzwrite, (void*)(uintptr)ifd, crcread, level, debug);
 	if(err != FlateOk){
 		fprint(2, "gzip: deflate failed: %s\n", flateerr(err));
 		return 0;
@@ -206,7 +206,7 @@
 
 	nr = 0;
 	for(; !eof && n > 0; n -= m){
-		m = read((int)fd, (char*)buf+nr, n);
+		m = read((int)(uintptr)fd, (char*)buf+nr, n);
 		if(m <= 0){
 			eof = 1;
 			if(m < 0)
diff --git a/src/cmd/gzip/unzip.c b/src/cmd/gzip/unzip.c
index 990e4b6..ad43154 100644
--- a/src/cmd/gzip/unzip.c
+++ b/src/cmd/gzip/unzip.c
@@ -441,7 +441,7 @@
 			error("copying data for %s failed: %r", zh.file);
 	}else if(zh.meth == 8){
 		off = Boffset(bin);
-		err = inflate((void*)fd, crcwrite, bin, (int(*)(void*))Bgetc);
+		err = inflate((void*)(uintptr)fd, crcwrite, bin, (int(*)(void*))Bgetc);
 		if(err != FlateOk)
 			error("inflate failed: %s", flateerr(err));
 		rlen = Boffset(bin) - off;
@@ -650,7 +650,7 @@
 
 	wlen += n;
 	crc = blockcrc(crctab, crc, buf, n);
-	fd = (int)out;
+	fd = (int)(uintptr)out;
 	if(fd < 0)
 		return n;
 	nw = write(fd, buf, n);
@@ -673,7 +673,7 @@
 		if(n <= 0)
 			return 0;
 		rlen += n;
-		if(crcwrite((void*)ofd, buf, n) != n)
+		if(crcwrite((void*)(uintptr)ofd, buf, n) != n)
 			return 0;
 	}
 	return 1;
diff --git a/src/cmd/gzip/zip.c b/src/cmd/gzip/zip.c
index bd87d2e..73fb7db 100644
--- a/src/cmd/gzip/zip.c
+++ b/src/cmd/gzip/zip.c
@@ -169,7 +169,7 @@
 		eof = 0;
 		totr = 0;
 		totw = 0;
-		err = deflate(bout, zwrite, (void*)fd, crcread, level, debug);
+		err = deflate(bout, zwrite, (void*)(uintptr)fd, crcread, level, debug);
 		if(err != FlateOk)
 			error("deflate failed: %s: %r", flateerr(err));
 
@@ -324,7 +324,7 @@
 
 	nr = 0;
 	for(; !eof && n > 0; n -= m){
-		m = read((int)fd, (char*)buf+nr, n);
+		m = read((int)(uintptr)fd, (char*)buf+nr, n);
 		if(m <= 0){
 			eof = 1;
 			if(m < 0)