cygwin 8.0.0beta1 postmaster/syslogger.c, port/dirmod.c, timezone/pgtz.c - Mailing list pgsql-patches

From Reini Urban
Subject cygwin 8.0.0beta1 postmaster/syslogger.c, port/dirmod.c, timezone/pgtz.c
Date
Msg-id 412B9BDF.1010806@x-ray.at
Whole thread Raw
Responses Re: cygwin 8.0.0beta1 postmaster/syslogger.c, port/dirmod.c, timezone/pgtz.c
Re: cygwin 8.0.0beta1 postmaster/syslogger.c, port/dirmod.c,
List pgsql-patches
Attached patches are required for cygwin:

2004-08-24 21:23:53 rurban@x-ray.at
    * (postmaster/syslogger.c) struct timeval is
           declared in sys/time.h, not in time.h

2004-08-24 20:20:54 rurban:
    * (port/dirmod.c) cygwin needs different header locations,
           and unlink is a macro. There are no pgport_palloc
           versions yet


timezone/pgtz.c:
Pending is a patch against postgresql-8.0.0beta1/config/c-library.m4:
PGAC_VAR_INT_TIMEZONE

In the meantime I've hacked it with a cast from time_t to (int) in
timezone/pgtz.c: get_timezone_offset

but timezone really is of time_t, not int. I don't know what you are
trying to do here.


There's on remaining issue for the cygwin build:
../../src/port/libpgport.a(dirmod.o)(.text+0x5ee):dirmod.c: undefined
reference to `__imp__CurrentMemoryContext'
../../src/port/libpgport.a(dirmod.o)(.text+0x64b):dirmod.c: undefined
reference to `__imp__CurrentMemoryContext'

which explains the pgport_palloc problem.
--
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/

2004-08-24 20:20:54 rurban:
    * cygwin needs different header locations, and unlink is a macro
     * There are no pgport_palloc versions yet

--- postgresql-8.0.0beta1/src/port/dirmod.c.orig    2004-08-08 07:44:36.000000000 +0100
+++ postgresql-8.0.0beta1/src/port/dirmod.c    2004-08-24 19:20:56.557435000 +0100
@@ -33,16 +33,28 @@


 #include "miscadmin.h"
+
+#ifdef __CYGWIN__
+#include <windows.h>
+#include <w32api/winioctl.h>
+#else
 #include <winioctl.h>
+#undef unlink
+#endif

 #undef rename
-#undef unlink

+/* 2004-08-24 20:20:54 rurban: There are no pgport_palloc versions yet */
+#if 0
 #ifndef FRONTEND
+#undef palloc
+#undef pstrdup
+#undef pfree
 #define palloc(sz)    pgport_palloc(sz)
 #define pstrdup(str)    pgport_pstrdup(str)
 #define pfree(pointer)    pgport_pfree(pointer)
 #endif
+#endif


 /*
2004-08-24 21:23:53 rurban@x-ray.at
    * struct timeval is declared in sys/time.h, not in time.h

--- postgresql-8.0.0beta1/src/backend/postmaster/syslogger.c.orig    2004-08-06 20:17:31.000000000 +0100
+++ postgresql-8.0.0beta1/src/backend/postmaster/syslogger.c    2004-08-24 20:21:26.057851800 +0100
@@ -28,6 +28,7 @@
 #include <signal.h>
 #include <time.h>
 #include <unistd.h>
+#include <sys/time.h>
 #include <sys/stat.h>

 #include "libpq/pqsignal.h"
--- postgresql-8.0.0beta1/src/timezone/pgtz.c.orig    2004-07-31 20:12:15.000000000 +0100
+++ postgresql-8.0.0beta1/src/timezone/pgtz.c    2004-08-24 19:56:30.686367800 +0100
@@ -97,9 +97,9 @@
     return tm->tm_gmtoff;
 #elif defined(HAVE_INT_TIMEZONE)
 #ifdef HAVE_UNDERSCORE_TIMEZONE
-    return -_timezone;
+    return -(int)_timezone;
 #else
-    return -timezone;
+    return -(int)timezone;
 #endif
 #else
 #error No way to determine TZ? Can this happen?

pgsql-patches by date:

Previous
From: Martin Münstermann
Date:
Subject: Re: [BUGS] 8.0.0beta1: -lpthread missing
Next
From: Jason Tishler
Date:
Subject: Re: cygwin 8.0.0beta1 postmaster/syslogger.c, port/dirmod.c, timezone/pgtz.c