more dirmod CYGWIN (was: APR 1.0 released) - Mailing list pgsql-hackers

From Reini Urban
Subject more dirmod CYGWIN (was: APR 1.0 released)
Date
Msg-id 41417BAD.7050402@x-ray.at
Whole thread Raw
In response to Re: APR 1.0 released  (Reini Urban <rurban@x-ray.at>)
Responses Re: more dirmod CYGWIN  (Reini Urban <rurban@x-ray.at>)
Re: more dirmod CYGWIN (was: APR 1.0 released)  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
[BTW: there's no need to cc all, I'm subscribed to most lists]

Reini Urban schrieb:
> Bruce Momjian schrieb:
>> Andrew Dunstan wrote:
>>> Reini Urban wrote:
>>>
>>>> FYI: WIN32 is also defined because <windows.h> is included. 
>>>> (/usr/incluse/w32api/windef.h)
>>>> If you want this or that, do proper nesting, and use #else.
>>>
>>> Ugh, yes. A little experimentation shows that __WIN32__ is defined 
>>> for MinGW only, but WIN32 is for both. I wonder how we missed that in 
>>> various places. Maybe we need a little audit of the use of WIN32.
>>
>>
>> OK, fixed.  We should not be using __WIN32__, just Win32.  The proper
>> test is #ifndef __CYGWIN__.
> 
> 
> very good. just think of future MSVC versions.
> 
> Just one more glitch:
> 
> #undef rename
> #undef unlink
> 
> has to be defined before #include <unistd.h> on CYGWIN, because
> unistd.h has the declarations for rename and unlink, which are required 
> inside the pg versions.
> without the #undef, the macros which rename rename to pgrename, ... are 
> still effective, which will lead to undeclared/falsely autodeclared 
> rename/unlink parts.
> 
> I don't know for mingw, if they need the pgrename/pgunlink declaration.
> For my CYGWIN patch I moved those two lines before #include <unistd.h>.

FYI: latest cvs HEAD, without any patches.

make runs now through with the expected implicit declaration warnings, 
but without any errors. Esp. the CYGWIN-specific SHMLIB linking errors 
are now gone. good!

make[2]: Entering directory `/usr/src/postgresql/pgsql/src/port'
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes 
-Wmissing-declarations -I../../src/port -I../../src/include   -c -o 
dirmod.o dirmod.c
dirmod.c: In Funktion >>pgunlink<<:
dirmod.c:113: Warnung: implicit declaration of function `unlink'
dirmod.c: In Funktion >>rmt_cleanup<<:
dirmod.c:267: Warnung: implicit declaration of function `pgport_pfree'
dirmod.c: In Funktion >>rmtree<<:
dirmod.c:318: Warnung: implicit declaration of function `pgport_palloc'
dirmod.c:318: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne 
Typkonvertierung
dirmod.c:333: Warnung: implicit declaration of function `pgport_pstrdup'
dirmod.c:333: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne 
Typkonvertierung

make check hangs at:
"running on port 65432 with pid 2304
============== creating database "regression"         ==============
CREATE DATABASE
ALTER DATABASE
============== dropping regression test user accounts ==============
============== installing PL/pgSQL                    ==============
============== running regression test queries        ==============
parallel group (13 tests):  int2 int4 int8 float4 name varchar numeric"

which means rename works ok. probably the false implicit declarations in 
the memory code break it.

I'll come with another patch later.
-- 
Reini Urban
http://xarch.tu-graz.ac.at/home/rurban/


pgsql-hackers by date:

Previous
From: Grant Finnemore
Date:
Subject: Re: Failed assertion, CVS head
Next
From: Bruce Momjian
Date:
Subject: Re: APR 1.0 released