-
Notifications
You must be signed in to change notification settings - Fork 35
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1417 from vpodzime/master-deps-2024-05-13_11_32_4…
…2_581739 Dependency updates
- Loading branch information
Showing
55 changed files
with
671 additions
and
106 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
503a7da4a4a27fd496037998b17078dc9fe004db32c657c96cce8356b8aa2eb6 httpd-2.4.58.tar.gz | ||
e4ec4ce12c6c8f5a794dc2263d126cb1d6ef667f034c4678ec945d61286e8b0f httpd-2.4.59.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
839d75c91ddfa9f7534f7b0888e462e3ad1422bb8ef12ec35f6261cea18efe33 git-2.42.1.tar.gz | ||
10acb581993061e616be9c5674469335922025a666318e0748cb8306079fef24 git-2.45.1.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
760c61c68901b37fdd5eefeeaf4c0c7a26bdfdd8ac747a1edff1ce0e243c11af acl-2.3.1.tar.gz | ||
5f2bdbad629707aa7d85c623f994aa8a1d2dec55a73de5205bac0bf6058a2f7c acl-2.3.2.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
bae1c6949b258a0d68001367ce0c741cebdacdd3b62965d17e5eb23cd78adaf8 attr-2.5.1.tar.gz | ||
39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87 attr-2.5.2.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
816e41809c043ff285e8c0f06a75a1fa250211bbfb2dc0a037eeef39f1a9e427 curl-8.4.0.tar.gz | ||
f91249c87f68ea00cf27c44fdfa5a78423e41e71b7d408e5901a9896d905c495 curl-8.7.1.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
816e41809c043ff285e8c0f06a75a1fa250211bbfb2dc0a037eeef39f1a9e427 curl-8.4.0.tar.gz | ||
f91249c87f68ea00cf27c44fdfa5a78423e41e71b7d408e5901a9896d905c495 curl-8.7.1.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
3727b078c360ec69fa869de14bd6f75d7ee8d36987b071e6928d4720a28df3a6 libxml2-2.11.5.tar.xz | ||
889c593a881a3db5fdd96cc9318c87df34eb648edfc458272ad46fd607353fbb libxml2-2.12.6.tar.xz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
https://download.gnome.org/sources/libxml2/2.11/ | ||
https://download.gnome.org/sources/libxml2/2.12/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
f7aecdd1bcc69fb32bb33d8544cfe50f8e9e916f366d598a268e1f43ee9c7603 openldap-LMDB_0.9.31.tar.gz | ||
c0937223bba3c37c896809883a3c9b43049354578b239d6ed2476236a87f40c9 openldap-LMDB_0.9.32.tar.gz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
https://git.openldap.org/openldap/openldap/-/archive/LMDB_0.9.31/ | ||
https://git.openldap.org/openldap/openldap/-/archive/LMDB_0.9.32/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
082e998cf542984d43634442dbe11da860759e510907152ea579bdc42fe39ea0 openldap-2.6.6.tgz | ||
cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930 openldap-2.6.7.tgz |
28 changes: 0 additions & 28 deletions
28
deps-packaging/openssl/0004-Add-lmsvcr100-to-extra-libs-on-mingw-builds.patch
This file was deleted.
Oops, something went wrong.
192 changes: 192 additions & 0 deletions
192
deps-packaging/openssl/0007-Avoid-using-Interlocked-64-Windows-functions.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,192 @@ | ||
From 03111c77b640febbfaefc9ab6519e85f8b595100 Mon Sep 17 00:00:00 2001 | ||
From: Vratislav Podzimek <[email protected]> | ||
Date: Tue, 14 May 2024 13:23:40 +0200 | ||
Subject: [PATCH] Avoid using Interlocked*64() Windows functions if not | ||
available | ||
|
||
InterlockedAnd64() and others are not available on VS2010 | ||
x86. There are already implementations of replacements for other | ||
functions, such as InterlockedOr64(). Apply the same approach to | ||
fix the errors. | ||
|
||
Inspired by openssl/openssl#24326. | ||
--- | ||
crypto/threads_win.c | 81 ++++++++++++++++++++++++++++++++++++++------ | ||
1 file changed, 71 insertions(+), 10 deletions(-) | ||
|
||
diff --git a/crypto/threads_win.c b/crypto/threads_win.c | ||
index 8428869963..36d38aa919 100644 | ||
--- a/crypto/threads_win.c | ||
+++ b/crypto/threads_win.c | ||
@@ -23,7 +23,7 @@ | ||
* only VC++ 2008 or earlier x86 compilers. | ||
*/ | ||
|
||
-#if (defined(_MSC_VER) && defined(_M_IX86) && _MSC_VER <= 1600) | ||
+#if defined(_M_IX86) | ||
# define NO_INTERLOCKEDOR64 | ||
#endif | ||
|
||
@@ -104,8 +104,15 @@ struct rcu_lock_st { | ||
CRYPTO_CONDVAR *alloc_signal; | ||
CRYPTO_MUTEX *prior_lock; | ||
CRYPTO_CONDVAR *prior_signal; | ||
+ CRYPTO_RWLOCK *rw_lock; | ||
}; | ||
|
||
+static int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, | ||
+ CRYPTO_RWLOCK *lock); | ||
+ | ||
+static int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, | ||
+ CRYPTO_RWLOCK *lock); | ||
+ | ||
/* | ||
* Called on thread exit to free the pthread key | ||
* associated with this thread, if any | ||
@@ -154,6 +161,7 @@ CRYPTO_RCU_LOCK *ossl_rcu_lock_new(int num_writers) | ||
return NULL; | ||
|
||
new->write_lock = ossl_crypto_mutex_new(); | ||
+ new->rw_lock = CRYPTO_THREAD_lock_new(); | ||
new->alloc_signal = ossl_crypto_condvar_new(); | ||
new->prior_signal = ossl_crypto_condvar_new(); | ||
new->alloc_lock = ossl_crypto_mutex_new(); | ||
@@ -165,13 +173,15 @@ CRYPTO_RCU_LOCK *ossl_rcu_lock_new(int num_writers) | ||
|| new->prior_signal == NULL | ||
|| new->write_lock == NULL | ||
|| new->alloc_lock == NULL | ||
- || new->prior_lock == NULL) { | ||
+ || new->prior_lock == NULL | ||
+ || new->rw_lock == NULL) { | ||
OPENSSL_free(new->qp_group); | ||
ossl_crypto_condvar_free(&new->alloc_signal); | ||
ossl_crypto_condvar_free(&new->prior_signal); | ||
ossl_crypto_mutex_free(&new->alloc_lock); | ||
ossl_crypto_mutex_free(&new->prior_lock); | ||
ossl_crypto_mutex_free(&new->write_lock); | ||
+ CRYPTO_THREAD_lock_free(new->rw_lock); | ||
OPENSSL_free(new); | ||
new = NULL; | ||
} | ||
@@ -187,20 +197,27 @@ void ossl_rcu_lock_free(CRYPTO_RCU_LOCK *lock) | ||
ossl_crypto_mutex_free(&lock->alloc_lock); | ||
ossl_crypto_mutex_free(&lock->prior_lock); | ||
ossl_crypto_mutex_free(&lock->write_lock); | ||
+ CRYPTO_THREAD_lock_free(lock->rw_lock); | ||
OPENSSL_free(lock); | ||
} | ||
|
||
static inline struct rcu_qp *get_hold_current_qp(CRYPTO_RCU_LOCK *lock) | ||
{ | ||
uint32_t qp_idx; | ||
+ uint32_t tmp; | ||
+ uint64_t tmp64; | ||
|
||
/* get the current qp index */ | ||
for (;;) { | ||
- qp_idx = InterlockedOr(&lock->reader_idx, 0); | ||
- InterlockedAdd64(&lock->qp_group[qp_idx].users, VAL_READER); | ||
- if (qp_idx == InterlockedOr(&lock->reader_idx, 0)) | ||
+ CRYPTO_atomic_load_int(&lock->reader_idx, (int *)&qp_idx, | ||
+ lock->rw_lock); | ||
+ CRYPTO_atomic_add64(&lock->qp_group[qp_idx].users, VAL_READER, &tmp64, | ||
+ lock->rw_lock); | ||
+ CRYPTO_atomic_load_int(&lock->reader_idx, (int *)&tmp, lock->rw_lock); | ||
+ if (qp_idx == tmp) | ||
break; | ||
- InterlockedAdd64(&lock->qp_group[qp_idx].users, -VAL_READER); | ||
+ CRYPTO_atomic_add64(&lock->qp_group[qp_idx].users, -VAL_READER, &tmp64, | ||
+ lock->rw_lock); | ||
} | ||
|
||
return &lock->qp_group[qp_idx]; | ||
@@ -264,7 +281,9 @@ void ossl_rcu_read_unlock(CRYPTO_RCU_LOCK *lock) | ||
if (data->thread_qps[i].lock == lock) { | ||
data->thread_qps[i].depth--; | ||
if (data->thread_qps[i].depth == 0) { | ||
- ret = InterlockedAdd64(&data->thread_qps[i].qp->users, -VAL_READER); | ||
+ CRYPTO_atomic_add64(&data->thread_qps[i].qp->users, | ||
+ -VAL_READER, (uint64_t *)&ret, | ||
+ lock->rw_lock); | ||
OPENSSL_assert(ret >= 0); | ||
data->thread_qps[i].qp = NULL; | ||
data->thread_qps[i].lock = NULL; | ||
@@ -279,6 +298,7 @@ static struct rcu_qp *update_qp(CRYPTO_RCU_LOCK *lock) | ||
uint64_t new_id; | ||
uint32_t current_idx; | ||
uint32_t tmp; | ||
+ uint64_t tmp64; | ||
|
||
ossl_crypto_mutex_lock(lock->alloc_lock); | ||
/* | ||
@@ -302,8 +322,10 @@ static struct rcu_qp *update_qp(CRYPTO_RCU_LOCK *lock) | ||
lock->id_ctr++; | ||
|
||
new_id = VAL_ID(new_id); | ||
- InterlockedAnd64(&lock->qp_group[current_idx].users, ID_MASK); | ||
- InterlockedAdd64(&lock->qp_group[current_idx].users, new_id); | ||
+ CRYPTO_atomic_and(&lock->qp_group[current_idx].users, ID_MASK, &tmp64, | ||
+ lock->rw_lock); | ||
+ CRYPTO_atomic_add64(&lock->qp_group[current_idx].users, new_id, &tmp64, | ||
+ lock->rw_lock); | ||
|
||
/* update the reader index to be the prior qp */ | ||
tmp = lock->current_alloc_idx; | ||
@@ -338,7 +360,7 @@ void ossl_synchronize_rcu(CRYPTO_RCU_LOCK *lock) | ||
|
||
/* wait for the reader count to reach zero */ | ||
do { | ||
- count = InterlockedOr64(&qp->users, 0); | ||
+ CRYPTO_atomic_load(&qp->users, &count, lock->rw_lock); | ||
} while (READER_COUNT(count) != 0); | ||
|
||
/* retire in order */ | ||
@@ -566,6 +588,45 @@ int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b) | ||
return (a == b); | ||
} | ||
|
||
+static int CRYPTO_atomic_add64(uint64_t *val, uint64_t op, uint64_t *ret, | ||
+ CRYPTO_RWLOCK *lock) | ||
+{ | ||
+#if (defined(NO_INTERLOCKEDOR64)) | ||
+ if (lock == NULL || !CRYPTO_THREAD_write_lock(lock)) | ||
+ return 0; | ||
+ *val += op; | ||
+ *ret = *val; | ||
+ | ||
+ if (!CRYPTO_THREAD_unlock(lock)) | ||
+ return 0; | ||
+ | ||
+ return 1; | ||
+#else | ||
+ *ret = (uint64_t)InterlockedAdd64((LONG64 volatile *)val, (LONG64)op); | ||
+ return 1; | ||
+#endif | ||
+} | ||
+ | ||
+static int CRYPTO_atomic_and(uint64_t *val, uint64_t op, uint64_t *ret, | ||
+ CRYPTO_RWLOCK *lock) | ||
+{ | ||
+#if (defined(NO_INTERLOCKEDOR64)) | ||
+ if (lock == NULL || !CRYPTO_THREAD_write_lock(lock)) | ||
+ return 0; | ||
+ *val &= op; | ||
+ *ret = *val; | ||
+ | ||
+ if (!CRYPTO_THREAD_unlock(lock)) | ||
+ return 0; | ||
+ | ||
+ return 1; | ||
+#else | ||
+ *ret = (uint64_t)InterlockedAnd64((LONG64 volatile *)val, (LONG64)op) & op; | ||
+ return 1; | ||
+#endif | ||
+} | ||
+ | ||
+ | ||
int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock) | ||
{ | ||
*ret = (int)InterlockedExchangeAdd((long volatile *)val, (long)amount) + amount; | ||
-- | ||
2.44.0 | ||
|
Oops, something went wrong.