[PATCH] gnu: curl: Fix build on powerpc64le-linux

  • Done
  • quality assurance status badge
Details
One participant
  • Thiago Jung Bauermann
Owner
unassigned
Submitted by
Thiago Jung Bauermann
Severity
normal
T
T
Thiago Jung Bauermann wrote on 3 Jul 2022 13:16
(address . guix-patches@gnu.org)(name . Thiago Jung Bauermann)(address . bauermann@kolabnow.com)
20220703111632.98024-1-bauermann@kolabnow.com
* gnu/packages/patches/curl-include-sched-h.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/curl.scm (curl)[source]<patches>: New field.
---

Hello,

On powerpc64le-linux, “guix pull” is broken because the curl build fails
with:

Toggle snippet (7 lines)
In file included from easy.c:89:
easy_lock.h: In function ‘curl_simple_lock_lock’:
easy_lock.h:56:7: error: implicit declaration of function ‘sched_yield’ [-Werror=implicit-function-declaration]
56 | sched_yield();
| ^~~~~~~~~~~

So backport the upstream commit that fixed it.

gnu/local.mk | 1 +
gnu/packages/curl.scm | 3 +-
.../patches/curl-include-sched-h.patch | 29 +++++++++++++++++++
3 files changed, 32 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/curl-include-sched-h.patch

Toggle diff (63 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 3a56ad371dd0..98704d8f2a89 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -977,6 +977,7 @@ dist_patch_DATA = \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
%D%/packages/patches/cube-nocheck.patch \
+ %D%/packages/patches/curl-include-sched-h.patch \
%D%/packages/patches/curl-use-ssl-cert-env.patch \
%D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-CVE-2017-12836.patch \
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index ebc36eead2a5..20c2159299d3 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -153,7 +153,8 @@ (define curl-7.84.0
version ".tar.xz"))
(sha256
(base32
- "1f2xgj0wvys9xw50h7vcbaraavjr9rxx9n06x2xfbgs7ym1qn49d"))))
+ "1f2xgj0wvys9xw50h7vcbaraavjr9rxx9n06x2xfbgs7ym1qn49d"))
+ (patches (search-patches "curl-include-sched-h.patch"))))
(arguments (substitute-keyword-arguments (package-arguments curl)
((#:phases phases)
(cond
diff --git a/gnu/packages/patches/curl-include-sched-h.patch b/gnu/packages/patches/curl-include-sched-h.patch
new file mode 100644
index 000000000000..7ea794c016f0
--- /dev/null
+++ b/gnu/packages/patches/curl-include-sched-h.patch
@@ -0,0 +1,29 @@
+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(+)
+
+This patch is taken from curl's master branch to fix a build failure on
+powerpc64le-linux. See https://github.com/curl/curl/issues/9071
+
+diff --git a/lib/easy_lock.h b/lib/easy_lock.h
+index 819f50ce815b..1f54289ceb2d 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

base-commit: cec5a522e190447e64a0a0f193bccc67b7095c31
T
T
Thiago Jung Bauermann wrote on 3 Jul 2022 13:31
Re: bug#56367: Acknowledgement ([PATCH] gnu: curl: Fix build on powerpc64le-linux)
(address . 56367-done@debbugs.gnu.org)
87edz29zou.fsf@kolabnow.com
Between my noticing this problem yesterday night and preparing this
patch this morning, Efraim pushed the same fix in commit:

89fe091bb4f7 gnu: curl: Fix build on some systems.

So nothing to see here.

--
Thanks
Thiago
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 56367@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 56367
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch