Re: Win32 defines - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: Win32 defines |
Date | |
Msg-id | 200304170251.h3H2pZm24977@candle.pha.pa.us Whole thread Raw |
In response to | Re: Win32 defines (Tom Lane <tgl@sss.pgh.pa.us>) |
Responses |
Re: Win32 defines
Re: Win32 defines |
List | pgsql-patches |
OK, here is the newest version of the patch, with a new file for Win32 macros. --------------------------------------------------------------------------- Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Tom Lane wrote: > >> Why is this removing the use of the TIMEZONE_GLOBAL macro? > > > It was Peter's suggestion. Once we had a port-specific define, we > > should use timezone directly, no? > > > #define timezone _timezone > > Oh, I missed that part. A bit risky IMHO --- the macro might expand in > places you didn't expect/want. TIMEZONE_GLOBAL is unlikely to cause > any such conflict ... > > regards, tom lane > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faqs/FAQ.html > -- 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 17 Apr 2003 02:48:24 -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 17 Apr 2003 02:48:27 -0000 *************** *** 300,308 **** char path[MAXPGPATH]; FILE *fp; - #ifndef __CYGWIN__ struct stat stat_buf; - #endif if (checkdir == NULL) { --- 300,306 ---- *************** *** 315,329 **** ExitPostmaster(2); } - /* - * Check if the directory has group or world access. If so, reject. - * - * XXX temporarily suppress check when on Windows, because there may not - * 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) --- 313,318 ---- *************** *** 333,342 **** checkdir); } 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); --- 322,339 ---- checkdir); } + /* + * Check if the directory has group or world access. If so, reject. + * + * XXX temporarily suppress check when on Windows, because there may not + * 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_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/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 17 Apr 2003 02:48:36 -0000 *************** *** 51,57 **** */ #include "pg_config.h" ! #include "pg_config_manual.h" #include "pg_config_os.h" #include "postgres_ext.h" --- 51,57 ---- */ #include "pg_config.h" ! #include "pg_config_manual.h" /* must be after pg_config.h */ #include "pg_config_os.h" #include "postgres_ext.h" *************** *** 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 ---- *************** *** 321,326 **** --- 319,332 ---- #define HAVE_INT64_TIMESTAMP #endif + /* Global variable holding time zone information. */ + #ifndef HAVE_UNDERSCORE_TIMEZONE + #define TIMEZONE_GLOBAL timezone + #else + #define TIMEZONE_GLOBAL _timezone + #define tzname _tzname /* should be in time.h? */ + #endif + /* sig_atomic_t is required by ANSI C, but may be missing on old platforms */ #ifndef HAVE_SIG_ATOMIC_T typedef int sig_atomic_t; *************** *** 680,686 **** * ---------------------------------------------------------------- */ ! #ifdef __CYGWIN__ #define PG_BINARY O_BINARY #define PG_BINARY_R "rb" #define PG_BINARY_W "wb" --- 686,692 ---- * ---------------------------------------------------------------- */ ! #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 17 Apr 2003 02:48:36 -0000 *************** *** 135,140 **** --- 135,156 ---- #endif /* + * Define this if your operating system supports link() + */ + #if !defined(__QNX__) && !defined(__BEOS__) && \ + !defined(__CYGWIN__) && !defined(WIN32) + # define HAVE_LINK 1 + #endif + + /* + * Define this if your operating system has _timezone rather than timezone + */ + #if defined(__CYGWIN__) || defined(WIN32) + # define HAVE_INT_TIMEZONE /* has int _timezone */ + # define HAVE_UNDERSCORE_TIMEZONE 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 17 Apr 2003 02:48:37 -0000 *************** *** 1,10 **** /* $Header: /cvsroot/pgsql-server/src/include/port/cygwin.h,v 1.1 2003/03/21 17:18:34 petere Exp $ */ #define HAS_TEST_AND_SET typedef unsigned char slock_t; - - #define tzname _tzname /* should be in time.h? */ - #define HAVE_INT_TIMEZONE /* has int _timezone */ #include <cygwin/version.h> --- 1,9 ---- /* $Header: /cvsroot/pgsql-server/src/include/port/cygwin.h,v 1.1 2003/03/21 17:18:34 petere Exp $ */ + #include <port/win32defs.h> + #define HAS_TEST_AND_SET typedef unsigned char slock_t; #include <cygwin/version.h> 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 17 Apr 2003 02:48:37 -0000 *************** *** 1,3 **** --- 1,7 ---- + /* $Header: /cvsroot/pgsql-server/src/include/port/cygwin.h,v 1.1 2003/03/21 17:18:34 petere Exp $ */ + + #include <port/win32defs.h> + #define USES_WINSOCK #define NOFILE 100 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 17 Apr 2003 02:48:37 -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 17 Apr 2003 02:48:37 -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 17 Apr 2003 02:48:37 -0000 *************** *** 216,225 **** #endif /* Global variable holding time zone information. */ ! #if defined(__CYGWIN__) || defined(N_PLAT_NLM) ! #define TIMEZONE_GLOBAL _timezone ! #else #define TIMEZONE_GLOBAL timezone #endif /* --- 216,226 ---- #endif /* Global variable holding time zone information. */ ! #if !defined(__CYGWIN__) && !defined(WIN32) #define TIMEZONE_GLOBAL timezone + #else + #define TIMEZONE_GLOBAL _timezone + #define tzname _tzname /* should be in time.h? */ #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 17 Apr 2003 02:48:44 -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++; } /* * Supplement to <sys/types.h>. */ #define uid_t int #define gid_t int #define pid_t unsigned long #define ssize_t int #define mode_t int #define key_t long #define ushort unsigned short /* * Supplement to <sys/stat.h>. */ #define lstat slat #define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR) #define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG) #define S_IRUSR _S_IREAD #define S_IWUSR _S_IWRITE #define S_IXUSR _S_IEXEC #define S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC) /* * Supplement to <errno.h>. */ #include <errno.h> #undef EAGAIN #undef EINTR #define EINTR WSAEINTR #define EAGAIN WSAEWOULDBLOCK #define EMSGSIZE WSAEMSGSIZE #define EAFNOSUPPORT WSAEAFNOSUPPORT #define EWOULDBLOCK WSAEWOULDBLOCK #define ECONNRESET WSAECONNRESET #define EINPROGRESS WSAEINPROGRESS /* * Supplement to <math.h>. */ #define isnan _isnan #define finite _finite extern double rint(double x); /* * Supplement to <stdio.h>. */ #define snprintf _snprintf #define vsnprintf _vsnprintf /* * Fake strerror(). */ #ifdef POWERGRES_EXPORTS #include <string.h> extern char *mystrerror(int errnum); #define strerror mystrerror #endif
pgsql-patches by date: