From ec5e0ef79125698c0f717ce7d661c3b23f91deb0 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Fri, 16 May 2003 01:57:52 +0000
Subject: [PATCH] Reorganize Win32 includes to only include <port.h> after
 system includes under Win32.  Also fix other compile issues.

---
 configure          |  3 ++-
 configure.in       |  5 +++--
 src/include/c.h    |  9 ++++++++-
 src/include/port.h | 14 +++++++++-----
 src/port/copydir.c |  5 +++++
 5 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/configure b/configure
index bd84605af0f..afe81d03460 100755
--- a/configure
+++ b/configure
@@ -11397,7 +11397,8 @@ esac
 # Win32 can't to rename or unlink on an open file
 case $host_os in mingw*)
 LIBOBJS="$LIBOBJS dirmod.$ac_objext"
-LIBOBJS="$LIBOBJS copydir.$ac_objext" ;;
+LIBOBJS="$LIBOBJS copydir.$ac_objext"
+LIBOBJS="$LIBOBJS gettimeofday.$ac_objext" ;;
 esac
 
 if test "$with_readline" = yes; then
diff --git a/configure.in b/configure.in
index 670e5960d7e..51157599a9e 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Header: /cvsroot/pgsql/configure.in,v 1.251 2003/05/15 17:59:17 momjian Exp $
+dnl $Header: /cvsroot/pgsql/configure.in,v 1.252 2003/05/16 01:57:51 momjian Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -865,7 +865,8 @@ esac
 # Win32 can't to rename or unlink on an open file
 case $host_os in mingw*)
 AC_LIBOBJ(dirmod)
-AC_LIBOBJ(copydir) ;;
+AC_LIBOBJ(copydir)
+AC_LIBOBJ(gettimeofday) ;;
 esac
 
 if test "$with_readline" = yes; then
diff --git a/src/include/c.h b/src/include/c.h
index f8df3a434c9..6f3c690fbc9 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: c.h,v 1.146 2003/05/15 23:39:27 tgl Exp $
+ * $Id: c.h,v 1.147 2003/05/16 01:57:51 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -52,7 +52,9 @@
 
 #include "pg_config.h"
 #include "pg_config_manual.h"	/* must be after pg_config.h */
+#ifndef WIN32
 #include "pg_config_os.h"		/* must be before any system header files */
+#endif
 #include "postgres_ext.h"
 
 #include <stdio.h>
@@ -71,6 +73,11 @@
 #include <SupportDefs.h>
 #endif
 
+#ifdef WIN32
+/* We have to redefine some system functions after they are included above */
+#include "pg_config_os.h"
+#endif
+
 /* Must be before gettext() games below */
 #include <locale.h>
 
diff --git a/src/include/port.h b/src/include/port.h
index f5672355bd8..ef40360ca65 100644
--- a/src/include/port.h
+++ b/src/include/port.h
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: port.h,v 1.1 2003/05/15 16:35:29 momjian Exp $
+ * $Id: port.h,v 1.2 2003/05/16 01:57:51 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -22,21 +22,26 @@ int fseeko(FILE *stream, off_t offset, int whence);
 off_t ftello(FILE *stream);
 #endif
 
+#ifdef WIN32
 /*
  * Win32 doesn't have reliable rename/unlink during concurrent access
  */
-#if defined(WIN32) && !defined(FRONTEND)
+#ifndef FRONTEND
 int pgrename(const char *from, const char *to);
 int pgunlink(const char *path);      
 #define rename(from, to)	pgrename(from, to)
 #define unlink(path)		pgunlink(path)
 #endif
 
+extern int copydir(char *fromdir,char *todir);
+extern int gettimeofday(struct timeval *tp, struct timezone *tzp);
+
+#else
+
 /*
  *	Win32 requires a special close for sockets and pipes, while on Unix
  *	close() does them all.
  */
-#ifndef WIN32
 #define	closesocket close
 #endif
   
@@ -45,7 +50,7 @@ int pgunlink(const char *path);
  * When necessary, these routines are provided by files in src/port/.
  */
 #ifndef HAVE_CRYPT
-char *crypt(const char *key, const char *setting);
+extern char *crypt(const char *key, const char *setting);
 #endif
 
 #ifndef HAVE_FSEEKO
@@ -90,4 +95,3 @@ extern long random(void);
 #ifndef HAVE_SRANDOM
 extern void srandom(unsigned int seed);
 #endif
-
diff --git a/src/port/copydir.c b/src/port/copydir.c
index cd39f4d07ee..81a36cca4a3 100644
--- a/src/port/copydir.c
+++ b/src/port/copydir.c
@@ -6,6 +6,11 @@
 
 #include "postgres.h"
 
+#undef mkdir	/* no reason to use that macro because we ignore the 2nd arg */
+
+#include "dirent.h"
+
+
 int
 copydir(char *fromdir,char *todir)
 {
-- 
GitLab