pgsql: Allow use of __sync_lock_test_and_set for spinlocks on any machi - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Allow use of __sync_lock_test_and_set for spinlocks on any machi
Date
Msg-id E1oqLQa-0009zb-Ja@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Allow use of __sync_lock_test_and_set for spinlocks on any machine.

If we have no special-case code in s_lock.h for the current platform,
but the compiler has __sync_lock_test_and_set, use that instead of
failing.  It's unlikely that anybody's __sync_lock_test_and_set
would be so awful as to be worse than our semaphore-based fallback,
but if it is, they can (continue to) use --disable-spinlocks.

This allows removal of the RISC-V special case installed by commit
c32fcac56, which generated exactly the same code but only on that
platform.  Usefully, the RISC-V buildfarm animals should now test
at least the int variant of this patch.

I've manually tested both variants on ARM by dint of removing the
ARM-specific stanza.  We don't want to drop that, because it already
has some special knowledge and is likely to grow more over time.
Likewise, this is not meant to preclude installing special cases
for other arches if that proves worthwhile.

Per discussion of a request to install the same code for loongarch64.
Like the previous patch, we might as well back-patch to supported
branches.

Discussion: https://postgr.es/m/761ac43d44b84d679ba803c2bd947cc0@HSMAILSVR04.hs.handsome.com.cn

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/058c7b5dd4cc6d8f3561f843fe0f1a7839e2b26d

Modified Files
--------------
src/include/storage/s_lock.h | 68 +++++++++++++++++++++++++++++---------------
1 file changed, 45 insertions(+), 23 deletions(-)


pgsql-committers by date:

Previous
From: Peter Eisentraut
Date:
Subject: pgsql: pg_dump: Refactor code that constructs ALTER ... OWNER TO comman
Next
From: John Naylor
Date:
Subject: pgsql: Straighten include order in guc-file.l