From 5bb4355ad45579deba552649a1e5854000f004bc Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Thu, 7 Jul 2022 17:42:46 +0800 Subject: curl: fix build on certain platforms --- pkgs/tools/networking/curl/atomic.patch | 30 ++++++++++++++++++++++++++++++ pkgs/tools/networking/curl/default.nix | 2 ++ pkgs/tools/networking/curl/sched.patch | 26 ++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 pkgs/tools/networking/curl/atomic.patch create mode 100644 pkgs/tools/networking/curl/sched.patch (limited to 'pkgs/tools/networking/curl') diff --git a/pkgs/tools/networking/curl/atomic.patch b/pkgs/tools/networking/curl/atomic.patch new file mode 100644 index 0000000000000..77ee610fc117a --- /dev/null +++ b/pkgs/tools/networking/curl/atomic.patch @@ -0,0 +1,30 @@ +From 50efb0822aa0e0ab165158dd0a26e65a2290e6d2 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg +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 + #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) + { diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix index 38861d36252e7..04bd0bb27cdfe 100644 --- a/pkgs/tools/networking/curl/default.nix +++ b/pkgs/tools/networking/curl/default.nix @@ -77,6 +77,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" ]; diff --git a/pkgs/tools/networking/curl/sched.patch b/pkgs/tools/networking/curl/sched.patch new file mode 100644 index 0000000000000..33f08fa42f249 --- /dev/null +++ b/pkgs/tools/networking/curl/sched.patch @@ -0,0 +1,26 @@ +From e2e7f54b7bea521fa8373095d0f43261a720cda0 Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg +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 ++#if defined(HAVE_SCHED_YIELD) ++#include ++#endif + + #define curl_simple_lock atomic_bool + #define CURL_SIMPLE_LOCK_INIT false -- cgit 1.4.1