| From: | "Paragon Corporation" <lr(at)pcorp(dot)us> | 
|---|---|
| To: | <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | PostgreSQL 9.4 InterlockedCompareExchange appearing in mingw64-w32 causing issue with PostGIS win32 load | 
| Date: | 2014-05-22 06:02:38 | 
| Message-ID: | E18E764B5E204E7488342C3EEFA0F8EF@O | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Not sure if people know this, but PostGIS windows builds are built with
mingw64-w32 and mingw64-w64 chains and usually used with EDB VC++ built
PostgreSQL. 
This is mostly because there is too much unix stuff ingrained in PostGIS
toolchain making it difficult to compile in VC++.
Anyrate this has worked fine in the past, but when I tried the mingw64-w32
build in the EDB PostgreSQL 9.4beta1 Windows 32, it failed to load.
The 64-bit chain still works fine and regresses fine against PostGIS tests.
I looked at dependency walker, and noticed what was additional in the mingw
postgres that couldn't be found in the 9.4beta1 EDB postgres was a function:
InterlockedCompareExchange(at)12
I'm pretty sure this must be something that has changed in 9.4 because I'm
using the same chain to build 9.3 for 32-bit and this 
InterlockedCompareExchange call doesn't exist in 9.3 (niether the ming
compiled or edb compiled)
I'm using mingw64-w32 gcc 4.8.0 rev2.  I have the same chain mingw64-w64 to
build the 64-bit.
The only place I could find reference to this function is in
src\include\storage\s_lock.h
I have related PostGIS ticket here:
http://trac.osgeo.org/postgis/ticket/2746
Thanks,
Regina Obe
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Petr Jelinek | 2014-05-22 10:33:00 | Re: relaying errors from background workers | 
| Previous Message | Robert Haas | 2014-05-22 04:21:24 | relaying errors from background workers |