23.09.2014, 00:01, Andres Freund kirjoitti:
> I've finally managed to incorporate (all the?) feedback I got for
> 0.5. Imo the current version looks pretty good.
>
> Most notable changes:
> * Lots of comment improvements
> * code moved out of storage/ into port/
> * separated the s_lock.h changes into its own commit
> * merged i386/amd64 into one file
> * fixed lots of the little details Amit noticed
> * fixed lots of XXX/FIXMEs
> * rebased to today's master
> * tested various gcc/msvc versions
> * extended the regression tests
> * ...
>
> The patches:
> 0001: The actual atomics API
I tried building PG on Solaris 10/Sparc using GCC 4.9.0 (buildfarm
animal dingo) with this patch but regression tests failed due to:
/export/home/os/postgresql/src/test/regress/regress.so: symbol
pg_write_barrier_impl: referenced symbol not found
which turns out to be caused by a leftover PG_ prefix in ifdefs for
HAVE_GCC__ATOMIC_INT64_CAS. Removing the PG_ prefix fixed the build and
regression tests. Attached a patch to strip the invalid prefix.
> 0002: Implement s_lock.h support ontop the atomics API. Existing
> implementations continue to be used unless
> FORCE_ATOMICS_BASED_SPINLOCKS is defined
Applied this and built PG with and without FORCE_ATOMICS_BASED_SPINLOCKS
- both builds passed regression tests.
> 0003-0005: Not proposed for review here. Just included because code
> actually using the atomics make testing them easier.
I'll look at these patches later.
/ Oskari