<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c7fa268961669c9aee237066eb0831564de5f458">https://github.com/macports/macports-ports/commit/c7fa268961669c9aee237066eb0831564de5f458</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new c7fa2689616 openssl3: Fix i386 compile
</span>c7fa2689616 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit c7fa268961669c9aee237066eb0831564de5f458
</span>Author: Gcenx <38226388+Gcenx@users.noreply.github.com>
AuthorDate: Sun Nov 7 15:04:51 2021 -0500

<span style='display:block; white-space:pre;color:#404040;'>    openssl3: Fix i386 compile
</span>---
 devel/openssl3/Portfile                          |   7 +
 devel/openssl3/files/patch-fix-i386-atomics.diff | 276 +++++++++++++++++++++++
 2 files changed, 283 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/openssl3/Portfile b/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 458c6a17532..1b8b81cbfbd 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/openssl3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -58,6 +58,13 @@ if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span> #   To be seen if needed with 3.0.0, and if dodes needs updating.
 #patchfiles-append   patch-pre-Sierra.diff
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/openssl/openssl/pull/16584
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/openssl/openssl/issues/16551
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fixes "Undefined symbols for architecture i386: ___atomic_is_lock_free"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${configure.build_arch} eq "i386" } || "i386" in ${configure.universal_archs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-fix-i386-atomics.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> set my_name         openssl-${major_v}
 set my_prefix       ${prefix}/libexec/${name}
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/openssl3/files/patch-fix-i386-atomics.diff b/devel/openssl3/files/patch-fix-i386-atomics.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..04d6f149c90
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/openssl3/files/patch-fix-i386-atomics.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,276 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 47574c32d31fc3c57baebf06a47b096191f9f2cd Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: xtkoba <69125751+xtkoba@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 12 Sep 2021 00:23:16 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 1/8] Update crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include/openssl/crypto.h.in | 11 +++++++++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 9 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git include/openssl/crypto.h.in include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 724e2ca5da79..c5e668ef1e3a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -85,10 +85,17 @@ __owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifdef __GNUC__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef __attribute__((__aligned__(8))) uint64_t CRYPTO_ATOMIC_U64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef uint64_t CRYPTO_ATOMIC_U64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int CRYPTO_atomic_or(CRYPTO_ATOMIC_U64 *val, uint64_t op, CRYPTO_ATOMIC_U64 *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int CRYPTO_atomic_load(CRYPTO_ATOMIC_U64 *val, CRYPTO_ATOMIC_U64 *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                       CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* No longer needed, so this is a no-op */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define OPENSSL_malloc_init() while(0) continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e4ad3833d14a02aeed44aed5bc14a7a9fec1f241 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: xtkoba <69125751+xtkoba@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 12 Sep 2021 00:24:17 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/8] Update init.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crypto/init.c | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git crypto/init.c crypto/init.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6a27d1a8e440..e254251b4c09 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- crypto/init.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ crypto/init.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,7 +34,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/trace.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int stopped = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static uint64_t optsdone = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static CRYPTO_ATOMIC_U64 optsdone = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct ossl_init_stop_st OPENSSL_INIT_STOP;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct ossl_init_stop_st {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -457,7 +457,7 @@ void OPENSSL_cleanup(void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    uint64_t tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CRYPTO_ATOMIC_U64 tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int aloaddone = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /* Applications depend on 0 being returned when cleanup was already done */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From c788331a415247c037ba5c74cce473552a03647e Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: xtkoba <69125751+xtkoba@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 12 Sep 2021 00:25:13 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 3/8] Update threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crypto/threads_pthread.c | 5 +++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 3 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git crypto/threads_pthread.c crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9f00d8be5eae..fc617c9e5736 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,7 +212,7 @@ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int CRYPTO_atomic_or(CRYPTO_ATOMIC_U64 *val, uint64_t op, CRYPTO_ATOMIC_U64 *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__GNUC__) && defined(__ATOMIC_ACQ_REL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -238,7 +238,8 @@ int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int CRYPTO_atomic_load(CRYPTO_ATOMIC_U64 *val, CRYPTO_ATOMIC_U64 *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                       CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__GNUC__) && defined(__ATOMIC_ACQUIRE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (__atomic_is_lock_free(sizeof(*val), val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From f5d06dbffe2ecce2a32009411c99cf10e6da3251 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: xtkoba <69125751+xtkoba@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 12 Sep 2021 02:18:54 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 4/8] Update crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include/openssl/crypto.h.in | 5 ++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 3 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git include/openssl/crypto.h.in include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c5e668ef1e3a..154a2039d1a8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,10 +92,9 @@ typedef uint64_t CRYPTO_ATOMIC_U64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int CRYPTO_atomic_or(CRYPTO_ATOMIC_U64 *val, uint64_t op, CRYPTO_ATOMIC_U64 *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int CRYPTO_atomic_load(CRYPTO_ATOMIC_U64 *val, CRYPTO_ATOMIC_U64 *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* No longer needed, so this is a no-op */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define OPENSSL_malloc_init() while(0) continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 3bcf939d0dbbcfb152bd96448807b80d4a103026 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: xtkoba <69125751+xtkoba@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 12 Sep 2021 02:20:42 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 5/8] Update threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crypto/threads_pthread.c | 10 +++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 5 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git crypto/threads_pthread.c crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fc617c9e5736..2eafb6a766a2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,12 +212,12 @@ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int CRYPTO_atomic_or(CRYPTO_ATOMIC_U64 *val, uint64_t op, CRYPTO_ATOMIC_U64 *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__GNUC__) && defined(__ATOMIC_ACQ_REL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (__atomic_is_lock_free(sizeof(*val), val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        *ret = __atomic_or_fetch(val, op, __ATOMIC_ACQ_REL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        *ret = __atomic_or_fetch((CRYPTO_ATOMIC_U64 *)val, op, __ATOMIC_ACQ_REL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # elif defined(__sun) && (defined(__SunOS_5_10) || defined(__SunOS_5_11))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -238,12 +238,12 @@ int CRYPTO_atomic_or(CRYPTO_ATOMIC_U64 *val, uint64_t op, CRYPTO_ATOMIC_U64 *ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int CRYPTO_atomic_load(CRYPTO_ATOMIC_U64 *val, CRYPTO_ATOMIC_U64 *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__GNUC__) && defined(__ATOMIC_ACQUIRE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (__atomic_is_lock_free(sizeof(*val), val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        __atomic_load(val, ret, __ATOMIC_ACQUIRE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        __atomic_load((CRYPTO_ATOMIC_U64 *)val, (CRYPTO_ATOMIC_U64 *)ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      __ATOMIC_ACQUIRE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # elif defined(__sun) && (defined(__SunOS_5_10) || defined(__SunOS_5_11))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From d481145baf462bb45818062ba20bf4e9cbe280a1 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: xtkoba <69125751+xtkoba@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 12 Sep 2021 02:37:23 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 6/8] Update threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crypto/threads_pthread.c | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git crypto/threads_pthread.c crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2eafb6a766a2..f85f0d7bdb01 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -216,7 +216,7 @@ int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__GNUC__) && defined(__ATOMIC_ACQ_REL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (__atomic_is_lock_free(sizeof(*val), val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (__atomic_is_lock_free(sizeof(*val), (CRYPTO_ATOMIC_U64 *)val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         *ret = __atomic_or_fetch((CRYPTO_ATOMIC_U64 *)val, op, __ATOMIC_ACQ_REL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -241,7 +241,7 @@ int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__GNUC__) && defined(__ATOMIC_ACQUIRE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (__atomic_is_lock_free(sizeof(*val), val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (__atomic_is_lock_free(sizeof(*val), (CRYPTO_ATOMIC_U64 *)val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         __atomic_load((CRYPTO_ATOMIC_U64 *)val, (CRYPTO_ATOMIC_U64 *)ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       __ATOMIC_ACQUIRE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 7028811aba273f2457d1c3d2fa03a62c41ac932a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: xtkoba <69125751+xtkoba@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 12 Sep 2021 07:13:01 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 7/8] Update crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include/openssl/crypto.h.in | 4 +++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 3 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git include/openssl/crypto.h.in include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 154a2039d1a8..076640066e4e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ include/openssl/crypto.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -85,10 +85,12 @@ __owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# ifdef __GNUC__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if defined(__GNUC__) && !defined(OPENSSL_NO_STDINT_H)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef __attribute__((__aligned__(8))) uint64_t CRYPTO_ATOMIC_U64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define CRYPTO_ATOMIC_IS_ALIGNED_U64(val) (((uintptr_t)(val) & (8 - 1)) == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef uint64_t CRYPTO_ATOMIC_U64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define CRYPTO_ATOMIC_IS_ALIGNED_U64(val) (1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From b5d7c5a0c443093790baae8d9061b140d5a65926 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: xtkoba <69125751+xtkoba@users.noreply.github.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 12 Sep 2021 07:15:13 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 8/8] Update threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crypto/threads_pthread.c | 18 +++++++++++-------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 11 insertions(+), 7 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git crypto/threads_pthread.c crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f85f0d7bdb01..8425030a71e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ crypto/threads_pthread.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -216,9 +216,11 @@ int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__GNUC__) && defined(__ATOMIC_ACQ_REL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (__atomic_is_lock_free(sizeof(*val), (CRYPTO_ATOMIC_U64 *)val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        *ret = __atomic_or_fetch((CRYPTO_ATOMIC_U64 *)val, op, __ATOMIC_ACQ_REL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (CRYPTO_ATOMIC_IS_ALIGNED_U64(val) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        __atomic_is_lock_free(sizeof(*val), (CRYPTO_ATOMIC_U64 *)val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            *ret = __atomic_or_fetch((CRYPTO_ATOMIC_U64 *)val, op,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                     __ATOMIC_ACQ_REL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # elif defined(__sun) && (defined(__SunOS_5_10) || defined(__SunOS_5_11))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* This will work for all future Solaris versions. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -241,10 +243,12 @@ int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__GNUC__) && defined(__ATOMIC_ACQUIRE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (__atomic_is_lock_free(sizeof(*val), (CRYPTO_ATOMIC_U64 *)val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        __atomic_load((CRYPTO_ATOMIC_U64 *)val, (CRYPTO_ATOMIC_U64 *)ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                      __ATOMIC_ACQUIRE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (CRYPTO_ATOMIC_IS_ALIGNED_U64(val) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        CRYPTO_ATOMIC_IS_ALIGNED_U64(ret) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        __atomic_is_lock_free(sizeof(*val), (CRYPTO_ATOMIC_U64 *)val)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            __atomic_load((CRYPTO_ATOMIC_U64 *)val, (CRYPTO_ATOMIC_U64 *)ret,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          __ATOMIC_ACQUIRE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # elif defined(__sun) && (defined(__SunOS_5_10) || defined(__SunOS_5_11))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* This will work for all future Solaris versions. */
</span></pre><pre style='margin:0'>

</pre>