summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support/libusb
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2023-01-20 17:23:45 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-01-24 22:06:51 +0000
commitee2f74bf52b0685a4158b9a4b4f8834e65dd0e34 (patch)
tree245d1017a1d5ef5c27e81b67cc2b49df47fdb81e /meta/recipes-support/libusb
parent8339c19719092dc8a38c055d90b3a52514a3af15 (diff)
downloadpoky-ee2f74bf52b0685a4158b9a4b4f8834e65dd0e34.tar.gz
libusb1: Link with latomic only if compiler has no atomic builtins
This makes build use compiler to decide from where to get atomics instead of assuming that it should always come from libatomic, helps sharing build artifacts with OSes which may not have libatomic installed because it is not required on those hosts. (From OE-Core rev: a026d9afcbe07a8324ca951ba3439373dcb3771c) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-support/libusb')
-rw-r--r--meta/recipes-support/libusb/libusb1/0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch46
-rw-r--r--meta/recipes-support/libusb/libusb1_1.0.26.bb1
2 files changed, 47 insertions, 0 deletions
diff --git a/meta/recipes-support/libusb/libusb1/0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch b/meta/recipes-support/libusb/libusb1/0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch
new file mode 100644
index 0000000000..3c223e0822
--- /dev/null
+++ b/meta/recipes-support/libusb/libusb1/0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch
@@ -0,0 +1,46 @@
1From 95e601ce116dd46ea7915c171976b85ea0905d58 Mon Sep 17 00:00:00 2001
2From: Lonnie Abelbeck <lonnie@abelbeck.com>
3Date: Sun, 8 May 2022 14:05:56 -0500
4Subject: [PATCH] configure.ac: Link with -latomic only if no atomic builtins
5
6Follow-up to 561dbda, a check of GCC atomic builtins needs to be done
7first.
8
9I'm no autoconf guru, but using this:
10https://github.com/mesa3d/mesa/blob/0df485c285b73c34ba9062f0c27e55c3c702930d/configure.ac#L469
11as inspiration, I created a pre-check before calling AC_SEARCH_LIBS(...)
12
13Fixes #1135
14Closes #1139
15Upstream-Status: Backport [https://github.com/kraj/libusb/commit/95e601ce116dd46ea7915c171976b85ea0905d58]
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17---
18 configure.ac | 16 +++++++++++++++-
19 libusb/version_nano.h | 2 +-
20 2 files changed, 16 insertions(+), 2 deletions(-)
21
22--- a/configure.ac
23+++ b/configure.ac
24@@ -153,7 +153,21 @@ if test "x$platform" = xposix; then
25 AC_SEARCH_LIBS([pthread_create], [pthread],
26 [test "x$ac_cv_search_pthread_create" != "xnone required" && AC_SUBST(THREAD_LIBS, [-lpthread])],
27 [], [])
28- AC_SEARCH_LIBS([__atomic_fetch_add_4], [atomic])
29+ dnl Check for new-style atomic builtins. We first check without linking to -latomic.
30+ AC_MSG_CHECKING(whether __atomic_load_n is supported)
31+ AC_LINK_IFELSE([AC_LANG_SOURCE([[
32+ #include <stdint.h>
33+ int main() {
34+ struct {
35+ uint64_t *v;
36+ } x;
37+ return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) &
38+ (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL);
39+ }]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes, GCC_ATOMIC_BUILTINS_SUPPORTED=no)
40+ AC_MSG_RESULT($GCC_ATOMIC_BUILTINS_SUPPORTED)
41+ if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" != xyes; then
42+ AC_SEARCH_LIBS([__atomic_fetch_add_4], [atomic])
43+ fi
44 elif test "x$platform" = xwindows; then
45 AC_DEFINE([PLATFORM_WINDOWS], [1], [Define to 1 if compiling for a Windows platform.])
46 else
diff --git a/meta/recipes-support/libusb/libusb1_1.0.26.bb b/meta/recipes-support/libusb/libusb1_1.0.26.bb
index 7371faf017..301e60c14f 100644
--- a/meta/recipes-support/libusb/libusb1_1.0.26.bb
+++ b/meta/recipes-support/libusb/libusb1_1.0.26.bb
@@ -11,6 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
11BBCLASSEXTEND = "native nativesdk" 11BBCLASSEXTEND = "native nativesdk"
12 12
13SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \ 13SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \
14 file://0001-configure.ac-Link-with-latomic-only-if-no-atomic-bui.patch \
14 file://run-ptest \ 15 file://run-ptest \
15 " 16 "
16 17