Merge #180478: curl: fix build on certain platforms

...into staging
This commit is contained in:
Vladimír Čunát 2022-07-20 20:26:37 +02:00
commit ddfcb5ba68
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
3 changed files with 58 additions and 0 deletions

View File

@ -0,0 +1,30 @@
From 50efb0822aa0e0ab165158dd0a26e65a2290e6d2 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Tue, 28 Jun 2022 09:00:25 +0200
Subject: [PATCH] easy_lock: switch to using atomic_int instead of bool
To work with more compilers without requiring separate libs to
link. Like with gcc-12 for RISC-V on Linux.
Reported-by: Adam Sampson
Fixes #9055
Closes #9061
---
lib/easy_lock.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/easy_lock.h b/lib/easy_lock.h
index 07c85c5ffdd19..9c11bc50c5f20 100644
--- a/lib/easy_lock.h
+++ b/lib/easy_lock.h
@@ -40,8 +40,8 @@
#include <sched.h>
#endif
-#define curl_simple_lock atomic_bool
-#define CURL_SIMPLE_LOCK_INIT false
+#define curl_simple_lock atomic_int
+#define CURL_SIMPLE_LOCK_INIT 0
static inline void curl_simple_lock_lock(curl_simple_lock *lock)
{

View File

@ -60,6 +60,8 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
./7.79.1-darwin-no-systemconfiguration.patch
./sched.patch
./atomic.patch
] ++ lib.optional patchNetrcRegression ./netrc-regression.patch;
outputs = [ "bin" "dev" "out" "man" "devdoc" ];

View File

@ -0,0 +1,26 @@
From e2e7f54b7bea521fa8373095d0f43261a720cda0 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Mon, 27 Jun 2022 08:46:21 +0200
Subject: [PATCH] easy_lock.h: include sched.h if available to fix build
Patched-by: Harry Sintonen
Closes #9054
---
lib/easy_lock.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/easy_lock.h b/lib/easy_lock.h
index 819f50ce815b8..1f54289ceb2d3 100644
--- a/lib/easy_lock.h
+++ b/lib/easy_lock.h
@@ -36,6 +36,9 @@
#elif defined (HAVE_ATOMIC)
#include <stdatomic.h>
+#if defined(HAVE_SCHED_YIELD)
+#include <sched.h>
+#endif
#define curl_simple_lock atomic_bool
#define CURL_SIMPLE_LOCK_INIT false