commit d923125b77c5d698bb8107a533a21627582baa43
Author: Peter Eisentraut <peter_e@gmx.net>
Date:   Fri Mar 2 22:30:01 2012 +0200

    Fix incorrect uses of gzFile
    
    gzFile is already a pointer, so code like
    
    gzFile *handle = gzopen(...)
    
    is wrong.
    
    This used to pass silently because gzFile used to be defined as void*,
    and you can assign a void* to a void**.  But somewhere between zlib
    versions 1.2.3.4 and 1.2.6, the definition of gzFile was changed to
    struct gzFile_s *, and with that new definition this usage causes
    compiler warnings.
    
    So remove all those extra pointer decorations.
    
    There is a related issue in pg_backup_archiver.h, where
    
    FILE       *FH;             /* General purpose file handle */
    
    is used throughout pg_dump as sometimes a real FILE* and sometimes a
    gzFile handle, which also causes warnings now.  This is not yet fixed
    here, because it might need more code restructuring.

--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -71,7 +71,7 @@ static void BaseBackup(void);
 
 #ifdef HAVE_LIBZ
 static const char *
-get_gz_error(gzFile *gzf)
+get_gz_error(gzFile gzf)
 {
 	int			errnum;
 	const char *errmsg;
@@ -279,7 +279,7 @@ ReceiveTarFile(PGconn *conn, PGresult *r
 	FILE	   *tarfile = NULL;
 
 #ifdef HAVE_LIBZ
-	gzFile	   *ztarfile = NULL;
+	gzFile		ztarfile = NULL;
 #endif
 
 	if (PQgetisnull(res, rownum, 0))
--- a/src/bin/pg_dump/pg_backup_tar.c
+++ b/src/bin/pg_dump/pg_backup_tar.c
@@ -57,16 +57,13 @@ static void _EndBlobs(ArchiveHandle *AH,
 #define K_STD_BUF_SIZE 1024
 
 
+typedef struct
+{
 #ifdef HAVE_LIBZ
- /* typedef gzFile	 ThingFile; */
-typedef FILE ThingFile;
+	gzFile		zFH;
 #else
-typedef FILE ThingFile;
+	FILE	   *zFH;
 #endif
-
-typedef struct
-{
-	ThingFile  *zFH;
 	FILE	   *nFH;
 	FILE	   *tarFH;
 	FILE	   *tmpFH;
