-- REVISED NOTE --
> Hm.  s_lock.h does define TAS() in terms of InterlockedCompareExchange()
if WIN32_ONLY_COMPILER is defined ... but that code hasn't changed in quite
a long time.  It 
> seems like the combination of an extension built with WIN32_ONLY_COMPILER
and a core built without that flag should never have worked, if the core is
what has to link 
> in InterlockedCompareExchange.

> I wonder if there is something you're doing that results in inlining a
spinlock call given the 9.4 headers, but did not previously.  Can you narrow
down what part of 
> your code is giving rise to the undefined reference?

>                       regards, tom lane

Tom,

Does it with all extensions, not just PostGIS (before (9.3.4 and before) I
could swap between say for example hstore mingw compiled and VC compiled and
had no issue)
And this extra InterlockedComparedExchange export did not appear in the
extension dlls.

 The InterlockedCompareExchange@ export as you guessed shows in the
extension .dll postgres.exe reference but not clear where to tell where that
is coming thru.  

I found this thread which sounds like the situation I am running into, but
not sure why it would be suddenly an issue now unless nothing is being
exported anymore
http://sourceforge.net/p/mingw-w64/mailman/message/31128245/

I'm compiling PostgreSQL the same way in both 9.3 and 9.4:

With something that looks like this:
export MINGHOST=i686-w64-mingw32
PG_VER=9.4

./configure --prefix=${PROJECTS}/postgresql/rel/pg${PG_VER}\
         --build=${MINGHOST} \
         --with-pgport=8443 --disable-float8-byval --enable-cassert
--enable-debug \
         --enable-integer-datetimes --without-zlib


With just the PG_VER being different.

What I did notice is that in 9.3, the config.log shows this for 

9.4:
LDFLAGS=-Wl,--allow-multiple-definition -Wl,--disable-auto-import
-Wl,--as-needed


and
9.3:
LDFLAGS=-Wl,--allow-multiple-definition  -Wl,--as-needed

I read thru the threads on mailing list and confirmed it was an intended
change.


I thought maybe the --disable-auto-import was doing something.

Trying to override the flag with

When I do any of the below did not work
export LDFLAGS=-Wl,--allow-multiple-definition -Wl,--enable-auto-import
-Wl,--as-needed
export LDFLAGS="-Wl,--allow-multiple-definition -Wl,--enable-auto-import
-Wl,--as-needed"
export LDFLAGS=-Wl,--allow-multiple-definition  -Wl,--as-needed

However I was able to override it by changing the:
/src/template/win32 (trying both )

LDFLAGS="-Wl,--allow-multiple-definition -Wl,--enable-auto-import"

And the old 9.3.4
LDFLAGS="-Wl,--allow-multiple-definition"


And concluded that was not the issue since the export of this symbol still
happens.

Any other thoughts?

Thanks,
Regina




-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to