Move setvbuf calls from gz_open() to calling functions, setvbuf is only supposed to be called prior to opening the stream, glibc tolerates later use, uclibc doesnt.
diff --git a/gunzip.c b/gunzip.c
index c4e8426..430bc63 100644
--- a/gunzip.c
+++ b/gunzip.c
@@ -118,6 +118,9 @@
 		/* Open input file */
 		in_file = xfopen(if_name, "r");
 
+		/* set the buffer size */
+		setvbuf(in_file, NULL, _IOFBF, 0x8000);
+
 		/* Get the time stamp on the input file. */
 		if (stat(if_name, &stat_buf) < 0) {
 			error_msg_and_die("Couldn't stat file %s", if_name);