postgresql/src/include/port
Andres Freund db4ec2ffce Fix alignment of pg_atomic_uint64 variables on some 32bit platforms.
I failed to recognize that pg_atomic_uint64 wasn't guaranteed to be 8
byte aligned on some 32bit platforms - which it has to be on some
platforms to guarantee the desired atomicity and which we assert.

As this is all compiler specific code anyway we can just rely on
compiler specific tricks to enforce alignment.

I've been unable to find concrete documentation about the version that
introduce the sunpro alignment support, so that might need additional
guards.

I've verified that this works with gcc x86 32bit, but I don't have
access to any other 32bit environment.

Discussion: op.xpsjdkil0sbe7t@vld-kuci

Per report from Vladimir Koković.
2015-01-11 01:06:37 +01:00
..
atomics Fix alignment of pg_atomic_uint64 variables on some 32bit platforms. 2015-01-11 01:06:37 +01:00
win32 Enable building with the Mingw64 compiler. 2011-01-30 19:56:46 -05:00
win32_msvc Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
aix.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
atomics.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
cygwin.h Remove checks for now long outdated compilers. 2012-09-28 19:43:50 -04:00
darwin.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
freebsd.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
hpux.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
linux.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
netbsd.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
openbsd.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
sco.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
solaris.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
unixware.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
win32.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00