diff options
author | ylavic <ylavic@13f79535-47bb-0310-9956-ffa450edef68> | 2023-02-14 11:18:00 +0000 |
---|---|---|
committer | ylavic <ylavic@13f79535-47bb-0310-9956-ffa450edef68> | 2023-02-14 11:18:00 +0000 |
commit | a99be1501f7bac8c99af23bd5b43d2a09b519b71 (patch) | |
tree | fe4fc65dfd1651d9af56a22194278ccafba0cdb5 /README | |
parent | 24b1a6436f789ae16be4d7a2a7a68cb9325315e5 (diff) | |
download | libapr-a99be1501f7bac8c99af23bd5b43d2a09b519b71.tar.gz |
configure: Test apr_uint64_t alignment for 64bit atomic builtins usability.
On some systems the __atomic builtins may be available only through libatomic
or fall back to libatomic when the atomic operations are not issued on a
suitably aligned address (64bit atomics on 8-byte aligned addresses only for
instance).
Modify the tests for HAVE_ATOMIC_BUILTINS64 and HAVE__ATOMIC_BUILTINS64 such
that the address for the atomic operations is not aligned (unless 64bit ints
always have the suitable alignment, i.e. mainly 64bit systems..).
Also, use the __atomic_always_lock_free() builtin to fail the test when the
compiler already knows about the alignment issue (falling back to libatomic,
which we don't require/want).
With this, 64bit builtins should be selected only for platforms that can
natively handle atomics on any apr_uin64_t (since the APR has no dedicated
8-byte aligned 64bit type for now), while the generic/mutex implementation
is used for others.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1907642 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'README')
0 files changed, 0 insertions, 0 deletions