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: