From 13d2bf6a34f4182c5c8bdd280d1ffd4caac3844a Mon Sep 17 00:00:00 2001 From: He Zhe Date: Tue, 12 Jul 2022 15:47:57 +0800 Subject: [PATCH] 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 Signed-off-by: He Zhe Signed-off-by: Richard Purdie --- meta/recipes-support/curl/curl_7.84.0.bb | 1 + ...-to-using-atomic_int-instead-of-bool.patch | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 meta/recipes-support/curl/files/0001-easy_lock-switch-to-using-atomic_int-instead-of-bool.patch diff --git a/meta/recipes-support/curl/curl_7.84.0.bb b/meta/recipes-support/curl/curl_7.84.0.bb index 0d829cdf238..28b09ef0173 100644 --- a/meta/recipes-support/curl/curl_7.84.0.bb +++ b/meta/recipes-support/curl/curl_7.84.0.bb @@ -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 \ " diff --git a/meta/recipes-support/curl/files/0001-easy_lock-switch-to-using-atomic_int-instead-of-bool.patch b/meta/recipes-support/curl/files/0001-easy_lock-switch-to-using-atomic_int-instead-of-bool.patch new file mode 100644 index 00000000000..878839a5e33 --- /dev/null +++ b/meta/recipes-support/curl/files/0001-easy_lock-switch-to-using-atomic_int-instead-of-bool.patch @@ -0,0 +1,37 @@ +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 + +Upstream-Status: Backport [50efb0822aa0e0ab165158dd0a26e65a2290e6d2] + +Signed-off-by: He Zhe +--- + 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 + #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 + -- 2.47.3