Re: Win32 defines - Mailing list pgsql-patches
| From | Bruce Momjian |
|---|---|
| Subject | Re: Win32 defines |
| Date | |
| Msg-id | 200304160404.h3G448n12750@candle.pha.pa.us Whole thread Raw |
| In response to | Re: Win32 defines (Peter Eisentraut <peter_e@gmx.net>) |
| Responses |
Re: Win32 defines
Re: Win32 defines |
| List | pgsql-patches |
OK, I have modified the patch to match your suggestions. I also removed
the N_PLAT_NLM define because I think that just got in when we were
thinking about the Novell port that we cancelled. Is that correct?
---------------------------------------------------------------------------
Peter Eisentraut wrote:
> Bruce Momjian writes:
>
> > This adds some Win32 defines to cygwin defines --- this isn't all of
> > them, but it is most.
>
> > Index: src/backend/access/transam/xlog.c
> > ===================================================================
> > RCS file: /cvsroot/pgsql-server/src/backend/access/transam/xlog.c,v
> > retrieving revision 1.112
> > diff -c -c -r1.112 xlog.c
> > *** src/backend/access/transam/xlog.c 21 Feb 2003 00:06:22 -0000 1.112
> > --- src/backend/access/transam/xlog.c 3 Apr 2003 06:09:26 -0000
> > ***************
> > *** 1507,1513 ****
> > * overwrite an existing logfile. However, there shouldn't be one, so
> > * rename() is an acceptable substitute except for the truly paranoid.
> > */
> > ! #if !defined(__BEOS__) && !defined(N_PLAT_NLM) && !defined(__CYGWIN__)
> > if (link(tmppath, path) < 0)
> > elog(PANIC, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
> > tmppath, path, log, seg);
> > --- 1507,1513 ----
> > * overwrite an existing logfile. However, there shouldn't be one, so
> > * rename() is an acceptable substitute except for the truly paranoid.
> > */
> > ! #if !defined(__BEOS__) && !defined(N_PLAT_NLM) && !defined(__CYGWIN__) && !defined(WIN32)
> > if (link(tmppath, path) < 0)
> > elog(PANIC, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
> > tmppath, path, log, seg);
>
> That list is getting pretty long. This should be replaced by something
> like HAVE_WORKING_LINK and be handled liked HAVE_UNIX_SOCKETS.
>
> > Index: src/backend/postmaster/postmaster.c
> > ===================================================================
> > RCS file: /cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v
> > retrieving revision 1.309
> > diff -c -c -r1.309 postmaster.c
> > *** src/backend/postmaster/postmaster.c 24 Mar 2003 22:40:14 -0000 1.309
> > --- src/backend/postmaster/postmaster.c 3 Apr 2003 06:09:32 -0000
>
> > ***************
> > *** 323,330 ****
> > * be proper support for Unix-y file permissions. Need to think of a
> > * reasonable check to apply on Windows.
> > */
> > ! #ifndef __CYGWIN__
> > !
> > if (stat(checkdir, &stat_buf) == -1)
> > {
> > if (errno == ENOENT)
> > --- 323,329 ----
> > * be proper support for Unix-y file permissions. Need to think of a
> > * reasonable check to apply on Windows.
> > */
> > ! #if !defined(__CYGWIN__) && !defined(WIN32)
> > if (stat(checkdir, &stat_buf) == -1)
> > {
> > if (errno == ENOENT)
>
> The comment tells the tale. What is a reasonable check to apply to
> Windows here?
>
> > Index: src/include/c.h
> > ===================================================================
> > RCS file: /cvsroot/pgsql-server/src/include/c.h,v
> > retrieving revision 1.135
> > diff -c -c -r1.135 c.h
> > *** src/include/c.h 9 Jan 2003 18:00:24 -0000 1.135
> > --- src/include/c.h 3 Apr 2003 06:09:40 -0000
> > ***************
> > *** 63,69 ****
> > #endif
> > #include <sys/types.h>
> >
> > ! #ifdef __CYGWIN__
> > #include <errno.h>
> > #include <sys/fcntl.h> /* ensure O_BINARY is available */
> > #endif
> > --- 63,69 ----
> > #endif
> > #include <sys/types.h>
> >
> > ! #if defined(__CYGWIN__) || defined(WIN32)
> > #include <errno.h>
> > #include <sys/fcntl.h> /* ensure O_BINARY is available */
> > #endif
>
> I think this should be killed and <errno.h> and <fcntl.h> always included.
>
> > Index: src/include/utils/datetime.h
> > ===================================================================
> > RCS file: /cvsroot/pgsql-server/src/include/utils/datetime.h,v
> > retrieving revision 1.36
> > diff -c -c -r1.36 datetime.h
> > *** src/include/utils/datetime.h 20 Feb 2003 05:24:55 -0000 1.36
> > --- src/include/utils/datetime.h 3 Apr 2003 06:09:41 -0000
> > ***************
> > *** 217,223 ****
> > #endif
> >
> > /* Global variable holding time zone information. */
> > ! #if defined(__CYGWIN__) || defined(N_PLAT_NLM)
> > #define TIMEZONE_GLOBAL _timezone
> > #else
> > #define TIMEZONE_GLOBAL timezone
> > --- 217,223 ----
> > #endif
> >
> > /* Global variable holding time zone information. */
> > ! #if defined(__CYGWIN__) || defined(WIN32) || defined(N_PLAT_NLM)
> > #define TIMEZONE_GLOBAL _timezone
> > #else
> > #define TIMEZONE_GLOBAL timezone
>
> We should move that to the port-specific include files, like
>
> #define timezone _timezone
>
> > Index: src/interfaces/ecpg/pgtypeslib/dt.h
> > ===================================================================
> > RCS file: /cvsroot/pgsql-server/src/interfaces/ecpg/pgtypeslib/dt.h,v
> > retrieving revision 1.3
> > diff -c -c -r1.3 dt.h
> > *** src/interfaces/ecpg/pgtypeslib/dt.h 1 Apr 2003 14:37:25 -0000 1.3
> > --- src/interfaces/ecpg/pgtypeslib/dt.h 3 Apr 2003 06:09:41 -0000
>
> (same here)
>
> > Index: src/tools/entab/entab.c
> > ===================================================================
> > RCS file: /cvsroot/pgsql-server/src/tools/entab/entab.c,v
> > retrieving revision 1.11
> > diff -c -c -r1.11 entab.c
> > *** src/tools/entab/entab.c 9 Jan 2002 18:21:46 -0000 1.11
> > --- src/tools/entab/entab.c 3 Apr 2003 06:09:44 -0000
> > ***************
> > *** 94,100 ****
> > in_file = stdin;
> > else
> > {
> > ! #ifndef __CYGWIN__
> > if ((in_file = fopen(*argv, "r")) == NULL)
> > #else
> > if ((in_file = fopen(*argv, "rb")) == NULL)
> > --- 94,100 ----
> > in_file = stdin;
> > else
> > {
> > ! #if defined(__CYGWIN__) || defined(WIN32)
> > if ((in_file = fopen(*argv, "r")) == NULL)
> > #else
> > if ((in_file = fopen(*argv, "rb")) == NULL)
>
> This should use the macros defined in c.h.
>
> --
> Peter Eisentraut peter_e@gmx.net
>
>
>
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Index: src/backend/access/transam/xlog.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/access/transam/xlog.c,v
retrieving revision 1.112
diff -c -c -r1.112 xlog.c
*** src/backend/access/transam/xlog.c 21 Feb 2003 00:06:22 -0000 1.112
--- src/backend/access/transam/xlog.c 16 Apr 2003 03:59:39 -0000
***************
*** 1507,1513 ****
* overwrite an existing logfile. However, there shouldn't be one, so
* rename() is an acceptable substitute except for the truly paranoid.
*/
! #if !defined(__BEOS__) && !defined(N_PLAT_NLM) && !defined(__CYGWIN__)
if (link(tmppath, path) < 0)
elog(PANIC, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
tmppath, path, log, seg);
--- 1507,1513 ----
* overwrite an existing logfile. However, there shouldn't be one, so
* rename() is an acceptable substitute except for the truly paranoid.
*/
! #if HAVE_LINK
if (link(tmppath, path) < 0)
elog(PANIC, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
tmppath, path, log, seg);
Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v
retrieving revision 1.310
diff -c -c -r1.310 postmaster.c
*** src/backend/postmaster/postmaster.c 6 Apr 2003 22:45:22 -0000 1.310
--- src/backend/postmaster/postmaster.c 16 Apr 2003 03:59:45 -0000
***************
*** 300,306 ****
char path[MAXPGPATH];
FILE *fp;
! #ifndef __CYGWIN__
struct stat stat_buf;
#endif
--- 300,306 ----
char path[MAXPGPATH];
FILE *fp;
! #if !defined(__CYGWIN__) && !defined(WIN32)
struct stat stat_buf;
#endif
***************
*** 322,329 ****
* be proper support for Unix-y file permissions. Need to think of a
* reasonable check to apply on Windows.
*/
! #ifndef __CYGWIN__
!
if (stat(checkdir, &stat_buf) == -1)
{
if (errno == ENOENT)
--- 322,328 ----
* be proper support for Unix-y file permissions. Need to think of a
* reasonable check to apply on Windows.
*/
! #if !defined(__CYGWIN__) && !defined(WIN32)
if (stat(checkdir, &stat_buf) == -1)
{
if (errno == ENOENT)
***************
*** 336,342 ****
if (stat_buf.st_mode & (S_IRWXG | S_IRWXO))
elog(FATAL, "data directory %s has group or world access; permissions should be u=rwx (0700)",
checkdir);
! #endif /* !__CYGWIN__ */
/* Look for PG_VERSION before looking for pg_control */
ValidatePgVersion(checkdir);
--- 335,341 ----
if (stat_buf.st_mode & (S_IRWXG | S_IRWXO))
elog(FATAL, "data directory %s has group or world access; permissions should be u=rwx (0700)",
checkdir);
! #endif
/* Look for PG_VERSION before looking for pg_control */
ValidatePgVersion(checkdir);
Index: src/backend/utils/adt/datetime.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/utils/adt/datetime.c,v
retrieving revision 1.103
diff -c -c -r1.103 datetime.c
*** src/backend/utils/adt/datetime.c 4 Apr 2003 04:50:44 -0000 1.103
--- src/backend/utils/adt/datetime.c 16 Apr 2003 03:59:49 -0000
***************
*** 1533,1539 ****
/* tm_gmtoff is Sun/DEC-ism */
tz = -(tmp->tm_gmtoff);
#elif defined(HAVE_INT_TIMEZONE)
! tz = ((tmp->tm_isdst > 0) ? (TIMEZONE_GLOBAL - 3600) : TIMEZONE_GLOBAL);
#endif /* HAVE_INT_TIMEZONE */
}
else
--- 1533,1539 ----
/* tm_gmtoff is Sun/DEC-ism */
tz = -(tmp->tm_gmtoff);
#elif defined(HAVE_INT_TIMEZONE)
! tz = ((tmp->tm_isdst > 0) ? (timezone - 3600) : timezone);
#endif /* HAVE_INT_TIMEZONE */
}
else
Index: src/backend/utils/adt/nabstime.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/utils/adt/nabstime.c,v
retrieving revision 1.106
diff -c -c -r1.106 nabstime.c
*** src/backend/utils/adt/nabstime.c 4 Apr 2003 04:50:44 -0000 1.106
--- src/backend/utils/adt/nabstime.c 16 Apr 2003 03:59:50 -0000
***************
*** 261,267 ****
}
else
{
! *tzp = ((tm->tm_isdst > 0) ? (TIMEZONE_GLOBAL - 3600) : TIMEZONE_GLOBAL);
if (tzn != NULL)
{
--- 261,267 ----
}
else
{
! *tzp = ((tm->tm_isdst > 0) ? (timezone - 3600) : timezone);
if (tzn != NULL)
{
Index: src/backend/utils/adt/timestamp.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/backend/utils/adt/timestamp.c,v
retrieving revision 1.83
diff -c -c -r1.83 timestamp.c
*** src/backend/utils/adt/timestamp.c 7 Apr 2003 15:04:03 -0000 1.83
--- src/backend/utils/adt/timestamp.c 16 Apr 2003 03:59:52 -0000
***************
*** 899,905 ****
if (tzn != NULL)
*tzn = (char *) tm->tm_zone;
#elif defined(HAVE_INT_TIMEZONE)
! *tzp = ((tm->tm_isdst > 0) ? (TIMEZONE_GLOBAL - 3600) : TIMEZONE_GLOBAL);
if (tzn != NULL)
*tzn = tzname[(tm->tm_isdst > 0)];
#endif
--- 899,905 ----
if (tzn != NULL)
*tzn = (char *) tm->tm_zone;
#elif defined(HAVE_INT_TIMEZONE)
! *tzp = ((tm->tm_isdst > 0) ? (timezone - 3600) : timezone);
if (tzn != NULL)
*tzn = tzname[(tm->tm_isdst > 0)];
#endif
Index: src/include/c.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/c.h,v
retrieving revision 1.137
diff -c -c -r1.137 c.h
*** src/include/c.h 6 Apr 2003 22:45:23 -0000 1.137
--- src/include/c.h 16 Apr 2003 03:59:54 -0000
***************
*** 65,74 ****
#endif
#include <sys/types.h>
- #ifdef __CYGWIN__
#include <errno.h>
#include <sys/fcntl.h> /* ensure O_BINARY is available */
- #endif
#ifdef HAVE_SUPPORTDEFS_H
#include <SupportDefs.h>
#endif
--- 65,72 ----
***************
*** 680,686 ****
* ----------------------------------------------------------------
*/
! #ifdef __CYGWIN__
#define PG_BINARY O_BINARY
#define PG_BINARY_R "rb"
#define PG_BINARY_W "wb"
--- 678,684 ----
* ----------------------------------------------------------------
*/
! #if defined(__CYGWIN__) || defined(WIN32)
#define PG_BINARY O_BINARY
#define PG_BINARY_R "rb"
#define PG_BINARY_W "wb"
Index: src/include/pg_config_manual.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/pg_config_manual.h,v
retrieving revision 1.1
diff -c -c -r1.1 pg_config_manual.h
*** src/include/pg_config_manual.h 6 Apr 2003 22:45:23 -0000 1.1
--- src/include/pg_config_manual.h 16 Apr 2003 03:59:55 -0000
***************
*** 135,140 ****
--- 135,148 ----
#endif
/*
+ * Define this if your operating system supports link()
+ */
+ #if !defined(__QNX__) && !defined(__BEOS__) && \
+ !defined(__CYGWIN__) && !defined(WIN32)
+ # define HAVE_LINK 1
+ #endif
+
+ /*
* This is the default directory in which AF_UNIX socket files are
* placed. Caution: changing this risks breaking your existing client
* applications, which are likely to continue to look in the old
Index: src/include/port/cygwin.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/port/cygwin.h,v
retrieving revision 1.1
diff -c -c -r1.1 cygwin.h
*** src/include/port/cygwin.h 21 Mar 2003 17:18:34 -0000 1.1
--- src/include/port/cygwin.h 16 Apr 2003 03:59:55 -0000
***************
*** 24,26 ****
--- 24,28 ----
#else
#define DLLIMPORT __declspec (dllimport)
#endif
+
+ #define timezone _timezone
Index: src/include/port/win32.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/port/win32.h,v
retrieving revision 1.6
diff -c -c -r1.6 win32.h
*** src/include/port/win32.h 22 Jan 2002 19:02:40 -0000 1.6
--- src/include/port/win32.h 16 Apr 2003 03:59:55 -0000
***************
*** 27,29 ****
--- 27,31 ----
#define DLLIMPORT
#endif
+
+ #define timezone _timezone
Index: src/include/utils/datetime.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/include/utils/datetime.h,v
retrieving revision 1.37
diff -c -c -r1.37 datetime.h
*** src/include/utils/datetime.h 4 Apr 2003 04:50:44 -0000 1.37
--- src/include/utils/datetime.h 16 Apr 2003 03:59:56 -0000
***************
*** 216,228 ****
} while(0)
#endif
- /* Global variable holding time zone information. */
- #if defined(__CYGWIN__) || defined(N_PLAT_NLM)
- #define TIMEZONE_GLOBAL _timezone
- #else
- #define TIMEZONE_GLOBAL timezone
- #endif
-
/*
* Date/time validation
* Include check for leap year.
--- 216,221 ----
Index: src/interfaces/ecpg/include/sqlca.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/ecpg/include/sqlca.h,v
retrieving revision 1.22
diff -c -c -r1.22 sqlca.h
*** src/interfaces/ecpg/include/sqlca.h 10 Mar 2003 22:28:21 -0000 1.22
--- src/interfaces/ecpg/include/sqlca.h 16 Apr 2003 03:59:56 -0000
***************
*** 2,8 ****
#define POSTGRES_SQLCA_H
#ifndef DLLIMPORT
! #ifdef __CYGWIN__
#define DLLIMPORT __declspec (dllimport)
#else
#define DLLIMPORT
--- 2,8 ----
#define POSTGRES_SQLCA_H
#ifndef DLLIMPORT
! #if defined(__CYGWIN__) || defined(WIN32)
#define DLLIMPORT __declspec (dllimport)
#else
#define DLLIMPORT
Index: src/interfaces/ecpg/pgtypeslib/dt.h
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/ecpg/pgtypeslib/dt.h,v
retrieving revision 1.3
diff -c -c -r1.3 dt.h
*** src/interfaces/ecpg/pgtypeslib/dt.h 1 Apr 2003 14:37:25 -0000 1.3
--- src/interfaces/ecpg/pgtypeslib/dt.h 16 Apr 2003 03:59:56 -0000
***************
*** 215,227 ****
} while(0)
#endif
- /* Global variable holding time zone information. */
- #if defined(__CYGWIN__) || defined(N_PLAT_NLM)
- #define TIMEZONE_GLOBAL _timezone
- #else
- #define TIMEZONE_GLOBAL timezone
- #endif
-
/*
* Date/time validation
* Include check for leap year.
--- 215,220 ----
Index: src/interfaces/ecpg/pgtypeslib/dt_common.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/ecpg/pgtypeslib/dt_common.c,v
retrieving revision 1.3
diff -c -c -r1.3 dt_common.c
*** src/interfaces/ecpg/pgtypeslib/dt_common.c 1 Apr 2003 14:37:25 -0000 1.3
--- src/interfaces/ecpg/pgtypeslib/dt_common.c 16 Apr 2003 04:00:05 -0000
***************
*** 1167,1173 ****
#elif defined(HAVE_INT_TIMEZONE)
if (tzp != NULL)
{
! *tzp = ((tm->tm_isdst > 0) ? (TIMEZONE_GLOBAL - 3600) : TIMEZONE_GLOBAL);
if (tzn != NULL)
{
--- 1167,1173 ----
#elif defined(HAVE_INT_TIMEZONE)
if (tzp != NULL)
{
! *tzp = ((tm->tm_isdst > 0) ? (timezone - 3600) : timezone);
if (tzn != NULL)
{
***************
*** 1252,1258 ****
/* tm_gmtoff is Sun/DEC-ism */
tz = -(tmp->tm_gmtoff);
#elif defined(HAVE_INT_TIMEZONE)
! tz = ((tmp->tm_isdst > 0) ? (TIMEZONE_GLOBAL - 3600) : TIMEZONE_GLOBAL);
#endif /* HAVE_INT_TIMEZONE */
}
else
--- 1252,1258 ----
/* tm_gmtoff is Sun/DEC-ism */
tz = -(tmp->tm_gmtoff);
#elif defined(HAVE_INT_TIMEZONE)
! tz = ((tmp->tm_isdst > 0) ? (timezone - 3600) : timezone);
#endif /* HAVE_INT_TIMEZONE */
}
else
Index: src/interfaces/ecpg/pgtypeslib/timestamp.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/ecpg/pgtypeslib/timestamp.c,v
retrieving revision 1.5
diff -c -c -r1.5 timestamp.c
*** src/interfaces/ecpg/pgtypeslib/timestamp.c 1 Apr 2003 14:37:25 -0000 1.5
--- src/interfaces/ecpg/pgtypeslib/timestamp.c 16 Apr 2003 04:00:05 -0000
***************
*** 214,220 ****
if (tzn != NULL)
*tzn = (char *) tm->tm_zone;
#elif defined(HAVE_INT_TIMEZONE)
! *tzp = ((tm->tm_isdst > 0) ? (TIMEZONE_GLOBAL - 3600) : TIMEZONE_GLOBAL);
if (tzn != NULL)
*tzn = tzname[(tm->tm_isdst > 0)];
#endif
--- 214,220 ----
if (tzn != NULL)
*tzn = (char *) tm->tm_zone;
#elif defined(HAVE_INT_TIMEZONE)
! *tzp = ((tm->tm_isdst > 0) ? (timezone - 3600) : timezone);
if (tzn != NULL)
*tzn = tzname[(tm->tm_isdst > 0)];
#endif
Index: src/tools/entab/entab.c
===================================================================
RCS file: /cvsroot/pgsql-server/src/tools/entab/entab.c,v
retrieving revision 1.11
diff -c -c -r1.11 entab.c
*** src/tools/entab/entab.c 9 Jan 2002 18:21:46 -0000 1.11
--- src/tools/entab/entab.c 16 Apr 2003 04:00:05 -0000
***************
*** 12,17 ****
--- 12,19 ----
#include <stdlib.h>
#include <string.h>
+ #include "../include/c.h"
+
#define NUL '\0'
#ifndef TRUE
***************
*** 94,104 ****
in_file = stdin;
else
{
! #ifndef __CYGWIN__
! if ((in_file = fopen(*argv, "r")) == NULL)
! #else
! if ((in_file = fopen(*argv, "rb")) == NULL)
! #endif
halt("PERROR: Can not open file %s\n", argv[0]);
argv++;
}
--- 96,102 ----
in_file = stdin;
else
{
! if ((in_file = fopen(*argv, PG_BINARY_R)) == NULL)
halt("PERROR: Can not open file %s\n", argv[0]);
argv++;
}
pgsql-patches by date: