diff options
Diffstat (limited to 'meta/recipes-support/libusb/libusb1')
3 files changed, 75 insertions, 19 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 @@ +From 95e601ce116dd46ea7915c171976b85ea0905d58 Mon Sep 17 00:00:00 2001 +From: Lonnie Abelbeck <lonnie@abelbeck.com> +Date: Sun, 8 May 2022 14:05:56 -0500 +Subject: [PATCH] configure.ac: Link with -latomic only if no atomic builtins + +Follow-up to 561dbda, a check of GCC atomic builtins needs to be done +first. + +I'm no autoconf guru, but using this: +https://github.com/mesa3d/mesa/blob/0df485c285b73c34ba9062f0c27e55c3c702930d/configure.ac#L469 +as inspiration, I created a pre-check before calling AC_SEARCH_LIBS(...) + +Fixes #1135 +Closes #1139 +Upstream-Status: Backport [https://github.com/kraj/libusb/commit/95e601ce116dd46ea7915c171976b85ea0905d58] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 16 +++++++++++++++- + libusb/version_nano.h | 2 +- + 2 files changed, 16 insertions(+), 2 deletions(-) + +--- a/configure.ac ++++ b/configure.ac +@@ -153,7 +153,21 @@ if test "x$platform" = xposix; then + AC_SEARCH_LIBS([pthread_create], [pthread], + [test "x$ac_cv_search_pthread_create" != "xnone required" && AC_SUBST(THREAD_LIBS, [-lpthread])], + [], []) +- AC_SEARCH_LIBS([__atomic_fetch_add_4], [atomic]) ++ dnl Check for new-style atomic builtins. We first check without linking to -latomic. ++ AC_MSG_CHECKING(whether __atomic_load_n is supported) ++ AC_LINK_IFELSE([AC_LANG_SOURCE([[ ++ #include <stdint.h> ++ int main() { ++ struct { ++ uint64_t *v; ++ } x; ++ return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & ++ (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); ++ }]])], GCC_ATOMIC_BUILTINS_SUPPORTED=yes, GCC_ATOMIC_BUILTINS_SUPPORTED=no) ++ AC_MSG_RESULT($GCC_ATOMIC_BUILTINS_SUPPORTED) ++ if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" != xyes; then ++ AC_SEARCH_LIBS([__atomic_fetch_add_4], [atomic]) ++ fi + elif test "x$platform" = xwindows; then + AC_DEFINE([PLATFORM_WINDOWS], [1], [Define to 1 if compiling for a Windows platform.]) + else diff --git a/meta/recipes-support/libusb/libusb1/no-dll.patch b/meta/recipes-support/libusb/libusb1/no-dll.patch deleted file mode 100644 index 6e6bb83d1f..0000000000 --- a/meta/recipes-support/libusb/libusb1/no-dll.patch +++ /dev/null @@ -1,19 +0,0 @@ -As all invokes all-recursive which uses sub-makes to invoke all-am, the -resulting makefile wants to build libusb-1.0.la twice. In non-parallel builds -the second attempt is skipped as the target already exists, but in highly -parallel builds it's likely that two makes will be building libusb-1.0.la at the -same time. - -Solve this by removing the explicit all target, which as libusb-1.0.dll isn't -built under Linux is redundant anyway. - -Upstream-Status: Pending -Signed-off-by: Ross Burton <ross.burton@intel.com> - -diff --git a/libusb/Makefile.am b/libusb/Makefile.am -index 0cab0a0..c880213 100644 ---- a/libusb/Makefile.am -+++ b/libusb/Makefile.am -@@ -1,2 +0,0 @@ --all: libusb-1.0.la libusb-1.0.dll -- diff --git a/meta/recipes-support/libusb/libusb1/run-ptest b/meta/recipes-support/libusb/libusb1/run-ptest new file mode 100755 index 0000000000..eaa47a2bc4 --- /dev/null +++ b/meta/recipes-support/libusb/libusb1/run-ptest @@ -0,0 +1,29 @@ +#!/bin/sh + +echo +echo "---------------------------- libusb1 tests ---------------------------" +echo + +./stress | { \ +while read -r str +do + echo "$str" + if [ "${str#*Starting test run:}" != "$str" ] + then + name="${str#Starting test run: }" + name="${name%...}" + else + case "$str" in + "Success (0)") + echo "PASS: $name" + ;; + "Failure (1)" | "Error (2)") + echo "FAIL: $name" + ;; + "Skip (3)") + echo "SKIP: $name" + ;; + esac + fi +done +} |