curl: Fix build failure for qemuriscv64

Backport a patch from upstream to fix the following build failure.

tmp-glibc/work/riscv64-wrs-linux/curl/7.84.0-r0/recipe-sysroot-native/
usr/bin/riscv64-wrs-linux/../../libexec/riscv64-wrs-linux/gcc/
riscv64-wrs-linux/12.1.0/ld: ../lib/.libs/libcurl.so:
undefined reference to `__atomic_exchange_1'
collect2: error: ld returned 1 exit status

(From OE-Core rev: 13d2bf6a34f4182c5c8bdd280d1ffd4caac3844a)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
He Zhe
2022-07-12 15:47:57 +08:00
committed by Richard Purdie
parent fcc6a89dcb
commit 3a5b5bc977
2 changed files with 38 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=190c514872597083303371684954f238"
SRC_URI = " \
https://curl.se/download/${BP}.tar.xz \
file://0001-easy_lock.h-include-sched.h-if-available-to-fix-buil.patch \
file://0001-easy_lock-switch-to-using-atomic_int-instead-of-bool.patch \
file://run-ptest \
file://disable-tests \
"

View File

@@ -0,0 +1,37 @@
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
Upstream-Status: Backport [50efb0822aa0e0ab165158dd0a26e65a2290e6d2]
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
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 07c85c5ff..9c11bc50c 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)
{
--
2.25.1