Commit 
9c02e3a986 added a forward declaration for this typedef that
caused redeclarations, which is not valid in C99.  To fix, add some
preprocessor guards to avoid a redefinition, as is done elsewhere
(e.g., commit 
382092a0cd).
Per buildfarm.
  */
 
 /* forward declaration to avoid including pg_backup_archiver.h here */
+#ifndef HAVE_TOCENTRY_TYPEDEF
 typedef struct _tocEntry TocEntry;
+#define HAVE_TOCENTRY_TYPEDEF 1
+#endif
 
 typedef char *(*DefnDumperPtr) (Archive *AH, const void *userArg, const TocEntry *te);
 typedef int (*DataDumperPtr) (Archive *AH, const void *userArg);
 
 #define WORKER_IGNORED_ERRORS        12
 
 typedef struct _archiveHandle ArchiveHandle;
+#ifndef HAVE_TOCENTRY_TYPEDEF
 typedef struct _tocEntry TocEntry;
+#define HAVE_TOCENTRY_TYPEDEF 1
+#endif
 struct ParallelState;
 
 #define READ_ERROR_EXIT(fd) \