Merge pull request #9076 from gojimmypi/pr-fence-atomics

Disallow atomics during fence & WOLFSSL_NO_ATOMIC
This commit is contained in:
Daniel Pouzzner
2025-08-08 23:46:30 -05:00
committed by GitHub
2 changed files with 7 additions and 2 deletions

View File

@@ -758,6 +758,7 @@ WOLFSSL_MULTICIRCULATE_ALTNAMELIST
WOLFSSL_NONBLOCK_OCSP
WOLFSSL_NOSHA3_384
WOLFSSL_NOT_WINDOWS_API
WOLFSSL_NO_ATOMIC
WOLFSSL_NO_BIO_ADDR_IN
WOLFSSL_NO_CLIENT
WOLFSSL_NO_CLIENT_CERT_ERROR

View File

@@ -1538,8 +1538,12 @@ WOLFSSL_ABI WOLFSSL_API int wolfCrypt_Cleanup(void);
/* use user-supplied XFENCE definition. */
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \
!defined(__STDC_NO_ATOMICS__)
#include <stdatomic.h>
#define XFENCE() atomic_thread_fence(memory_order_seq_cst)
#ifdef WOLFSSL_NO_ATOMIC
#define XFENCE() WC_DO_NOTHING
#else
#include <stdatomic.h>
#define XFENCE() atomic_thread_fence(memory_order_seq_cst)
#endif
#elif defined(__GNUC__) && (__GNUC__ == 4) && \
defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 1)
#define XFENCE() __sync_synchronize()