From a9bc8a25eb9a5851062167a3475622ba6b1a8b9a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Jul 2021 15:42:10 +0200 Subject: gnu: Add FXDiv. * gnu/packages/maths.scm (fxdiv): New variable. * gnu/packages/patches/fxdiv-system-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index c80a9af78c..e6a2e4023f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1032,6 +1032,7 @@ dist_patch_DATA = \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freeimage-unbundle.patch \ %D%/packages/patches/fuse-overlapping-headers.patch \ + %D%/packages/patches/fxdiv-system-libraries.patch \ %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \ %D%/packages/patches/ganeti-deterministic-manual.patch \ %D%/packages/patches/ganeti-disable-version-symlinks.patch \ -- cgit v1.2.3 From 18d04fef0fea2c604b42c465782f3be647c2b947 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Jul 2021 14:25:17 +0200 Subject: gnu: Add pthreadpool. * gnu/packages/parallel.scm (pthreadpool): New variable. * gnu/packages/patches/pthreadpool-system-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/parallel.scm | 35 +++++++++- .../patches/pthreadpool-system-libraries.patch | 79 ++++++++++++++++++++++ 3 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/pthreadpool-system-libraries.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index e6a2e4023f..488ef3716d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1537,6 +1537,7 @@ dist_patch_DATA = \ %D%/packages/patches/pciutils-hurd-fix.patch \ %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \ %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \ + %D%/packages/patches/pthreadpool-system-libraries.patch \ %D%/packages/patches/samba-fix-fcntl-hint-detection.patch \ %D%/packages/patches/sdcc-disable-non-free-code.patch \ %D%/packages/patches/sdl-pango-api_additions.patch \ diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 42826f49d6..79387e5552 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 Clément Lassieur -;;; Copyright © 2019, 2020 Ludovic Courtès +;;; Copyright © 2019, 2020, 2021 Ludovic Courtès ;;; Copyright © 2020 Roel Janssen ;;; Copyright © 2021 Stefan Reichör ;;; @@ -44,6 +44,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages freeipmi) #:use-module (gnu packages linux) + #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -378,3 +379,35 @@ and output captured in the notebook. Whatever arguments are accepted by a SLURM command line executable are also accepted by the corresponding magic command---e.g., @code{%salloc}, @code{%sbatch}, etc.") (license license:bsd-3)))) + +(define-public pthreadpool + ;; This repository has only one tag, 0.1, which is older than what users + ;; such as XNNPACK expect. + (let ((commit "1787867f6183f056420e532eec640cba25efafea") + (version "0.1") + (revision "1")) + (package + (name "pthreadpool") + (version (git-version version revision commit)) + (home-page "https://github.com/Maratyszcza/pthreadpool") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02hdvxfn5krw8zivkgjx3b4rk9p02yr4mpdjlp75lsv6z1xf5yrx")) + (patches (search-patches "pthreadpool-system-libraries.patch")))) + (build-system cmake-build-system) + (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) + (inputs + `(("googletest" ,googletest) + ("googlebenchmark" ,googlebenchmark) + ("fxdiv" ,fxdiv))) + (synopsis "Efficient thread pool implementation") + (description + "The pthreadpool library implements an efficient and portable thread +pool, similar to those implemented by OpenMP run-time support libraries for +constructs such as @code{#pragma omp parallel for}, with additional +features.") + (license license:bsd-2)))) diff --git a/gnu/packages/patches/pthreadpool-system-libraries.patch b/gnu/packages/patches/pthreadpool-system-libraries.patch new file mode 100644 index 0000000000..3cfe9c1af6 --- /dev/null +++ b/gnu/packages/patches/pthreadpool-system-libraries.patch @@ -0,0 +1,79 @@ +This patch allows the build process to use the provided dependencies instead +of adding their source as CMake sub-directories (in which case "make install" +would install googletest's and googlebenchmark's libraries and headers). + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c1cba55..627550f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -36,7 +36,7 @@ MACRO(PTHREADPOOL_TARGET_ENABLE_CXX11 target) + ENDMACRO() + + # ---[ Download deps +-IF(NOT DEFINED FXDIV_SOURCE_DIR) ++IF(FALSE) + MESSAGE(STATUS "Downloading FXdiv to ${CMAKE_BINARY_DIR}/FXdiv-source (define FXDIV_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadFXdiv.cmake "${CMAKE_BINARY_DIR}/FXdiv-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +@@ -46,7 +46,7 @@ IF(NOT DEFINED FXDIV_SOURCE_DIR) + SET(FXDIV_SOURCE_DIR "${CMAKE_BINARY_DIR}/FXdiv-source" CACHE STRING "FXdiv source directory") + ENDIF() + +-IF(PTHREADPOOL_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) ++IF(FALSE) + MESSAGE(STATUS "Downloading Google Test to ${CMAKE_BINARY_DIR}/googletest-source (define GOOGLETEST_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +@@ -56,7 +56,7 @@ IF(PTHREADPOOL_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) + SET(GOOGLETEST_SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-source" CACHE STRING "Google Test source directory") + ENDIF() + +-IF(PTHREADPOOL_BUILD_BENCHMARKS AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR) ++IF(FALSE) + MESSAGE(STATUS "Downloading Google Benchmark to ${CMAKE_BINARY_DIR}/googlebenchmark-source (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CMAKE_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +@@ -150,27 +150,18 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") + ENDIF() + + # ---[ Configure FXdiv +-IF(NOT TARGET fxdiv) ++IF(FALSE) + SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") + SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") + ADD_SUBDIRECTORY( + "${FXDIV_SOURCE_DIR}" + "${CMAKE_BINARY_DIR}/FXdiv") + ENDIF() +-TARGET_LINK_LIBRARIES(pthreadpool PRIVATE fxdiv) +- + INSTALL(TARGETS pthreadpool + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + IF(PTHREADPOOL_BUILD_TESTS) +- # ---[ Build google test +- IF(NOT TARGET gtest) +- SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +- ADD_SUBDIRECTORY( +- "${GOOGLETEST_SOURCE_DIR}" +- "${CMAKE_BINARY_DIR}/googletest") +- ENDIF() + + ADD_EXECUTABLE(pthreadpool-test test/pthreadpool.cc) + SET_TARGET_PROPERTIES(pthreadpool-test PROPERTIES +@@ -188,14 +179,6 @@ IF(PTHREADPOOL_BUILD_TESTS) + ENDIF() + + IF(PTHREADPOOL_BUILD_BENCHMARKS) +- # ---[ Build google benchmark +- IF(NOT TARGET benchmark) +- SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "") +- ADD_SUBDIRECTORY( +- "${GOOGLEBENCHMARK_SOURCE_DIR}" +- "${CMAKE_BINARY_DIR}/googlebenchmark") +- ENDIF() +- + ADD_EXECUTABLE(latency-bench bench/latency.cc) + SET_TARGET_PROPERTIES(latency-bench PROPERTIES + CXX_STANDARD 11 -- cgit v1.2.3 From 4c5ad827808f6c9964c05c9777d02b200fa619bb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Jul 2021 14:41:46 +0200 Subject: gnu: Add cpuinfo. * gnu/packages/parallel.scm (cpuinfo): New variable. * gnu/packages/patches/cpuinfo-system-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/parallel.scm | 31 ++++++++++++++ .../patches/cpuinfo-system-libraries.patch | 50 ++++++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 gnu/packages/patches/cpuinfo-system-libraries.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 488ef3716d..3d07bc2700 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -929,6 +929,7 @@ dist_patch_DATA = \ %D%/packages/patches/combinatorial-blas-io-fix.patch \ %D%/packages/patches/coreutils-ls.patch \ %D%/packages/patches/cpufrequtils-fix-aclocal.patch \ + %D%/packages/patches/cpuinfo-system-libraries.patch \ %D%/packages/patches/crawl-upgrade-saves.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/clucene-contribs-lib.patch \ diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 79387e5552..b5914fdffa 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -31,6 +31,7 @@ (define-module (gnu packages parallel) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module ((guix licenses) #:prefix license:) @@ -41,6 +42,7 @@ #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages check) #:use-module (gnu packages flex) #:use-module (gnu packages freeipmi) #:use-module (gnu packages linux) @@ -411,3 +413,32 @@ pool, similar to those implemented by OpenMP run-time support libraries for constructs such as @code{#pragma omp parallel for}, with additional features.") (license license:bsd-2)))) + +(define-public cpuinfo + ;; There's currently no tag on this repo. + (let ((version "0.0") + (revision "1") + (commit "866ae6e5ffe93a1f63be738078da94cf3005cce2")) + (package + (name "cpuinfo") + (version (git-version version revision commit)) + (home-page "https://github.com/pytorch/cpuinfo") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lmsf4bpkm19a31i40qwcjn46qf7prggziv4pbsi695bkx5as71p")) + (patches (search-patches "cpuinfo-system-libraries.patch")))) + (build-system cmake-build-system) + (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) + (inputs + `(("googletest" ,googletest) + ("googlebenchmark" ,googlebenchmark))) + (synopsis "C/C++ library to obtain information about the CPU") + (description + "The cpuinfo library provides a C/C++ and a command-line interface to +obtain information about the CPU being used: supported instruction set, +processor name, cache information, and topology information.") + (license license:bsd-2)))) diff --git a/gnu/packages/patches/cpuinfo-system-libraries.patch b/gnu/packages/patches/cpuinfo-system-libraries.patch new file mode 100644 index 0000000000..e25446e9da --- /dev/null +++ b/gnu/packages/patches/cpuinfo-system-libraries.patch @@ -0,0 +1,50 @@ +This patch allows the build process to use the provided dependencies instead +of adding their source as CMake sub-directories (in which case "make install" +would install googletest's and googlebenchmark's libraries and headers). + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 57abc26..761c612 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -93,7 +93,7 @@ SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps + CACHE PATH "Confu-style dependencies binary directory") + + IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS) +- IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLETEST_SOURCE_DIR) ++ IF(FALSE) + MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +@@ -105,7 +105,7 @@ IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS) + ENDIF() + + IF(CPUINFO_BUILD_BENCHMARKS) +- IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR) ++ IF(FALSE) + MESSAGE(STATUS "Downloading Google Benchmark to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +@@ -271,14 +271,6 @@ INSTALL(TARGETS cpuinfo + + # ---[ cpuinfo micro-benchmarks + IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS) +- # ---[ Build google benchmark +- IF(NOT TARGET benchmark) +- SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "") +- ADD_SUBDIRECTORY( +- "${GOOGLEBENCHMARK_SOURCE_DIR}" +- "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark") +- ENDIF() +- + IF(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Android)$") + ADD_EXECUTABLE(get-current-bench bench/get-current.cc) + TARGET_LINK_LIBRARIES(get-current-bench cpuinfo benchmark) +@@ -289,7 +281,7 @@ IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS) + ENDIF() + + IF(CPUINFO_SUPPORTED_PLATFORM) +- IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS) ++ IF(FALSE) + # ---[ Build google test + IF(NOT TARGET gtest) + IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "static") -- cgit v1.2.3 From 1daa66272258231f9fcbd9929ba42c688861b842 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Jul 2021 16:41:35 +0200 Subject: gnu: Add FP16. * gnu/packages/patches/fp16-system-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/maths.scm (fp16): New variable. --- gnu/local.mk | 1 + gnu/packages/maths.scm | 30 +++++++ gnu/packages/patches/fp16-system-libraries.patch | 105 +++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 gnu/packages/patches/fp16-system-libraries.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 3d07bc2700..897bdcd0e4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1028,6 +1028,7 @@ dist_patch_DATA = \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/fontconfig-hurd-path-max.patch \ + %D%/packages/patches/fp16-system-libraries.patch \ %D%/packages/patches/fpc-reproducibility.patch \ %D%/packages/patches/fplll-std-fenv.patch \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index e170fd4db9..1afe72659a 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -6688,3 +6688,33 @@ multiplication. FXdiv implements an algorithm to replace an integer division with a multiplication and two shifts. This algorithm improves performance when an application performs repeated divisions by the same divisor.") (license license:expat)))) + +(define-public fp16 + ;; There is currently no tag in this repo. + (let ((commit "0a92994d729ff76a58f692d3028ca1b64b145d91") + (version "0.0") + (revision "1")) + (package + (name "fp16") + (version (git-version version revision commit)) + (home-page "https://github.com/Maratyszcza/FP16") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05mm4vrxsac35hjf5djif9r6rdxj9ippg97ia3p6q6b8lrp7srwv")) + (patches (search-patches "fp16-system-libraries.patch")))) + (build-system cmake-build-system) + (native-inputs + `(("python-wrapper" ,python-wrapper))) + (inputs + `(("psimd" ,psimd) + ("googletest" ,googletest) + ("googlebenchmark" ,googlebenchmark))) + (synopsis "C++ library for half-precision floating point formats") + (description + "This header-only C++ library implements conversion to and from +half-precision floating point formats.") + (license license:expat)))) diff --git a/gnu/packages/patches/fp16-system-libraries.patch b/gnu/packages/patches/fp16-system-libraries.patch new file mode 100644 index 0000000000..7f52936c14 --- /dev/null +++ b/gnu/packages/patches/fp16-system-libraries.patch @@ -0,0 +1,105 @@ +This patch allows the build process to use the provided dependencies instead +of adding their source as CMake sub-directories (in which case "make install" +would install googletest's and googlebenchmark's libraries and headers). + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5e7d127..4b269b9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,7 +28,7 @@ MACRO(FP16_TARGET_ENABLE_CXX11 target) + ENDMACRO() + + # ---[ Download deps +-IF(NOT DEFINED PSIMD_SOURCE_DIR) ++IF(FALSE) + MESSAGE(STATUS "Downloading PSimd to ${CMAKE_BINARY_DIR}/psimd-source (define PSIMD_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadPSimd.cmake "${CMAKE_BINARY_DIR}/psimd-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +@@ -38,7 +38,7 @@ IF(NOT DEFINED PSIMD_SOURCE_DIR) + SET(PSIMD_SOURCE_DIR "${CMAKE_BINARY_DIR}/psimd-source" CACHE STRING "PSimd source directory") + ENDIF() + +-IF(FP16_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) ++IF(FALSE) + MESSAGE(STATUS "Downloading Google Test to ${CMAKE_BINARY_DIR}/googletest-source (define GOOGLETEST_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +@@ -48,7 +48,7 @@ IF(FP16_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) + SET(GOOGLETEST_SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-source" CACHE STRING "Google Test source directory") + ENDIF() + +-IF(FP16_BUILD_BENCHMARKS AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR) ++IF(FALSE) + MESSAGE(STATUS "Downloading Google Benchmark to ${CMAKE_BINARY_DIR}/googlebenchmark-source (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)") + CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CMAKE_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt") + EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . +@@ -84,22 +84,7 @@ INSTALL(FILES + include/fp16/avx2.py + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fp16) + +-# ---[ Configure psimd +-IF(NOT TARGET psimd) +- ADD_SUBDIRECTORY( +- "${PSIMD_SOURCE_DIR}" +- "${CMAKE_BINARY_DIR}/psimd") +-ENDIF() +- + IF(FP16_BUILD_TESTS) +- # ---[ Build google test +- IF(NOT TARGET gtest) +- SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +- ADD_SUBDIRECTORY( +- "${GOOGLETEST_SOURCE_DIR}" +- "${CMAKE_BINARY_DIR}/googletest") +- ENDIF() +- + # ---[ Build FP16 unit tests + ADD_EXECUTABLE(ieee-to-fp32-bits-test test/ieee-to-fp32-bits.cc test/tables.cc) + TARGET_INCLUDE_DIRECTORIES(ieee-to-fp32-bits-test PRIVATE test) +@@ -137,40 +122,32 @@ IF(FP16_BUILD_TESTS) + ENDIF() + + IF(FP16_BUILD_BENCHMARKS) +- # ---[ Build google benchmark +- IF(NOT TARGET benchmark) +- SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "") +- ADD_SUBDIRECTORY( +- "${GOOGLEBENCHMARK_SOURCE_DIR}" +- "${CMAKE_BINARY_DIR}/googlebenchmark") +- ENDIF() +- + # ---[ Build FP16 benchmarks + ADD_EXECUTABLE(ieee-element-bench bench/ieee-element.cc) + TARGET_COMPILE_DEFINITIONS(ieee-element-bench PRIVATE FP16_COMPARATIVE_BENCHMARKS=1) + TARGET_INCLUDE_DIRECTORIES(ieee-element-bench PRIVATE ${PROJECT_SOURCE_DIR}) +- TARGET_LINK_LIBRARIES(ieee-element-bench fp16 psimd benchmark) ++ TARGET_LINK_LIBRARIES(ieee-element-bench fp16 benchmark) + + ADD_EXECUTABLE(alt-element-bench bench/alt-element.cc) +- TARGET_LINK_LIBRARIES(alt-element-bench fp16 psimd benchmark) ++ TARGET_LINK_LIBRARIES(alt-element-bench fp16 benchmark) + + ADD_EXECUTABLE(from-ieee-array-bench bench/from-ieee-array.cc) + FP16_TARGET_ENABLE_CXX11(from-ieee-array-bench) + TARGET_COMPILE_DEFINITIONS(from-ieee-array-bench PRIVATE FP16_COMPARATIVE_BENCHMARKS=1) + TARGET_INCLUDE_DIRECTORIES(from-ieee-array-bench PRIVATE ${PROJECT_SOURCE_DIR}) +- TARGET_LINK_LIBRARIES(from-ieee-array-bench fp16 psimd benchmark) ++ TARGET_LINK_LIBRARIES(from-ieee-array-bench fp16 benchmark) + + ADD_EXECUTABLE(from-alt-array-bench bench/from-alt-array.cc) + FP16_TARGET_ENABLE_CXX11(from-alt-array-bench) +- TARGET_LINK_LIBRARIES(from-alt-array-bench fp16 psimd benchmark) ++ TARGET_LINK_LIBRARIES(from-alt-array-bench fp16 benchmark) + + ADD_EXECUTABLE(to-ieee-array-bench bench/to-ieee-array.cc) + FP16_TARGET_ENABLE_CXX11(to-ieee-array-bench) + TARGET_COMPILE_DEFINITIONS(to-ieee-array-bench PRIVATE FP16_COMPARATIVE_BENCHMARKS=1) + TARGET_INCLUDE_DIRECTORIES(to-ieee-array-bench PRIVATE ${PROJECT_SOURCE_DIR}) +- TARGET_LINK_LIBRARIES(to-ieee-array-bench fp16 psimd benchmark) ++ TARGET_LINK_LIBRARIES(to-ieee-array-bench fp16 benchmark) + + ADD_EXECUTABLE(to-alt-array-bench bench/to-alt-array.cc) + FP16_TARGET_ENABLE_CXX11(to-alt-array-bench) +- TARGET_LINK_LIBRARIES(to-alt-array-bench fp16 psimd benchmark) ++ TARGET_LINK_LIBRARIES(to-alt-array-bench fp16 benchmark) + ENDIF() -- cgit v1.2.3 From b402a3ec86ebac4df4eed6a4030923bc62683d1d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Jul 2021 21:15:23 +0200 Subject: gnu: Add XNNPACK. * gnu/packages/machine-learning.scm (xnnpack): New variable. * gnu/packages/patches/xnnpack-system-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/machine-learning.scm | 50 + .../patches/xnnpack-system-libraries.patch | 1499 ++++++++++++++++++++ 3 files changed, 1550 insertions(+) create mode 100644 gnu/packages/patches/xnnpack-system-libraries.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 897bdcd0e4..faf963def2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1859,6 +1859,7 @@ dist_patch_DATA = \ %D%/packages/patches/xfce4-panel-plugins.patch \ %D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xmonad-dynamic-linking.patch \ + %D%/packages/patches/xnnpack-system-libraries.patch \ %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \ %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \ %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 952872e468..4ac1fb5ab5 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -70,6 +70,7 @@ #:use-module (gnu packages mpi) #:use-module (gnu packages ocaml) #:use-module (gnu packages onc-rpc) + #:use-module (gnu packages parallel) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) @@ -2229,3 +2230,52 @@ These include a barrier, broadcast, and allreduce.") technique that can be used for visualisation similarly to t-SNE, but also for general non-linear dimension reduction.") (license license:bsd-3))) + +(define-public xnnpack + ;; There's currently no tag on this repo. + (let ((version "0.0") + (commit "bbe88243aba847f6a3dd86defec0fea4a0e415a1") + (revision "1")) + (package + (name "xnnpack") + (version (git-version version revision commit)) + (home-page "https://github.com/google/XNNPACK") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19j605x1l2h95mjhcj90zwjh1153pdgmqggl35ya5w0wll628iiz")) + (patches (search-patches "xnnpack-system-libraries.patch")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DXNNPACK_USE_SYSTEM_LIBS=YES" + "-DBUILD_SHARED_LIBS=ON" + "-DXNNPACK_LIBRARY_TYPE=shared" + "-DXNNPACK_BUILD_TESTS=FALSE" ;FIXME: see below + "-DXNNPACK_BUILD_BENCHMARKS=FALSE") + + ;; FIXME: Building tests leads to a CMake error: + ;; + ;; ADD_LIBRARY cannot create target "all_microkernels" because + ;; another target with the same name already exists. + #:tests? #f)) + (inputs + `(("cpuinfo" ,cpuinfo) + ("pthreadpool" ,pthreadpool) + ("googletest" ,googletest) + ("googlebenchmark" ,googlebenchmark) + ("fxdiv" ,fxdiv) + ("fp16" ,fp16) + ("psimd" ,psimd))) + (synopsis "Optimized floating-point neural network inference operators") + (description + "XNNPACK is a highly optimized library of floating-point neural network +inference operators for ARM, WebAssembly, and x86 platforms. XNNPACK is not +intended for direct use by deep learning practitioners and researchers; +instead it provides low-level performance primitives for accelerating +high-level machine learning frameworks, such as TensorFlow Lite, +TensorFlow.js, PyTorch, and MediaPipe.") + (license license:bsd-3)))) + diff --git a/gnu/packages/patches/xnnpack-system-libraries.patch b/gnu/packages/patches/xnnpack-system-libraries.patch new file mode 100644 index 0000000000..ed4a5d93d3 --- /dev/null +++ b/gnu/packages/patches/xnnpack-system-libraries.patch @@ -0,0 +1,1499 @@ +This patch allows the build process to use the provided dependencies instead +of adding their source as CMake sub-directories (in which case "make install" +would install googletest's and googlebenchmark's libraries and headers). + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 177b98d5..937385c3 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -4972,9 +4972,6 @@ IF(NOT TARGET pthreadpool) + ENDIF() + ENDIF() + TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool) +-TARGET_LINK_LIBRARIES(all_microkernels PRIVATE pthreadpool) +-TARGET_LINK_LIBRARIES(packing PRIVATE pthreadpool) +-TARGET_LINK_LIBRARIES(indirection PRIVATE pthreadpool) + + # ---[ Configure FXdiv + IF(NOT TARGET fxdiv) +@@ -4993,9 +4990,6 @@ IF(NOT TARGET fxdiv) + SET_PROPERTY(TARGET fxdiv PROPERTY LINKER_LANGUAGE C) + ENDIF() + ENDIF() +-TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fxdiv) +-TARGET_LINK_LIBRARIES(all_microkernels PRIVATE fxdiv) +-TARGET_LINK_LIBRARIES(indirection PRIVATE fxdiv) + + # ---[ Configure FP16 + IF(NOT TARGET fp16) +@@ -5014,8 +5008,6 @@ IF(NOT TARGET fp16) + SET_PROPERTY(TARGET fp16 PROPERTY LINKER_LANGUAGE C) + ENDIF() + ENDIF() +-TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16) +-TARGET_LINK_LIBRARIES(all_microkernels PRIVATE fp16) + + INSTALL(TARGETS XNNPACK + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +@@ -5062,7 +5054,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(add-nd-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(add-nd-test add-nd-test) + + ADD_EXECUTABLE(argmax-pooling-nhwc-test test/argmax-pooling-nhwc.cc) +@@ -5134,7 +5126,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(convolution-nhwc-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(convolution-nhwc-test convolution-nhwc-test) + + ADD_EXECUTABLE(convolution-nchw-test test/convolution-nchw.cc) +@@ -5143,7 +5135,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(convolution-nchw-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(convolution-nchw-test convolution-nchw-test) + + ADD_EXECUTABLE(copy-nc-test test/copy-nc.cc) +@@ -5188,7 +5180,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(divide-nd-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(divide-nd-test divide-nd-test) + + ADD_EXECUTABLE(elu-nc-test test/elu-nc.cc) +@@ -5224,7 +5216,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(global-average-pooling-nwc-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(global-average-pooling-nwc-test global-average-pooling-nwc-test) + + ADD_EXECUTABLE(global-average-pooling-ncw-test test/global-average-pooling-ncw.cc) +@@ -5233,7 +5225,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(global-average-pooling-ncw-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(global-average-pooling-ncw-test global-average-pooling-ncw-test) + + ADD_EXECUTABLE(hardswish-nc-test test/hardswish-nc.cc) +@@ -5242,7 +5234,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(hardswish-nc-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(hardswish-nc-test hardswish-nc-test) + + ADD_EXECUTABLE(leaky-relu-nc-test test/leaky-relu-nc.cc) +@@ -5269,7 +5261,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(maximum-nd-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(maximum-nd-test maximum-nd-test) + + ADD_EXECUTABLE(minimum-nd-test test/minimum-nd.cc) +@@ -5278,7 +5270,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(minimum-nd-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(minimum-nd-test minimum-nd-test) + + ADD_EXECUTABLE(multiply-nd-test test/multiply-nd.cc) +@@ -5287,7 +5279,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(multiply-nd-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(multiply-nd-test multiply-nd-test) + + ADD_EXECUTABLE(negate-nc-test test/negate-nc.cc) +@@ -5368,7 +5360,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(squared-difference-nd-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(squared-difference-nd-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(squared-difference-nd-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(squared-difference-nd-test squared-difference-nd-test) + + ADD_EXECUTABLE(subtract-nd-test test/subtract-nd.cc) +@@ -5377,7 +5369,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(subtract-nd-test PRIVATE src test) +- TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK fp16 gtest gtest_main) ++ TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK gtest gtest_main) + ADD_TEST(subtract-nd-test subtract-nd-test) + + ADD_EXECUTABLE(truncation-nc-test test/truncation-nc.cc) +@@ -5423,7 +5415,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-dwconv-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-dwconv-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-dwconv-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-dwconv-minmax-test f16-dwconv-minmax-test) + + ADD_EXECUTABLE(f16-gavgpool-minmax-test test/f16-gavgpool-minmax.cc $) +@@ -5432,7 +5424,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-gavgpool-minmax-test f16-gavgpool-minmax-test) + + ADD_EXECUTABLE(f16-gemm-minmax-test test/f16-gemm-minmax.cc $ $) +@@ -5441,7 +5433,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-gemm-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-gemm-minmax-test f16-gemm-minmax-test) + + ADD_EXECUTABLE(f16-igemm-minmax-test test/f16-igemm-minmax.cc $ $) +@@ -5450,7 +5442,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-igemm-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-igemm-minmax-test f16-igemm-minmax-test) + + ADD_EXECUTABLE(f16-spmm-minmax-test test/f16-spmm-minmax.cc $) +@@ -5459,7 +5451,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-spmm-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-spmm-minmax-test f16-spmm-minmax-test) + + ADD_EXECUTABLE(f16-vadd-minmax-test test/f16-vadd-minmax.cc $) +@@ -5468,7 +5460,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vadd-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vadd-minmax-test f16-vadd-minmax-test) + + ADD_EXECUTABLE(f16-vaddc-minmax-test test/f16-vaddc-minmax.cc $) +@@ -5477,7 +5469,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vaddc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vaddc-minmax-test f16-vaddc-minmax-test) + + ADD_EXECUTABLE(f16-vclamp-test test/f16-vclamp.cc $) +@@ -5486,7 +5478,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vclamp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE cpuinfo gtest_main) + ADD_TEST(f16-vclamp-test f16-vclamp-test) + + ADD_EXECUTABLE(f16-vdiv-minmax-test test/f16-vdiv-minmax.cc $) +@@ -5504,7 +5496,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vdivc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vdivc-minmax-test f16-vdivc-minmax-test) + + ADD_EXECUTABLE(f16-vrdivc-minmax-test test/f16-vrdivc-minmax.cc $) +@@ -5513,7 +5505,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vrdivc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vrdivc-minmax-test f16-vrdivc-minmax-test) + + ADD_EXECUTABLE(f16-vhswish-test test/f16-vhswish.cc $) +@@ -5522,7 +5514,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vhswish-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vhswish-test f16-vhswish-test) + + ADD_EXECUTABLE(f16-vmax-test test/f16-vmax.cc $) +@@ -5531,7 +5523,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vmax-test f16-vmax-test) + + ADD_EXECUTABLE(f16-vmaxc-test test/f16-vmaxc.cc $) +@@ -5540,7 +5532,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vmaxc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vmaxc-test f16-vmaxc-test) + + ADD_EXECUTABLE(f16-vmin-test test/f16-vmin.cc $) +@@ -5549,7 +5541,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vmin-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vmin-test f16-vmin-test) + + ADD_EXECUTABLE(f16-vminc-test test/f16-vminc.cc $) +@@ -5558,7 +5550,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vminc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vminc-test f16-vminc-test) + + ADD_EXECUTABLE(f16-vmul-minmax-test test/f16-vmul-minmax.cc $) +@@ -5567,7 +5559,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vmul-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vmul-minmax-test f16-vmul-minmax-test) + + ADD_EXECUTABLE(f16-vmulc-minmax-test test/f16-vmulc-minmax.cc $) +@@ -5576,7 +5568,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vmulc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vmulc-minmax-test f16-vmulc-minmax-test) + + ADD_EXECUTABLE(f16-vmulcaddc-minmax-test test/f16-vmulcaddc-minmax.cc $ $) +@@ -5585,7 +5577,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vmulcaddc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vmulcaddc-minmax-test f16-vmulcaddc-minmax-test) + + ADD_EXECUTABLE(f16-prelu-test test/f16-prelu.cc $) +@@ -5594,7 +5586,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-prelu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-prelu-test f16-prelu-test) + + ADD_EXECUTABLE(f16-vsub-minmax-test test/f16-vsub-minmax.cc $) +@@ -5603,7 +5595,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vsub-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vsub-minmax-test f16-vsub-minmax-test) + + ADD_EXECUTABLE(f16-vsubc-minmax-test test/f16-vsubc-minmax.cc $) +@@ -5612,7 +5604,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vsubc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vsubc-minmax-test f16-vsubc-minmax-test) + + ADD_EXECUTABLE(f16-vrsubc-minmax-test test/f16-vrsubc-minmax.cc $) +@@ -5621,7 +5613,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f16-vrsubc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f16-vrsubc-minmax-test f16-vrsubc-minmax-test) + + ADD_EXECUTABLE(f32-argmaxpool-test test/f32-argmaxpool.cc $) +@@ -5630,7 +5622,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-argmaxpool-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-argmaxpool-test f32-argmaxpool-test) + + ADD_EXECUTABLE(f32-avgpool-minmax-test test/f32-avgpool-minmax.cc $) +@@ -5639,7 +5631,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-avgpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-avgpool-minmax-test f32-avgpool-minmax-test) + + ADD_EXECUTABLE(f32-conv-hwc-test test/f32-conv-hwc.cc $ $) +@@ -5648,7 +5640,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-conv-hwc-test f32-conv-hwc-test) + + ADD_EXECUTABLE(f32-conv-hwc2chw-test test/f32-conv-hwc2chw.cc $ $) +@@ -5657,7 +5649,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc2chw-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-conv-hwc2chw-test f32-conv-hwc2chw-test) + + ADD_EXECUTABLE(f32-dwconv-test test/f32-dwconv.cc $ $) +@@ -5666,7 +5658,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-dwconv-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-dwconv-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-dwconv-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-dwconv-test f32-dwconv-test) + + ADD_EXECUTABLE(f32-dwconv2d-chw-test test/f32-dwconv2d-chw.cc $) +@@ -5675,7 +5667,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-dwconv2d-chw-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-dwconv2d-chw-test f32-dwconv2d-chw-test) + + ADD_EXECUTABLE(f32-dwconv-minmax-test test/f32-dwconv-minmax.cc $ $) +@@ -5684,7 +5676,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-dwconv-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-dwconv-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-dwconv-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-dwconv-minmax-test f32-dwconv-minmax-test) + + ADD_EXECUTABLE(f32-gavgpool-cw-test test/f32-gavgpool-cw.cc $) +@@ -5693,7 +5685,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-cw-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-gavgpool-cw-test f32-gavgpool-cw-test) + + ADD_EXECUTABLE(f32-gavgpool-minmax-test test/f32-gavgpool-minmax.cc $) +@@ -5702,7 +5694,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-gavgpool-minmax-test f32-gavgpool-minmax-test) + + ADD_EXECUTABLE(f32-gemm-test test/f32-gemm.cc $ $) +@@ -5711,7 +5703,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-gemm-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-gemm-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-gemm-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-gemm-test f32-gemm-test) + + ADD_EXECUTABLE(f32-gemm-relu-test test/f32-gemm-relu.cc $ $) +@@ -5720,7 +5712,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-gemm-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-gemm-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-gemm-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-gemm-relu-test f32-gemm-relu-test) + + ADD_EXECUTABLE(f32-gemm-minmax-test test/f32-gemm-minmax.cc $ $) +@@ -5729,7 +5721,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-gemm-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-gemm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-gemm-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-gemm-minmax-test f32-gemm-minmax-test) + + ADD_EXECUTABLE(f32-gemminc-minmax-test test/f32-gemminc-minmax.cc $ $) +@@ -5738,7 +5730,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-gemminc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-gemminc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-gemminc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-gemminc-minmax-test f32-gemminc-minmax-test) + + ADD_EXECUTABLE(f32-ibilinear-test test/f32-ibilinear.cc $) +@@ -5747,7 +5739,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-ibilinear-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-ibilinear-test f32-ibilinear-test) + + ADD_EXECUTABLE(f32-ibilinear-chw-test test/f32-ibilinear-chw.cc $) +@@ -5756,7 +5748,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-ibilinear-chw-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-ibilinear-chw-test f32-ibilinear-chw-test) + + ADD_EXECUTABLE(f32-igemm-test test/f32-igemm.cc $ $) +@@ -5765,7 +5757,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-igemm-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-igemm-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-igemm-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-igemm-test f32-igemm-test) + + ADD_EXECUTABLE(f32-igemm-relu-test test/f32-igemm-relu.cc $ $) +@@ -5774,7 +5766,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-igemm-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-igemm-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-igemm-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-igemm-relu-test f32-igemm-relu-test) + + ADD_EXECUTABLE(f32-igemm-minmax-test test/f32-igemm-minmax.cc $ $) +@@ -5787,7 +5779,7 @@ IF(XNNPACK_BUILD_TESTS) + # Work-around for "too many sections" error + TARGET_COMPILE_OPTIONS(f32-igemm-minmax-test PRIVATE "$<$,$>>:-Wa,-mbig-obj>") + ENDIF() +- TARGET_LINK_LIBRARIES(f32-igemm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-igemm-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-igemm-minmax-test f32-igemm-minmax-test) + + ADD_EXECUTABLE(f32-maxpool-minmax-test test/f32-maxpool-minmax.cc $) +@@ -5796,7 +5788,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-maxpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-maxpool-minmax-test f32-maxpool-minmax-test) + + ADD_EXECUTABLE(f32-pavgpool-minmax-test test/f32-pavgpool-minmax.cc $) +@@ -5805,7 +5797,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-pavgpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-pavgpool-minmax-test f32-pavgpool-minmax-test) + + ADD_EXECUTABLE(f32-ppmm-minmax-test test/f32-ppmm-minmax.cc $ $) +@@ -5814,7 +5806,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-ppmm-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-ppmm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-ppmm-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-ppmm-minmax-test f32-ppmm-minmax-test) + + ADD_EXECUTABLE(f32-prelu-test test/f32-prelu.cc $) +@@ -5823,7 +5815,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-prelu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-prelu-test f32-prelu-test) + + ADD_EXECUTABLE(f32-raddexpminusmax-test test/f32-raddexpminusmax.cc $) +@@ -5832,7 +5824,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-raddexpminusmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-raddexpminusmax-test f32-raddexpminusmax-test) + + ADD_EXECUTABLE(f32-raddextexp-test test/f32-raddextexp.cc $) +@@ -5841,7 +5833,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-raddextexp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-raddextexp-test f32-raddextexp-test) + + ADD_EXECUTABLE(f32-raddstoreexpminusmax-test test/f32-raddstoreexpminusmax.cc $) +@@ -5850,7 +5842,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-raddstoreexpminusmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-raddstoreexpminusmax-test f32-raddstoreexpminusmax-test) + + ADD_EXECUTABLE(f32-rmax-test test/f32-rmax.cc $) +@@ -5859,7 +5851,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-rmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-rmax-test f32-rmax-test) + + ADD_EXECUTABLE(f32-spmm-minmax-test test/f32-spmm-minmax.cc $) +@@ -5868,7 +5860,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-spmm-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-spmm-minmax-test f32-spmm-minmax-test) + + ADD_EXECUTABLE(f32-vabs-test test/f32-vabs.cc $) +@@ -5877,7 +5869,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vabs-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vabs-test f32-vabs-test) + + ADD_EXECUTABLE(f32-vadd-test test/f32-vadd.cc $) +@@ -5886,7 +5878,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vadd-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vadd-test f32-vadd-test) + + ADD_EXECUTABLE(f32-vadd-minmax-test test/f32-vadd-minmax.cc $) +@@ -5895,7 +5887,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vadd-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vadd-minmax-test f32-vadd-minmax-test) + + ADD_EXECUTABLE(f32-vadd-relu-test test/f32-vadd-relu.cc $) +@@ -5904,7 +5896,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vadd-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vadd-relu-test f32-vadd-relu-test) + + ADD_EXECUTABLE(f32-vaddc-test test/f32-vaddc.cc $) +@@ -5913,7 +5905,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vaddc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vaddc-test f32-vaddc-test) + + ADD_EXECUTABLE(f32-vaddc-minmax-test test/f32-vaddc-minmax.cc $) +@@ -5922,7 +5914,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vaddc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vaddc-minmax-test f32-vaddc-minmax-test) + + ADD_EXECUTABLE(f32-vaddc-relu-test test/f32-vaddc-relu.cc $) +@@ -5931,7 +5923,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vaddc-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vaddc-relu-test f32-vaddc-relu-test) + + ADD_EXECUTABLE(f32-vclamp-test test/f32-vclamp.cc $) +@@ -5940,7 +5932,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vclamp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vclamp-test f32-vclamp-test) + + ADD_EXECUTABLE(f32-vhswish-test test/f32-vhswish.cc $) +@@ -5949,7 +5941,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vhswish-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vhswish-test f32-vhswish-test) + + ADD_EXECUTABLE(f32-vdiv-test test/f32-vdiv.cc $) +@@ -5958,7 +5950,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vdiv-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vdiv-test f32-vdiv-test) + + ADD_EXECUTABLE(f32-vdiv-minmax-test test/f32-vdiv-minmax.cc $) +@@ -5967,7 +5959,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vdiv-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vdiv-minmax-test f32-vdiv-minmax-test) + + ADD_EXECUTABLE(f32-vdiv-relu-test test/f32-vdiv-relu.cc $) +@@ -5976,7 +5968,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vdiv-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vdiv-relu-test f32-vdiv-relu-test) + + ADD_EXECUTABLE(f32-vdivc-test test/f32-vdivc.cc $) +@@ -5985,7 +5977,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vdivc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vdivc-test f32-vdivc-test) + + ADD_EXECUTABLE(f32-vdivc-minmax-test test/f32-vdivc-minmax.cc $) +@@ -5994,7 +5986,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vdivc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vdivc-minmax-test f32-vdivc-minmax-test) + + ADD_EXECUTABLE(f32-vdivc-relu-test test/f32-vdivc-relu.cc $) +@@ -6003,7 +5995,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vdivc-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vdivc-relu-test f32-vdivc-relu-test) + + ADD_EXECUTABLE(f32-vrdivc-test test/f32-vrdivc.cc $) +@@ -6012,7 +6004,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrdivc-test f32-vrdivc-test) + + ADD_EXECUTABLE(f32-vrdivc-minmax-test test/f32-vrdivc-minmax.cc $) +@@ -6021,7 +6013,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrdivc-minmax-test f32-vrdivc-minmax-test) + + ADD_EXECUTABLE(f32-vrdivc-relu-test test/f32-vrdivc-relu.cc $) +@@ -6030,7 +6022,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrdivc-relu-test f32-vrdivc-relu-test) + + ADD_EXECUTABLE(f32-velu-test test/f32-velu.cc $) +@@ -6039,7 +6031,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-velu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-velu-test f32-velu-test) + + ADD_EXECUTABLE(f32-vlrelu-test test/f32-vlrelu.cc $) +@@ -6048,7 +6040,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vlrelu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vlrelu-test f32-vlrelu-test) + + ADD_EXECUTABLE(f32-vmax-test test/f32-vmax.cc $) +@@ -6057,7 +6049,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmax-test f32-vmax-test) + + ADD_EXECUTABLE(f32-vmaxc-test test/f32-vmaxc.cc $) +@@ -6066,7 +6058,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmaxc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmaxc-test f32-vmaxc-test) + + ADD_EXECUTABLE(f32-vmin-test test/f32-vmin.cc $) +@@ -6075,7 +6067,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmin-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmin-test f32-vmin-test) + + ADD_EXECUTABLE(f32-vminc-test test/f32-vminc.cc $) +@@ -6084,7 +6076,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vminc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vminc-test f32-vminc-test) + + ADD_EXECUTABLE(f32-vmul-test test/f32-vmul.cc $) +@@ -6093,7 +6085,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmul-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmul-test f32-vmul-test) + + ADD_EXECUTABLE(f32-vmul-minmax-test test/f32-vmul-minmax.cc $) +@@ -6102,7 +6094,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmul-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmul-minmax-test f32-vmul-minmax-test) + + ADD_EXECUTABLE(f32-vmul-relu-test test/f32-vmul-relu.cc $) +@@ -6111,7 +6103,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmul-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmul-relu-test f32-vmul-relu-test) + + ADD_EXECUTABLE(f32-vmulc-test test/f32-vmulc.cc $) +@@ -6120,7 +6112,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmulc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmulc-test f32-vmulc-test) + + ADD_EXECUTABLE(f32-vmulc-minmax-test test/f32-vmulc-minmax.cc $) +@@ -6129,7 +6121,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmulc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmulc-minmax-test f32-vmulc-minmax-test) + + ADD_EXECUTABLE(f32-vmulc-relu-test test/f32-vmulc-relu.cc $) +@@ -6138,7 +6130,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmulc-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmulc-relu-test f32-vmulc-relu-test) + + ADD_EXECUTABLE(f32-vmulcaddc-minmax-test test/f32-vmulcaddc-minmax.cc $ $) +@@ -6147,7 +6139,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vmulcaddc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vmulcaddc-minmax-test f32-vmulcaddc-minmax-test) + + ADD_EXECUTABLE(f32-vneg-test test/f32-vneg.cc $) +@@ -6156,7 +6148,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vneg-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vneg-test f32-vneg-test) + + ADD_EXECUTABLE(f32-vrelu-test test/f32-vrelu.cc $) +@@ -6165,7 +6157,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrelu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrelu-test f32-vrelu-test) + + ADD_EXECUTABLE(f32-vrndne-test test/f32-vrndne.cc $) +@@ -6174,7 +6166,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrndne-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrndne-test f32-vrndne-test) + + ADD_EXECUTABLE(f32-vrndz-test test/f32-vrndz.cc $) +@@ -6183,7 +6175,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrndz-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrndz-test f32-vrndz-test) + + ADD_EXECUTABLE(f32-vrndu-test test/f32-vrndu.cc $) +@@ -6192,7 +6184,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrndu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrndu-test f32-vrndu-test) + + ADD_EXECUTABLE(f32-vrndd-test test/f32-vrndd.cc $) +@@ -6201,7 +6193,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrndd-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrndd-test f32-vrndd-test) + + ADD_EXECUTABLE(f32-vscaleexpminusmax-test test/f32-vscaleexpminusmax.cc $) +@@ -6210,7 +6202,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vscaleexpminusmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vscaleexpminusmax-test f32-vscaleexpminusmax-test) + + ADD_EXECUTABLE(f32-vscaleextexp-test test/f32-vscaleextexp.cc $) +@@ -6219,7 +6211,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vscaleextexp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vscaleextexp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vscaleextexp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vscaleextexp-test f32-vscaleextexp-test) + + ADD_EXECUTABLE(f32-vsigmoid-test test/f32-vsigmoid.cc $) +@@ -6228,7 +6220,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsigmoid-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsigmoid-test f32-vsigmoid-test) + + ADD_EXECUTABLE(f32-vsqr-test test/f32-vsqr.cc $) +@@ -6237,7 +6229,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsqr-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsqr-test f32-vsqr-test) + + ADD_EXECUTABLE(f32-vsqrdiff-test test/f32-vsqrdiff.cc $) +@@ -6246,7 +6238,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsqrdiff-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsqrdiff-test f32-vsqrdiff-test) + + ADD_EXECUTABLE(f32-vsqrdiffc-test test/f32-vsqrdiffc.cc $) +@@ -6255,7 +6247,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsqrdiffc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsqrdiffc-test f32-vsqrdiffc-test) + + ADD_EXECUTABLE(f32-vsqrt-test test/f32-vsqrt.cc $) +@@ -6264,7 +6256,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsqrt-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsqrt-test f32-vsqrt-test) + + ADD_EXECUTABLE(f32-vsub-test test/f32-vsub.cc $) +@@ -6273,7 +6265,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsub-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsub-test f32-vsub-test) + + ADD_EXECUTABLE(f32-vsub-minmax-test test/f32-vsub-minmax.cc $) +@@ -6282,7 +6274,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsub-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsub-minmax-test f32-vsub-minmax-test) + + ADD_EXECUTABLE(f32-vsub-relu-test test/f32-vsub-relu.cc $) +@@ -6291,7 +6283,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsub-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsub-relu-test f32-vsub-relu-test) + + ADD_EXECUTABLE(f32-vsubc-test test/f32-vsubc.cc $) +@@ -6300,7 +6292,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsubc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsubc-test f32-vsubc-test) + + ADD_EXECUTABLE(f32-vsubc-minmax-test test/f32-vsubc-minmax.cc $) +@@ -6309,7 +6301,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsubc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsubc-minmax-test f32-vsubc-minmax-test) + + ADD_EXECUTABLE(f32-vsubc-relu-test test/f32-vsubc-relu.cc $) +@@ -6318,7 +6310,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vsubc-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vsubc-relu-test f32-vsubc-relu-test) + + ADD_EXECUTABLE(f32-vrsubc-test test/f32-vrsubc.cc $) +@@ -6327,7 +6319,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrsubc-test f32-vrsubc-test) + + ADD_EXECUTABLE(f32-vrsubc-minmax-test test/f32-vrsubc-minmax.cc $) +@@ -6336,7 +6328,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrsubc-minmax-test f32-vrsubc-minmax-test) + + ADD_EXECUTABLE(f32-vrsubc-relu-test test/f32-vrsubc-relu.cc $) +@@ -6345,7 +6337,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-relu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(f32-vrsubc-relu-test f32-vrsubc-relu-test) + + ADD_EXECUTABLE(qc8-dwconv-minmax-fp32-test test/qc8-dwconv-minmax-fp32.cc $ $) +@@ -6354,7 +6346,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qc8-dwconv-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qc8-dwconv-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qc8-dwconv-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qc8-dwconv-minmax-fp32-test qc8-dwconv-minmax-fp32-test) + + ADD_EXECUTABLE(qc8-gemm-minmax-fp32-test test/qc8-gemm-minmax-fp32.cc $ $) +@@ -6363,7 +6355,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qc8-gemm-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qc8-gemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qc8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qc8-gemm-minmax-fp32-test qc8-gemm-minmax-fp32-test) + + ADD_EXECUTABLE(qc8-igemm-minmax-fp32-test test/qc8-igemm-minmax-fp32.cc $ $) +@@ -6372,7 +6364,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qc8-igemm-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qc8-igemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qc8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qc8-igemm-minmax-fp32-test qc8-igemm-minmax-fp32-test) + + ADD_EXECUTABLE(qs8-dwconv-minmax-fp32-test test/qs8-dwconv-minmax-fp32.cc $ $) +@@ -6381,7 +6373,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-dwconv-minmax-fp32-test qs8-dwconv-minmax-fp32-test) + + ADD_EXECUTABLE(qs8-dwconv-minmax-gemmlowp-test test/qs8-dwconv-minmax-gemmlowp.cc $ $) +@@ -6390,7 +6382,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-minmax-gemmlowp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-dwconv-minmax-gemmlowp-test qs8-dwconv-minmax-gemmlowp-test) + + ADD_EXECUTABLE(qs8-dwconv-minmax-rndnu-test test/qs8-dwconv-minmax-rndnu.cc $ $) +@@ -6399,7 +6391,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-minmax-rndnu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-dwconv-minmax-rndnu-test qs8-dwconv-minmax-rndnu-test) + + ADD_EXECUTABLE(qs8-gavgpool-minmax-test test/qs8-gavgpool-minmax.cc $) +@@ -6408,7 +6400,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-gavgpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-gavgpool-test qs8-gavgpool-minmax-test) + + ADD_EXECUTABLE(qs8-gemm-minmax-fp32-test test/qs8-gemm-minmax-fp32.cc $ $) +@@ -6417,7 +6409,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-gemm-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-gemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-gemm-minmax-fp32-test qs8-gemm-minmax-fp32-test) + + ADD_EXECUTABLE(qs8-gemm-minmax-gemmlowp-test test/qs8-gemm-minmax-gemmlowp.cc $ $) +@@ -6426,7 +6418,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-gemm-minmax-gemmlowp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-gemm-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-gemm-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-gemm-minmax-gemmlowp-test qs8-gemm-minmax-gemmlowp-test) + + ADD_EXECUTABLE(qs8-gemm-minmax-rndnu-test test/qs8-gemm-minmax-rndnu.cc $ $) +@@ -6435,7 +6427,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-gemm-minmax-rndnu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-gemm-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-gemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-gemm-minmax-rndnu-test qs8-gemm-minmax-rndnu-test) + + ADD_EXECUTABLE(qs8-igemm-minmax-fp32-test test/qs8-igemm-minmax-fp32.cc $ $) +@@ -6444,7 +6436,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-igemm-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-igemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-igemm-minmax-fp32-test qs8-igemm-minmax-fp32-test) + + ADD_EXECUTABLE(qs8-igemm-minmax-gemmlowp-test test/qs8-igemm-minmax-gemmlowp.cc $ $) +@@ -6453,7 +6445,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-igemm-minmax-gemmlowp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-igemm-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-igemm-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-igemm-minmax-gemmlowp-test qs8-igemm-minmax-gemmlowp-test) + + ADD_EXECUTABLE(qs8-igemm-minmax-rndnu-test test/qs8-igemm-minmax-rndnu.cc $ $) +@@ -6462,7 +6454,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-igemm-minmax-rndnu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-igemm-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-igemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-igemm-minmax-rndnu-test qs8-igemm-minmax-rndnu-test) + + ADD_EXECUTABLE(qs8-vadd-minmax-test test/qs8-vadd-minmax.cc $) +@@ -6471,7 +6463,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-vadd-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-vadd-minmax-test qs8-vadd-minmax-test) + + ADD_EXECUTABLE(qs8-vaddc-minmax-test test/qs8-vaddc-minmax.cc $) +@@ -6480,7 +6472,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qs8-vaddc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qs8-vaddc-minmax-test qs8-vaddc-minmax-test) + + ADD_EXECUTABLE(qu8-avgpool-minmax-test test/qu8-avgpool-minmax.cc $) +@@ -6489,7 +6481,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-avgpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-avgpool-minmax-test qu8-avgpool-minmax-test) + + ADD_EXECUTABLE(qu8-dwconv-minmax-fp32-test test/qu8-dwconv-minmax-fp32.cc $ $) +@@ -6498,7 +6490,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-dwconv-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-dwconv-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-dwconv-minmax-fp32-test qu8-dwconv-minmax-fp32-test) + + ADD_EXECUTABLE(qu8-dwconv-minmax-rndnu-test test/qu8-dwconv-minmax-rndnu.cc $ $) +@@ -6507,7 +6499,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-minmax-rndnu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-dwconv-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-dwconv-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-dwconv-minmax-rndnu-test qu8-dwconv-minmax-rndnu-test) + + ADD_EXECUTABLE(qu8-gavgpool-minmax-test test/qu8-gavgpool-minmax.cc $) +@@ -6516,7 +6508,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-gavgpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-gavgpool-test qu8-gavgpool-minmax-test) + + ADD_EXECUTABLE(qu8-gemm-minmax-fp32-test test/qu8-gemm-minmax-fp32.cc $ $) +@@ -6525,7 +6517,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-gemm-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-gemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-gemm-minmax-fp32-test qu8-gemm-minmax-fp32-test) + + ADD_EXECUTABLE(qu8-gemm-minmax-gemmlowp-test test/qu8-gemm-minmax-gemmlowp.cc $ $) +@@ -6534,7 +6526,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-gemm-minmax-gemmlowp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-gemm-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-gemm-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-gemm-minmax-gemmlowp-test qu8-gemm-minmax-gemmlowp-test) + + ADD_EXECUTABLE(qu8-gemm-minmax-rndnu-test test/qu8-gemm-minmax-rndnu.cc $ $) +@@ -6543,7 +6535,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-gemm-minmax-rndnu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-gemm-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-gemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-gemm-minmax-rndnu-test qu8-gemm-minmax-rndnu-test) + + ADD_EXECUTABLE(qu8-igemm-minmax-fp32-test test/qu8-igemm-minmax-fp32.cc $ $) +@@ -6552,7 +6544,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-igemm-minmax-fp32-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-igemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-igemm-minmax-fp32-test qu8-igemm-minmax-fp32-test) + + ADD_EXECUTABLE(qu8-igemm-minmax-gemmlowp-test test/qu8-igemm-minmax-gemmlowp.cc $ $) +@@ -6561,7 +6553,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-igemm-minmax-gemmlowp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-igemm-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-igemm-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-igemm-minmax-gemmlowp-test qu8-igemm-minmax-gemmlowp-test) + + ADD_EXECUTABLE(qu8-igemm-minmax-rndnu-test test/qu8-igemm-minmax-rndnu.cc $ $) +@@ -6570,7 +6562,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-igemm-minmax-rndnu-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-igemm-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-igemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-igemm-minmax-rndnu-test qu8-igemm-minmax-rndnu-test) + + ADD_EXECUTABLE(qu8-requantization-test test/qu8-requantization.cc $) +@@ -6579,7 +6571,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-requantization-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-requantization-test qu8-requantization-test) + + ADD_EXECUTABLE(qu8-vadd-minmax-test test/qu8-vadd-minmax.cc $) +@@ -6588,7 +6580,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-vadd-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-vadd-minmax-test qu8-vadd-minmax-test) + + ADD_EXECUTABLE(qu8-vaddc-minmax-test test/qu8-vaddc-minmax.cc $) +@@ -6597,7 +6589,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(qu8-vaddc-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(qu8-vaddc-minmax-test qu8-vaddc-minmax-test) + + ADD_EXECUTABLE(u8-lut32norm-test test/u8-lut32norm.cc $) +@@ -6606,7 +6598,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(u8-lut32norm-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(u8-lut32norm-test u8-lut32norm-test) + + ADD_EXECUTABLE(u8-maxpool-minmax-test test/u8-maxpool-minmax.cc $) +@@ -6615,7 +6607,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(u8-maxpool-minmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(u8-maxpool-minmax-test u8-maxpool-minmax-test) + + ADD_EXECUTABLE(u8-rmax-test test/u8-rmax.cc $) +@@ -6624,7 +6616,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(u8-rmax-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(u8-rmax-test u8-rmax-test) + + ADD_EXECUTABLE(u8-vclamp-test test/u8-vclamp.cc $) +@@ -6633,7 +6625,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(u8-vclamp-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(u8-vclamp-test u8-vclamp-test) + + ADD_EXECUTABLE(x32-fill-test test/x32-fill.cc $) +@@ -6642,7 +6634,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(x32-fill-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(x32-fill-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(x32-fill-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(x32-fill-test x32-fill-test) + + ADD_EXECUTABLE(x32-packx-test test/x32-packx.cc $) +@@ -6651,7 +6643,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(x32-packx-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(x32-packx-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(x32-packx-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(x32-packx-test x32-packx-test) + + ADD_EXECUTABLE(x32-pad-test test/x32-pad.cc $) +@@ -6660,7 +6652,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(x32-pad-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(x32-pad-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(x32-pad-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(x32-pad-test x32-pad-test) + + ADD_EXECUTABLE(x32-unpool-test test/x32-unpool.cc $) +@@ -6669,7 +6661,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(x32-unpool-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(x32-unpool-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(x32-unpool-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(x32-unpool-test x32-unpool-test) + + ADD_EXECUTABLE(x32-depthtospace2d-chw2hwc-test test/x32-depthtospace2d-chw2hwc.cc $) +@@ -6678,7 +6670,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(x32-depthtospace2d-chw2hwc-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(x32-depthtospace2d-chw2hwc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(x32-depthtospace2d-chw2hwc-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(x32-depthtospace2d-chw2hwc-test x32-depthtospace2d-chw2hwc-test) + + ADD_EXECUTABLE(x32-zip-test test/x32-zip.cc $) +@@ -6687,7 +6679,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(x32-zip-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(x32-zip-test x32-zip-test) + + ADD_EXECUTABLE(x8-lut-test test/x8-lut.cc $) +@@ -6696,7 +6688,7 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(x8-lut-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(x8-lut-test x8-lut-test) + + ADD_EXECUTABLE(x8-zip-test test/x8-zip.cc $) +@@ -6705,20 +6697,12 @@ IF(XNNPACK_BUILD_TESTS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS YES) + TARGET_INCLUDE_DIRECTORIES(x8-zip-test PRIVATE include src test) +- TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE cpuinfo gtest gtest_main) + ADD_TEST(x8-zip-test x8-zip-test) + ENDIF() + + # ---[ XNNPACK microbenchmarks + IF(XNNPACK_BUILD_BENCHMARKS) +- # ---[ Build google benchmark +- IF(NOT TARGET benchmark) +- SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "") +- ADD_SUBDIRECTORY( +- "${GOOGLEBENCHMARK_SOURCE_DIR}" +- "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark") +- ENDIF() +- + ADD_LIBRARY(bench-utils bench/utils.cc) + SET_TARGET_PROPERTIES(bench-utils PROPERTIES + CXX_STANDARD 11 +@@ -6783,7 +6767,7 @@ IF(XNNPACK_BUILD_BENCHMARKS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(f32-exp-eval PRIVATE include src) +- TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE cpuinfo gtest gtest_main) + + ADD_EXECUTABLE(f32-expm1minus-eval eval/f32-expm1minus.cc $) + SET_TARGET_PROPERTIES(f32-expm1minus-eval PROPERTIES +@@ -6791,7 +6775,7 @@ IF(XNNPACK_BUILD_BENCHMARKS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(f32-expm1minus-eval PRIVATE include src) +- TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE cpuinfo gtest gtest_main) + + ADD_EXECUTABLE(f32-expminus-eval eval/f32-expminus.cc $) + SET_TARGET_PROPERTIES(f32-expminus-eval PROPERTIES +@@ -6799,7 +6783,7 @@ IF(XNNPACK_BUILD_BENCHMARKS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(f32-expminus-eval PRIVATE include src) +- TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE cpuinfo gtest gtest_main) + + ADD_EXECUTABLE(f32-roundne-eval eval/f32-roundne.cc $) + SET_TARGET_PROPERTIES(f32-roundne-eval PROPERTIES +@@ -6807,7 +6791,7 @@ IF(XNNPACK_BUILD_BENCHMARKS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(f32-roundne-eval PRIVATE include src) +- TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE cpuinfo gtest gtest_main) + + ADD_EXECUTABLE(f32-roundd-eval eval/f32-roundd.cc $) + SET_TARGET_PROPERTIES(f32-roundd-eval PROPERTIES +@@ -6815,7 +6799,7 @@ IF(XNNPACK_BUILD_BENCHMARKS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(f32-roundd-eval PRIVATE include src) +- TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE cpuinfo gtest gtest_main) + + ADD_EXECUTABLE(f32-roundu-eval eval/f32-roundu.cc $) + SET_TARGET_PROPERTIES(f32-roundu-eval PROPERTIES +@@ -6823,7 +6807,7 @@ IF(XNNPACK_BUILD_BENCHMARKS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(f32-roundu-eval PRIVATE include src) +- TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE cpuinfo gtest gtest_main) + + ADD_EXECUTABLE(f32-roundz-eval eval/f32-roundz.cc $) + SET_TARGET_PROPERTIES(f32-roundz-eval PROPERTIES +@@ -6831,7 +6815,7 @@ IF(XNNPACK_BUILD_BENCHMARKS) + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + TARGET_INCLUDE_DIRECTORIES(f32-roundz-eval PRIVATE include src) +- TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main) ++ TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE cpuinfo gtest gtest_main) + + # ---[ Build end-to-end microbenchmarks + ADD_LIBRARY(bench-models STATIC -- cgit v1.2.3 From 4613a9948a7814e877bc6421d7cec3cc267ec928 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 29 Jul 2021 17:27:49 -0400 Subject: gnu: Add drpm. * gnu/packages/rpm.scm: Add file. * gnu/local.mk (GNU_SYSTEM_MODULES): Register it. --- gnu/local.mk | 1 + gnu/packages/rpm.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 gnu/packages/rpm.scm (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index faf963def2..472b030e6d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -493,6 +493,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/regex.scm \ %D%/packages/robotics.scm \ %D%/packages/rpc.scm \ + %D%/packages/rpm.scm \ %D%/packages/rrdtool.scm \ %D%/packages/rsync.scm \ %D%/packages/ruby.scm \ diff --git a/gnu/packages/rpm.scm b/gnu/packages/rpm.scm new file mode 100644 index 0000000000..176d0fe286 --- /dev/null +++ b/gnu/packages/rpm.scm @@ -0,0 +1,62 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Maxim Cournoyer +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages rpm) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix build-system cmake) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages package-management) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages popt) + #:use-module (gnu packages tls)) + +(define-public drpm + (package + (name "drpm") + (version "0.5.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rpm-software-management/drpm") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0m269nl8s31yjyz7kknv4jl9mx12xjpx2ly6wf66zs5613m4rj1z")))) + (build-system cmake-build-system) + (native-inputs + `(("cmocka" ,cmocka) + ("pkg-config" ,pkg-config))) + (inputs + `(("bzip2" ,bzip2) + ("lzlib" ,lzlib) + ("openssl" ,openssl) + ("popt" ,popt) + ("rpm" ,rpm) + ("xz" ,xz) + ("zlib" ,zlib) + ("zstd" ,zstd "lib"))) + (home-page "https://github.com/rpm-software-management/drpm") + (synopsis "Delta RPM library") + (description "This package provides a library for making, reading and +applying deltarpms, compatible with the original deltarpm packages.") + (license license:lgpl2.1+))) -- cgit v1.2.3 From 2b55f914c3198f9b07399d10502fbdb22b7d6e47 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 30 Jul 2021 17:04:40 +0200 Subject: gnu: python-onnx: Install libonnx.so and libonnx_proto.so. * gnu/packages/patches/python-onnx-shared-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/machine-learning.scm (python-onnx)[source]: Use it. [arguments]: New field. --- gnu/local.mk | 1 + gnu/packages/machine-learning.scm | 39 +++++++++++++++++++++- .../patches/python-onnx-shared-libraries.patch | 24 +++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/python-onnx-shared-libraries.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 472b030e6d..798560ca95 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1634,6 +1634,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-mox3-python3.6-compat.patch \ %D%/packages/patches/python-testtools.patch \ %D%/packages/patches/python-onnx-use-system-googletest.patch \ + %D%/packages/patches/python-onnx-shared-libraries.patch \ %D%/packages/patches/python-packaging-test-arch.patch \ %D%/packages/patches/python2-parameterized-docstring-test.patch \ %D%/packages/patches/python-paste-remove-timing-test.patch \ diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 268ec9b5ce..1cea91977f 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -589,12 +589,49 @@ in terms of new algorithms.") (origin (method url-fetch) (uri (pypi-uri "onnx" version)) - (patches (search-patches "python-onnx-use-system-googletest.patch")) + (patches (search-patches "python-onnx-use-system-googletest.patch" + "python-onnx-shared-libraries.patch")) (sha256 (base32 "0yjv2axz2vc2ysniwislsp53fsb8f61y1warrr2ppn2d9ijml1d9")) (modules '((guix build utils))) (snippet '(delete-file-recursively "third_party")))) (build-system python-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'build 'pass-cmake-arguments + (lambda* (#:key outputs #:allow-other-keys) + ;; Pass options to the CMake-based build process. + (define out + (assoc-ref outputs "out")) + + (define args + ;; Copy arguments from 'cmake-build-system', plus ask + ;; for shared libraries. + (list "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + (string-append "-DCMAKE_INSTALL_PREFIX=" out) + "-DCMAKE_INSTALL_LIBDIR=lib" + "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" + (string-append "-DCMAKE_INSTALL_RPATH=" out + "/lib") + "-DCMAKE_VERBOSE_MAKEFILE=ON" + + "-DBUILD_SHARED_LIBS=ON")) + + ;; This environment variable is honored by 'setup.py', + ;; which passes it down to 'cmake'. + (setenv "CMAKE_ARGS" (string-join args)) + + ;; This one is honored by 'setup.py' and passed to 'make + ;; -j'. + (setenv "MAX_JOBS" + (number->string (parallel-job-count))))) + (add-after 'install 'install-from-cmake + (lambda _ + ;; Run "make install" in the build tree 'setup.py' + ;; created for CMake so that libonnx.so, + ;; libonnx_proto.so, etc. are installed. + (invoke "make" "install" + "-C" ".setuptools-cmake-build")))))) (native-inputs `(("cmake" ,cmake) ("googletest" ,googletest) diff --git a/gnu/packages/patches/python-onnx-shared-libraries.patch b/gnu/packages/patches/python-onnx-shared-libraries.patch new file mode 100644 index 0000000000..00583b35da --- /dev/null +++ b/gnu/packages/patches/python-onnx-shared-libraries.patch @@ -0,0 +1,24 @@ +These linker options for the 'onnx_cpp2py_export.cpython-38-*-gnu.so' +(or similar) extension are meant to be used when building 'libonn.a', +a static archive. This patch adapts the link flags to linking with +'libonnx.so'. + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cede3073..52f846ed 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -475,11 +475,10 @@ if(BUILD_ONNX_PYTHON) + PRIVATE $) + else() + # Assume everything else is like gcc +- target_link_libraries(onnx_cpp2py_export +- PRIVATE "-Wl,--whole-archive" $ +- "-Wl,--no-whole-archive") ++ target_link_libraries(onnx_cpp2py_export PRIVATE onnx) + set_target_properties(onnx_cpp2py_export +- PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL") ++ PROPERTIES LINK_FLAGS ++ "-Wl,-rpath=${CMAKE_INSTALL_PREFIX}/lib") + endif() + + target_link_libraries(onnx_cpp2py_export PRIVATE onnx) -- cgit v1.2.3 From fa2d94b5e362c684da812d494463d965e601c18d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 30 Jul 2021 17:19:34 +0200 Subject: gnu: python-onnx: Rename to "onnx". * gnu/packages/machine-learning.scm (python-onnx): Rename to... (onnx): ... this, and change 'name' field accordingly. (python-onnx): New variable. * gnu/packages/patches/python-onnx-shared-libraries.patch: Rename to... * gnu/packages/patches/onnx-shared-libraries.patch: ... this. * gnu/packages/patches/python-onnx-use-system-googletest.patch: Rename to... * gnu/packages/patches/onnx-use-system-googletest.patch: ... this. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. --- gnu/local.mk | 4 +- gnu/packages/machine-learning.scm | 14 ++++-- gnu/packages/patches/onnx-shared-libraries.patch | 24 +++++++++ .../patches/onnx-use-system-googletest.patch | 57 ++++++++++++++++++++++ .../patches/python-onnx-shared-libraries.patch | 24 --------- .../python-onnx-use-system-googletest.patch | 57 ---------------------- 6 files changed, 93 insertions(+), 87 deletions(-) create mode 100644 gnu/packages/patches/onnx-shared-libraries.patch create mode 100644 gnu/packages/patches/onnx-use-system-googletest.patch delete mode 100644 gnu/packages/patches/python-onnx-shared-libraries.patch delete mode 100644 gnu/packages/patches/python-onnx-use-system-googletest.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 798560ca95..e6c03cbe55 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1512,6 +1512,8 @@ dist_patch_DATA = \ %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/oneko-remove-nonfree-characters.patch \ + %D%/packages/patches/onnx-use-system-googletest.patch \ + %D%/packages/patches/onnx-shared-libraries.patch \ %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \ @@ -1633,8 +1635,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-memcached-syntax-warnings.patch \ %D%/packages/patches/python-mox3-python3.6-compat.patch \ %D%/packages/patches/python-testtools.patch \ - %D%/packages/patches/python-onnx-use-system-googletest.patch \ - %D%/packages/patches/python-onnx-shared-libraries.patch \ %D%/packages/patches/python-packaging-test-arch.patch \ %D%/packages/patches/python2-parameterized-docstring-test.patch \ %D%/packages/patches/python-paste-remove-timing-test.patch \ diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 1cea91977f..75faeb8eb8 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -581,16 +581,16 @@ tools. This enables both rapid prototyping of data pipelines and extensibility in terms of new algorithms.") (license license:gpl3+))) -(define-public python-onnx +(define-public onnx (package - (name "python-onnx") + (name "onnx") (version "1.9.0") (source (origin (method url-fetch) (uri (pypi-uri "onnx" version)) - (patches (search-patches "python-onnx-use-system-googletest.patch" - "python-onnx-shared-libraries.patch")) + (patches (search-patches "onnx-use-system-googletest.patch" + "onnx-shared-libraries.patch")) (sha256 (base32 "0yjv2axz2vc2ysniwislsp53fsb8f61y1warrr2ppn2d9ijml1d9")) (modules '((guix build utils))) @@ -658,6 +658,12 @@ computation graph model, as well as definitions of built-in operators and standard data types.") (license license:expat))) +(define-public python-onnx + ;; This used to be called "python-onnx" because it provided nothing but + ;; Python bindings. The package now provides shared libraries and C++ + ;; headers, hence the name change. + (deprecated-package "python-onnx" onnx)) + (define-public rxcpp (package (name "rxcpp") diff --git a/gnu/packages/patches/onnx-shared-libraries.patch b/gnu/packages/patches/onnx-shared-libraries.patch new file mode 100644 index 0000000000..00583b35da --- /dev/null +++ b/gnu/packages/patches/onnx-shared-libraries.patch @@ -0,0 +1,24 @@ +These linker options for the 'onnx_cpp2py_export.cpython-38-*-gnu.so' +(or similar) extension are meant to be used when building 'libonn.a', +a static archive. This patch adapts the link flags to linking with +'libonnx.so'. + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cede3073..52f846ed 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -475,11 +475,10 @@ if(BUILD_ONNX_PYTHON) + PRIVATE $) + else() + # Assume everything else is like gcc +- target_link_libraries(onnx_cpp2py_export +- PRIVATE "-Wl,--whole-archive" $ +- "-Wl,--no-whole-archive") ++ target_link_libraries(onnx_cpp2py_export PRIVATE onnx) + set_target_properties(onnx_cpp2py_export +- PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL") ++ PROPERTIES LINK_FLAGS ++ "-Wl,-rpath=${CMAKE_INSTALL_PREFIX}/lib") + endif() + + target_link_libraries(onnx_cpp2py_export PRIVATE onnx) diff --git a/gnu/packages/patches/onnx-use-system-googletest.patch b/gnu/packages/patches/onnx-use-system-googletest.patch new file mode 100644 index 0000000000..5dfcbc6dc3 --- /dev/null +++ b/gnu/packages/patches/onnx-use-system-googletest.patch @@ -0,0 +1,57 @@ +ONNX will build googletest from a Git checkout. Patch CMake to use our +googletest package and enable tests by default. + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0aa9fda2..a573170c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -22,7 +22,7 @@ option(BUILD_ONNX_PYTHON "Build Python binaries" OFF) + option(ONNX_GEN_PB_TYPE_STUBS "Generate protobuf python type stubs" ON) + option(ONNX_WERROR "Build with Werror" OFF) + option(ONNX_COVERAGE "Build with coverage instrumentation" OFF) +-option(ONNX_BUILD_TESTS "Build ONNX C++ APIs Tests" OFF) ++option(ONNX_BUILD_TESTS "Build ONNX C++ APIs Tests" ON) + option(ONNX_USE_LITE_PROTO "Use lite protobuf instead of full." OFF) + option(ONNXIFI_ENABLE_EXT "Enable onnxifi extensions." OFF) + if(NOT DEFINED ONNX_ML) +@@ -82,8 +82,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "AIX") + endif() + + if(ONNX_BUILD_TESTS) +- list(APPEND CMAKE_MODULE_PATH ${ONNX_ROOT}/cmake/external) +- include(googletest) ++ find_package(GTest REQUIRED) ++ if(NOT GTest_FOUND) ++ message(FATAL_ERROR "cannot find googletest") ++ endif() + endif() + + if((ONNX_USE_LITE_PROTO AND TARGET protobuf::libprotobuf-lite) OR ((NOT ONNX_USE_LITE_PROTO) AND TARGET protobuf::libprotobuf)) +diff --git a/cmake/unittest.cmake b/cmake/unittest.cmake +index e29a93ff..ae146390 100644 +--- a/cmake/unittest.cmake ++++ b/cmake/unittest.cmake +@@ -6,8 +6,8 @@ include(${ONNX_ROOT}/cmake/Utils.cmake) + + find_package(Threads) + +-set(${UT_NAME}_libs ${googletest_STATIC_LIBRARIES}) +-set(${ONNXIFI_TEST_DRIVER}_libs ${googletest_STATIC_LIBRARIES}) ++set(${UT_NAME}_libs ${GTEST_LIBRARIES}) ++set(${ONNXIFI_TEST_DRIVER}_libs ${GTEST_LIBRARIES}) + + list(APPEND ${UT_NAME}_libs onnx) + list(APPEND ${UT_NAME}_libs onnx_proto) +@@ -31,10 +31,10 @@ function(AddTest) + list(REMOVE_DUPLICATES _UT_SOURCES) + + add_executable(${_UT_TARGET} ${_UT_SOURCES}) +- add_dependencies(${_UT_TARGET} onnx onnx_proto googletest) ++ add_dependencies(${_UT_TARGET} onnx onnx_proto) + + target_include_directories(${_UT_TARGET} +- PUBLIC ${googletest_INCLUDE_DIRS} ++ PUBLIC ${GTEST_INCLUDE_DIRS} + ${ONNX_INCLUDE_DIRS} + ${PROTOBUF_INCLUDE_DIRS} + ${ONNX_ROOT} diff --git a/gnu/packages/patches/python-onnx-shared-libraries.patch b/gnu/packages/patches/python-onnx-shared-libraries.patch deleted file mode 100644 index 00583b35da..0000000000 --- a/gnu/packages/patches/python-onnx-shared-libraries.patch +++ /dev/null @@ -1,24 +0,0 @@ -These linker options for the 'onnx_cpp2py_export.cpython-38-*-gnu.so' -(or similar) extension are meant to be used when building 'libonn.a', -a static archive. This patch adapts the link flags to linking with -'libonnx.so'. - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index cede3073..52f846ed 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -475,11 +475,10 @@ if(BUILD_ONNX_PYTHON) - PRIVATE $) - else() - # Assume everything else is like gcc -- target_link_libraries(onnx_cpp2py_export -- PRIVATE "-Wl,--whole-archive" $ -- "-Wl,--no-whole-archive") -+ target_link_libraries(onnx_cpp2py_export PRIVATE onnx) - set_target_properties(onnx_cpp2py_export -- PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL") -+ PROPERTIES LINK_FLAGS -+ "-Wl,-rpath=${CMAKE_INSTALL_PREFIX}/lib") - endif() - - target_link_libraries(onnx_cpp2py_export PRIVATE onnx) diff --git a/gnu/packages/patches/python-onnx-use-system-googletest.patch b/gnu/packages/patches/python-onnx-use-system-googletest.patch deleted file mode 100644 index 5dfcbc6dc3..0000000000 --- a/gnu/packages/patches/python-onnx-use-system-googletest.patch +++ /dev/null @@ -1,57 +0,0 @@ -ONNX will build googletest from a Git checkout. Patch CMake to use our -googletest package and enable tests by default. - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0aa9fda2..a573170c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -22,7 +22,7 @@ option(BUILD_ONNX_PYTHON "Build Python binaries" OFF) - option(ONNX_GEN_PB_TYPE_STUBS "Generate protobuf python type stubs" ON) - option(ONNX_WERROR "Build with Werror" OFF) - option(ONNX_COVERAGE "Build with coverage instrumentation" OFF) --option(ONNX_BUILD_TESTS "Build ONNX C++ APIs Tests" OFF) -+option(ONNX_BUILD_TESTS "Build ONNX C++ APIs Tests" ON) - option(ONNX_USE_LITE_PROTO "Use lite protobuf instead of full." OFF) - option(ONNXIFI_ENABLE_EXT "Enable onnxifi extensions." OFF) - if(NOT DEFINED ONNX_ML) -@@ -82,8 +82,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "AIX") - endif() - - if(ONNX_BUILD_TESTS) -- list(APPEND CMAKE_MODULE_PATH ${ONNX_ROOT}/cmake/external) -- include(googletest) -+ find_package(GTest REQUIRED) -+ if(NOT GTest_FOUND) -+ message(FATAL_ERROR "cannot find googletest") -+ endif() - endif() - - if((ONNX_USE_LITE_PROTO AND TARGET protobuf::libprotobuf-lite) OR ((NOT ONNX_USE_LITE_PROTO) AND TARGET protobuf::libprotobuf)) -diff --git a/cmake/unittest.cmake b/cmake/unittest.cmake -index e29a93ff..ae146390 100644 ---- a/cmake/unittest.cmake -+++ b/cmake/unittest.cmake -@@ -6,8 +6,8 @@ include(${ONNX_ROOT}/cmake/Utils.cmake) - - find_package(Threads) - --set(${UT_NAME}_libs ${googletest_STATIC_LIBRARIES}) --set(${ONNXIFI_TEST_DRIVER}_libs ${googletest_STATIC_LIBRARIES}) -+set(${UT_NAME}_libs ${GTEST_LIBRARIES}) -+set(${ONNXIFI_TEST_DRIVER}_libs ${GTEST_LIBRARIES}) - - list(APPEND ${UT_NAME}_libs onnx) - list(APPEND ${UT_NAME}_libs onnx_proto) -@@ -31,10 +31,10 @@ function(AddTest) - list(REMOVE_DUPLICATES _UT_SOURCES) - - add_executable(${_UT_TARGET} ${_UT_SOURCES}) -- add_dependencies(${_UT_TARGET} onnx onnx_proto googletest) -+ add_dependencies(${_UT_TARGET} onnx onnx_proto) - - target_include_directories(${_UT_TARGET} -- PUBLIC ${googletest_INCLUDE_DIRS} -+ PUBLIC ${GTEST_INCLUDE_DIRS} - ${ONNX_INCLUDE_DIRS} - ${PROTOBUF_INCLUDE_DIRS} - ${ONNX_ROOT} -- cgit v1.2.3 From 630c39d8df7557b6a0941c1d5ee879e487de0f5e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 30 Jul 2021 17:26:24 +0200 Subject: gnu: onnx: Change source to 'git-fetch'. * gnu/packages/machine-learning.scm (onnx)[source]: Change to 'git-fetch'. Add "onnx-skip-model-downloads.patch". [arguments]: Add 'make-test-directory-writable' phase. * gnu/packages/patches/onnx-skip-model-downloads.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/machine-learning.scm | 31 +++++++++++++++------- .../patches/onnx-skip-model-downloads.patch | 16 +++++++++++ 3 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 gnu/packages/patches/onnx-skip-model-downloads.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index e6c03cbe55..450d9574b0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1514,6 +1514,7 @@ dist_patch_DATA = \ %D%/packages/patches/oneko-remove-nonfree-characters.patch \ %D%/packages/patches/onnx-use-system-googletest.patch \ %D%/packages/patches/onnx-shared-libraries.patch \ + %D%/packages/patches/onnx-skip-model-downloads.patch \ %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \ diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 75faeb8eb8..177d1aaa4f 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -585,16 +585,20 @@ in terms of new algorithms.") (package (name "onnx") (version "1.9.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "onnx" version)) - (patches (search-patches "onnx-use-system-googletest.patch" - "onnx-shared-libraries.patch")) - (sha256 - (base32 "0yjv2axz2vc2ysniwislsp53fsb8f61y1warrr2ppn2d9ijml1d9")) - (modules '((guix build utils))) - (snippet '(delete-file-recursively "third_party")))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/onnx/onnx") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1xnii361f68x0masxgfc4ai7hh3wlxxk56aznwf4m4yr6wqx47ml")) + (file-name (git-file-name name version)) + (patches (search-patches "onnx-use-system-googletest.patch" + "onnx-shared-libraries.patch" + "onnx-skip-model-downloads.patch")) + (modules '((guix build utils))) + (snippet '(delete-file-recursively "third_party")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -625,6 +629,13 @@ in terms of new algorithms.") ;; -j'. (setenv "MAX_JOBS" (number->string (parallel-job-count))))) + (add-before 'check 'make-test-directory-writable + (lambda _ + ;; Make things writable for tests. + (setenv "HOME" (getcwd)) + (for-each make-file-writable + (find-files "onnx/examples" "." + #:directories? #t)))) (add-after 'install 'install-from-cmake (lambda _ ;; Run "make install" in the build tree 'setup.py' diff --git a/gnu/packages/patches/onnx-skip-model-downloads.patch b/gnu/packages/patches/onnx-skip-model-downloads.patch new file mode 100644 index 0000000000..4ab55b4ceb --- /dev/null +++ b/gnu/packages/patches/onnx-skip-model-downloads.patch @@ -0,0 +1,16 @@ +A few tests require downloading models from URLs such as + . +Skip those. + +diff --git a/onnx/backend/test/runner/__init__.py b/onnx/backend/test/runner/__init__.py +index 049ed57b..f236f1bf 100644 +--- a/onnx/backend/test/runner/__init__.py ++++ b/onnx/backend/test/runner/__init__.py +@@ -202,6 +202,7 @@ class Runner(object): + print('Start downloading model {} from {}'.format( + model_test.model_name, + model_test.url)) ++ raise unittest.SkipTest('Skipping download') + urlretrieve(model_test.url, download_file.name) + print('Done') + with tarfile.open(download_file.name) as t: -- cgit v1.2.3 From 65bad4d03684a32598e0c6fb3449e481e37acfde Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Mon, 19 Jul 2021 02:31:42 -0400 Subject: gnu: racket: Unbundle racket-minimal. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This change takes advantage of improved support for layered and tethered installations in Racket 8.2. * gnu/packages/racket.scm (extend-layer): New private variable. This is a script for configuring a new config-tethered layer chaining to an existing Racket installation. * gnu/packages/racket.scm (racket)[source](snippet): Unbundle `racket-minimal`. [inputs]: Remove inputs that properly belong to `racket-minimal`. [native-inputs]: Add `racket-minimal` and `extend-layer`. [arguments]: Stop inheriting from `racket-minimal`. Add phase 'unpack-packages to move the sources and links file into place. Replace 'configure phase using `extend-layer`. Replace 'build phase using `raco setup`. Delete 'install phase. * gnu/packages/patches/racket-sh-via-rktio.patch: Rename to ... * gnu/packages/patches/racket-minimal-sh-via-rktio.patch: ... this file to placate `guix lint`. * gnu/local.mk (dist_patch_DATA): Update accordingly. * gnu/packages/racket.scm (racket-minimal)[source]: Likewise. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 2 +- .../patches/racket-minimal-sh-via-rktio.patch | 87 ++++++++++ gnu/packages/patches/racket-sh-via-rktio.patch | 87 ---------- gnu/packages/racket.scm | 193 ++++++++++++++++++++- 4 files changed, 275 insertions(+), 94 deletions(-) create mode 100644 gnu/packages/patches/racket-minimal-sh-via-rktio.patch delete mode 100644 gnu/packages/patches/racket-sh-via-rktio.patch (limited to 'gnu/local.mk') diff --git a/gnu/local.mk b/gnu/local.mk index 450d9574b0..c530507b1a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1685,7 +1685,7 @@ dist_patch_DATA = \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rtags-separate-rct.patch \ - %D%/packages/patches/racket-sh-via-rktio.patch \ + %D%/packages/patches/racket-minimal-sh-via-rktio.patch \ %D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch \ %D%/packages/patches/rnp-add-version.cmake.patch \ diff --git a/gnu/packages/patches/racket-minimal-sh-via-rktio.patch b/gnu/packages/patches/racket-minimal-sh-via-rktio.patch new file mode 100644 index 0000000000..b4fefd1514 --- /dev/null +++ b/gnu/packages/patches/racket-minimal-sh-via-rktio.patch @@ -0,0 +1,87 @@ +From 3574b567c486d264d680a37586436c3b5a8cb978 Mon Sep 17 00:00:00 2001 +From: Philip McGrath +Date: Thu, 4 Mar 2021 04:11:50 -0500 +Subject: [PATCH] patch rktio_process for "/bin/sh" on Guix + +Racket provides the functions `system` and `process`, +which execute shell commands using `sh` (or `cmd` on Windows). +Racket assumes that `sh` can be found at "/bin/sh", +which is not necessarily true on Guix. + +This patch adds a special case for "/bin/sh" to `rktio_process`, +the C function that implements the core of `system`, `process`, +and related Racket functions. + +Guix should enable the special case by defining the C preprocessor +macro `GUIX_RKTIO_PATCH_BIN_SH` with the path to `sh` in the store. +If: + + 1. The `GUIX_RKTIO_PATCH_BIN_SH` macro is defined; and + + 2. `rktio_process` is called with the exact path "/bin/sh"; and + + 3. The path specified by `GUIX_RKTIO_PATCH_BIN_SH` does exists; + +then `rktio_process` will execute the file specified +by `GUIX_RKTIO_PATCH_BIN_SH` instead of "/bin/sh". + +Compared to previous attempts to patch the Racket sources, +making this change at the C level is both: + + - More comprehensive: it catches all attempts to execute "/bin/sh", + without having to track down the source of every occurance; and + + - Less intrusive: by guarding the special case with a C preprocessor + conditional and a runtime check that the file in the store exists, + we make it much less likely that it will "leak" out of Guix. +--- + src/rktio/rktio_process.c | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +diff --git a/src/rktio/rktio_process.c b/src/rktio/rktio_process.c +index 89202436c0..465ebdd5c5 100644 +--- a/src/rktio/rktio_process.c ++++ b/src/rktio/rktio_process.c +@@ -1224,12 +1224,14 @@ int rktio_process_allowed_flags(rktio_t *rktio) + /*========================================================================*/ + + rktio_process_result_t *rktio_process(rktio_t *rktio, +- const char *command, int argc, rktio_const_string_t *argv, ++ /* PATCHED for Guix (next line) */ ++ const char *_guix_orig_command, int argc, rktio_const_string_t *argv, + rktio_fd_t *stdout_fd, rktio_fd_t *stdin_fd, rktio_fd_t *stderr_fd, + rktio_process_t *group_proc, + const char *current_directory, rktio_envvars_t *envvars, + int flags) + { ++ const char *command; /* PATCHED for Guix */ + rktio_process_result_t *result; + intptr_t to_subprocess[2], from_subprocess[2], err_subprocess[2]; + int pid; +@@ -1255,6 +1257,23 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, + int i; + #endif + ++/* BEGIN PATCH for Guix */ ++#if defined(GUIX_RKTIO_PATCH_BIN_SH) ++# define GUIX_AS_a_STR_HELPER(x) #x ++# define GUIX_AS_a_STR(x) GUIX_AS_a_STR_HELPER(x) ++ /* A level of indirection makes `#` work as needed: */ ++ command = ++ ((0 == strcmp(_guix_orig_command, "/bin/sh")) ++ && rktio_file_exists(rktio, GUIX_AS_a_STR(GUIX_RKTIO_PATCH_BIN_SH))) ++ ? GUIX_AS_a_STR(GUIX_RKTIO_PATCH_BIN_SH) ++ : _guix_orig_command; ++# undef GUIX_AS_a_STR ++# undef GUIX_AS_a_STR_HELPER ++#else ++ command = _guix_orig_command; ++#endif ++/* END PATCH for Guix */ ++ + /* avoid compiler warnings: */ + to_subprocess[0] = -1; + to_subprocess[1] = -1; +-- +2.21.1 (Apple Git-122.3) + diff --git a/gnu/packages/patches/racket-sh-via-rktio.patch b/gnu/packages/patches/racket-sh-via-rktio.patch deleted file mode 100644 index b4fefd1514..0000000000 --- a/gnu/packages/patches/racket-sh-via-rktio.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 3574b567c486d264d680a37586436c3b5a8cb978 Mon Sep 17 00:00:00 2001 -From: Philip McGrath -Date: Thu, 4 Mar 2021 04:11:50 -0500 -Subject: [PATCH] patch rktio_process for "/bin/sh" on Guix - -Racket provides the functions `system` and `process`, -which execute shell commands using `sh` (or `cmd` on Windows). -Racket assumes that `sh` can be found at "/bin/sh", -which is not necessarily true on Guix. - -This patch adds a special case for "/bin/sh" to `rktio_process`, -the C function that implements the core of `system`, `process`, -and related Racket functions. - -Guix should enable the special case by defining the C preprocessor -macro `GUIX_RKTIO_PATCH_BIN_SH` with the path to `sh` in the store. -If: - - 1. The `GUIX_RKTIO_PATCH_BIN_SH` macro is defined; and - - 2. `rktio_process` is called with the exact path "/bin/sh"; and - - 3. The path specified by `GUIX_RKTIO_PATCH_BIN_SH` does exists; - -then `rktio_process` will execute the file specified -by `GUIX_RKTIO_PATCH_BIN_SH` instead of "/bin/sh". - -Compared to previous attempts to patch the Racket sources, -making this change at the C level is both: - - - More comprehensive: it catches all attempts to execute "/bin/sh", - without having to track down the source of every occurance; and - - - Less intrusive: by guarding the special case with a C preprocessor - conditional and a runtime check that the file in the store exists, - we make it much less likely that it will "leak" out of Guix. ---- - src/rktio/rktio_process.c | 21 ++++++++++++++++++++- - 1 file changed, 20 insertions(+), 1 deletion(-) - -diff --git a/src/rktio/rktio_process.c b/src/rktio/rktio_process.c -index 89202436c0..465ebdd5c5 100644 ---- a/src/rktio/rktio_process.c -+++ b/src/rktio/rktio_process.c -@@ -1224,12 +1224,14 @@ int rktio_process_allowed_flags(rktio_t *rktio) - /*========================================================================*/ - - rktio_process_result_t *rktio_process(rktio_t *rktio, -- const char *command, int argc, rktio_const_string_t *argv, -+ /* PATCHED for Guix (next line) */ -+ const char *_guix_orig_command, int argc, rktio_const_string_t *argv, - rktio_fd_t *stdout_fd, rktio_fd_t *stdin_fd, rktio_fd_t *stderr_fd, - rktio_process_t *group_proc, - const char *current_directory, rktio_envvars_t *envvars, - int flags) - { -+ const char *command; /* PATCHED for Guix */ - rktio_process_result_t *result; - intptr_t to_subprocess[2], from_subprocess[2], err_subprocess[2]; - int pid; -@@ -1255,6 +1257,23 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, - int i; - #endif - -+/* BEGIN PATCH for Guix */ -+#if defined(GUIX_RKTIO_PATCH_BIN_SH) -+# define GUIX_AS_a_STR_HELPER(x) #x -+# define GUIX_AS_a_STR(x) GUIX_AS_a_STR_HELPER(x) -+ /* A level of indirection makes `#` work as needed: */ -+ command = -+ ((0 == strcmp(_guix_orig_command, "/bin/sh")) -+ && rktio_file_exists(rktio, GUIX_AS_a_STR(GUIX_RKTIO_PATCH_BIN_SH))) -+ ? GUIX_AS_a_STR(GUIX_RKTIO_PATCH_BIN_SH) -+ : _guix_orig_command; -+# undef GUIX_AS_a_STR -+# undef GUIX_AS_a_STR_HELPER -+#else -+ command = _guix_orig_command; -+#endif -+/* END PATCH for Guix */ -+ - /* avoid compiler warnings: */ - to_subprocess[0] = -1; - to_subprocess[1] = -1; --- -2.21.1 (Apple Git-122.3) - diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm index 6b2a011d51..490619d517 100644 --- a/gnu/packages/racket.scm +++ b/gnu/packages/racket.scm @@ -73,7 +73,7 @@ %installer-mirrors)) (sha256 "13qfg56w554vdj5iwa8lpacy83s7bzhhyr44pjns68mkhj69ring") (patches (search-patches - "racket-sh-via-rktio.patch")))) + "racket-minimal-sh-via-rktio.patch")))) (home-page "https://racket-lang.org") (synopsis "Racket without bundled packages such as DrRacket") (inputs @@ -183,10 +183,52 @@ DrRacket IDE, are not included.") %installer-mirrors)) (sha256 (base32 - "10sgzsraxzxp1k2y2wvz8rcjwvhbcd6k72l9lyqr34yazlwfdz26")))) + "10sgzsraxzxp1k2y2wvz8rcjwvhbcd6k72l9lyqr34yazlwfdz26")) + (snippet + #~(begin + (use-modules (guix build utils) + (ice-9 match) + (ice-9 regex)) + ;; unbundle minimal Racket + (for-each delete-file-recursively + '("collects" + "doc" + "etc" + "README" + "src")) + ;; unbundle package sources included elsewhere + (define (substitute/delete file pattern) + (substitute + file + (list (cons pattern + (lambda (line matches) + ;; must match exactly once + (match matches + ((m) + (string-append (match:prefix m) + (match:suffix m))))))))) + (define (unbundle-pkg pkg) + (define quoted-pkg (regexp-quote pkg)) + (with-directory-excursion "share" + (substitute/delete + "links.rktd" + (string-append + "[(][^()]+[(]#\"pkgs\" #\"" + quoted-pkg + "\"[)][)]")) + (with-directory-excursion "pkgs" + (substitute/delete + "pkgs.rktd" + (string-append + "[(]\"" + quoted-pkg + "\" \\. #s[(]" + "(pkg-info|[(]sc-pkg-info pkg-info 3[)])" + " [(][^()]+[)] [^()]+[)][)]")) + (delete-file-recursively pkg)))) + (unbundle-pkg "racket-lib"))))) (inputs - `(;; sqlite and libraries for `racket/draw' are needed to build the doc. - ("cairo" ,cairo) + `(("cairo" ,cairo) ("fontconfig" ,fontconfig) ("glib" ,glib) ("glu" ,glu) @@ -199,8 +241,67 @@ DrRacket IDE, are not included.") ("mpfr" ,mpfr) ("pango" ,pango) ("unixodbc" ,unixodbc) - ("libedit" ,libedit) - ,@(package-inputs racket-minimal))) + ("libedit" ,libedit))) + (native-inputs + `(("racket" ,racket-minimal) + ("extend-layer" ,extend-layer))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'unpack-packages + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) + (let ((racket (assoc-ref (or native-inputs inputs) "racket")) + (prefix (assoc-ref outputs "out"))) + (mkdir-p (string-append prefix "/share/racket/pkgs")) + (copy-recursively + "share/links.rktd" + (string-append prefix "/share/racket/links.rktd")) + (copy-recursively + "share/pkgs" + (string-append prefix "/share/racket/pkgs")) + #t))) + (replace 'configure + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) + (let ((racket (assoc-ref (or native-inputs inputs) "racket")) + (prefix (assoc-ref outputs "out"))) + (apply invoke + (string-append racket "/bin/racket") + (assoc-ref inputs "extend-layer") + racket + prefix + (map + (lambda (lib) + (string-append (assoc-ref inputs lib) "/lib")) + '("cairo" + "fontconfig" + "glib" + "glu" + "gmp" + "gtk+" + "libjpeg" + "libpng" + "libx11" + "mesa" + "mpfr" + "pango" + "unixodbc" + "libedit"))) + #t))) + (replace 'build + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) + (invoke (string-append (assoc-ref (or native-inputs inputs) + "racket") + "/bin/racket") + "--config" + (string-append (assoc-ref outputs "out") + "/etc/racket") + "-l" + "raco" + "setup") + #t)) + (delete 'install)) + ;; we still don't have these: + #:tests? #f)) (synopsis "A programmable programming language in the Scheme family") (description "Racket is a general-purpose programming language in the Scheme family, @@ -211,3 +312,83 @@ languages to complete language implementations. The main Racket distribution comes with many bundled packages, including the DrRacket IDE, libraries for GUI and web programming, and implementations of languages such as Typed Racket, R5RS and R6RS Scheme, Algol 60, and Datalog."))) + + +(define extend-layer + (scheme-file + "extend-layer.rkt" + `(module + extend-layer racket/base + (require racket/cmdline + racket/match + racket/file + racket/list + racket/pretty) + (define config-file-pth + "etc/racket/config.rktd") + (define (build-path-string . args) + (path->string (apply build-path args))) + (define rx:racket + ;; Guile's reader doesn't support #rx"racket" + (regexp "racket")) + (command-line + #:args (parent-layer prefix . lib-dir*) + (let* ([config + (for/fold + ([config (file->value (build-path parent-layer + config-file-pth))]) + ([spec (in-list + '((lib-dir lib-search-dirs "lib/racket") + (share-dir share-search-dirs "share/racket") + (links-file + links-search-files + "share/racket/links.rktd") + (pkgs-dir pkgs-search-dirs "share/racket/pkgs") + (bin-dir bin-search-dirs "bin") + (man-dir man-search-dirs "share/man") + (doc-dir doc-search-dirs "share/doc/racket") + (include-dir + include-search-dirs + "include/racket")))]) + (match-define (list main-key search-key pth) spec) + (hash-set* + config + main-key + (build-path-string prefix pth) + search-key + (list* #f + (hash-ref config + main-key + (build-path-string parent-layer pth)) + (filter values (hash-ref config search-key null)))))] + [config + (hash-set config + 'apps-dir + (build-path-string prefix "share/applications"))] + [config + ;; place new foreign lib-search-dirs before old + ;; foreign dirs, but after Racket layers + (let-values + ([(rkt extra) + (partition (lambda (pth) + (or (not pth) + (regexp-match? rx:racket pth))) + (hash-ref config 'lib-search-dirs))]) + (hash-set config + 'lib-search-dirs + (append rkt + lib-dir* + extra)))] + [bin-dir + (hash-ref config 'bin-dir)] + [config + (hash-set* config + 'config-tethered-console-bin-dir bin-dir + 'config-tethered-gui-bin-dir bin-dir)] + [new-config-pth + (build-path prefix config-file-pth)]) + (make-parent-directory* new-config-pth) + (call-with-output-file* + new-config-pth + (lambda (out) + (pretty-write config out)))))))) -- cgit v1.2.3