summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk12
-rw-r--r--gnu/packages/algebra.scm4
-rw-r--r--gnu/packages/bootloaders.scm6
-rw-r--r--gnu/packages/check.scm29
-rw-r--r--gnu/packages/code.scm1
-rw-r--r--gnu/packages/compression.scm44
-rw-r--r--gnu/packages/coq.scm151
-rw-r--r--gnu/packages/debug.scm56
-rw-r--r--gnu/packages/disk.scm1
-rw-r--r--gnu/packages/django.scm4
-rw-r--r--gnu/packages/ebook.scm46
-rw-r--r--gnu/packages/emacs-xyz.scm69
-rw-r--r--gnu/packages/emulators.scm4
-rw-r--r--gnu/packages/freedesktop.scm1
-rw-r--r--gnu/packages/games.scm66
-rw-r--r--gnu/packages/golang.scm163
-rw-r--r--gnu/packages/gtk.scm4
-rw-r--r--gnu/packages/guile-xyz.scm28
-rw-r--r--gnu/packages/haskell-xyz.scm2
-rw-r--r--gnu/packages/language.scm1
-rw-r--r--gnu/packages/linux.scm16
-rw-r--r--gnu/packages/lisp-xyz.scm7
-rw-r--r--gnu/packages/machine-learning.scm128
-rw-r--r--gnu/packages/mail.scm32
-rw-r--r--gnu/packages/maths.scm61
-rw-r--r--gnu/packages/music.scm49
-rw-r--r--gnu/packages/ocaml.scm21
-rw-r--r--gnu/packages/parallel.scm94
-rw-r--r--gnu/packages/patches/cpuinfo-system-libraries.patch50
-rw-r--r--gnu/packages/patches/fp16-system-libraries.patch105
-rw-r--r--gnu/packages/patches/fxdiv-system-libraries.patch44
-rw-r--r--gnu/packages/patches/onnx-shared-libraries.patch24
-rw-r--r--gnu/packages/patches/onnx-skip-model-downloads.patch16
-rw-r--r--gnu/packages/patches/onnx-use-system-googletest.patch (renamed from gnu/packages/patches/python-onnx-use-system-googletest.patch)3
-rw-r--r--gnu/packages/patches/pthreadpool-system-libraries.patch79
-rw-r--r--gnu/packages/patches/racket-minimal-sh-via-rktio.patch (renamed from gnu/packages/patches/racket-sh-via-rktio.patch)8
-rw-r--r--gnu/packages/patches/xnnpack-system-libraries.patch1499
-rw-r--r--gnu/packages/pdf.scm4
-rw-r--r--gnu/packages/pulseaudio.scm11
-rw-r--r--gnu/packages/python-web.scm12
-rw-r--r--gnu/packages/python-xyz.scm28
-rw-r--r--gnu/packages/racket.scm597
-rw-r--r--gnu/packages/rpm.scm200
-rw-r--r--gnu/packages/security-token.scm18
-rw-r--r--gnu/packages/serialization.scm71
-rw-r--r--gnu/packages/text-editors.scm11
-rw-r--r--gnu/packages/web.scm129
47 files changed, 3625 insertions, 384 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index c3a5e9c617..7491e22b41 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -494,6 +494,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				\
@@ -932,6 +933,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/coreutils-gnulib-tests.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               \
@@ -1025,12 +1027,14 @@ dist_patch_DATA =						\
   %D%/packages/patches/foobillard++-pkg-config.patch		\
   %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch	\
   %D%/packages/patches/foomatic-filters-CVE-2015-8560.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	\
   %D%/packages/patches/freeglut-gcc-compat.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	\
@@ -1482,6 +1486,9 @@ 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/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	\
@@ -1510,6 +1517,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		\
@@ -1600,7 +1608,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-mox3-python3.6-compat.patch	\
   %D%/packages/patches/python-testtools.patch			\
   %D%/packages/patches/python-typing-inspect-fix.patch		\
-  %D%/packages/patches/python-onnx-use-system-googletest.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	\
@@ -1650,7 +1657,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		\
@@ -1819,6 +1826,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/algebra.scm b/gnu/packages/algebra.scm
index 1c7f94ac34..97592fda7e 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -343,7 +343,7 @@ precision.")
 (define-public giac
   (package
     (name "giac")
-    (version "1.7.0-21")
+    (version "1.7.0-23")
     (source
      (origin
        (method url-fetch)
@@ -355,7 +355,7 @@ precision.")
                            "~parisse/debian/dists/stable/main/source/"
                            "giac_" version ".tar.gz"))
        (sha256
-        (base32 "1w8wyz559ljsjxf5xjkjvgkac1xpj71qzy6sycnbsqza4m0j28l5"))))
+        (base32 "06dv46y4lh8f9pzj7vcimdl2rp1kk5d16q94zq0iajzzcwppqdz1"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((ice-9 ftw)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index b4bf72224a..d8d1691801 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <vagrant@debian.org>
-;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
@@ -59,11 +59,11 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages web)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -925,7 +925,7 @@ to Novena upstream, does not load u-boot.img from the first partition.")
         (substitute-keyword-arguments (package-arguments base)
           ((#:phases phases)
            `(modify-phases ,phases
-              (add-after 'patch-rockpro64-config 'set-environment
+              (add-after 'unpack 'set-environment
                 (lambda* (#:key inputs #:allow-other-keys)
                   (setenv "BL31"
                           (search-input-file inputs "/bl31.elf"))))
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index fbdc46cd4a..fd35eed041 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -26,7 +26,7 @@
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2015, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
 ;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
@@ -733,6 +733,33 @@ generation.")
               (base32
                "0270msj6n7mggh4xqqjp54kswbl7mkcc8px1p5dqdpmw5ngh9fzk"))))))
 
+(define-public googlebenchmark
+  (package
+    (name "googlebenchmark")
+    (version "1.5.3")
+    (home-page "https://github.com/google/benchmark")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page)
+                                  (commit (string-append "v" version))))
+              (file-name (git-file-name "google-benchmark" version))
+              (sha256
+               (base32
+                "1hls0aqqj5cfldn9jfpvzjhpxkhrydrz9crp477rwllwjsybdxw7"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
+                               (string-append
+                                "-DGOOGLETEST_PATH="
+                                (assoc-ref %build-inputs "googletest")))))
+    (inputs
+     `(("googletest" ,(package-source googletest))))
+    (synopsis "C++ library to support the benchmarking of functions")
+    (description
+     "The googlebenchmark C++ library support the benchmarking of functions,
+similar to unit tests.")
+    (license license:asl2.0)))
+
 (define-public cpputest
   (package
     (name "cpputest")
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 9a4e1511ed..a414cde3de 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -64,6 +64,7 @@
   #:use-module (gnu packages perl-compression)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages web)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index c6ddfb4333..560e9d076a 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
 ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2277,6 +2278,49 @@ reading from and writing to ZIP archives. ")
     ;; distributed under zlib terms.
     (license (list license:lgpl2.1+ license:zlib))))
 
+(define-public zchunk
+  (package
+    (name "zchunk")
+    (version "1.1.16")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/zchunk/zchunk")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nlzwnv6wh2yjyyv27f81jnvmk7psgpbnw7dsdp7frfkya569hgv"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("curl" ,curl)))
+    (propagated-inputs
+     `(("zstd" ,zstd "lib")))           ;in Requires.private of zck.pc
+    (home-page "https://github.com/zchunk/zchunk")
+    (synopsis "Compressed file format for efficient deltas")
+    (description "The zchunk compressed file format allows splitting a file
+into independent chunks.  This makes it possible to retrieve only changed
+chunks when downloading a new version of the file, and also makes zchunk files
+efficient over rsync.  Along with the library, this package provides the
+following utilities:
+@table @command
+@item unzck
+To decompress a zchunk file.
+@item zck
+To compress a new zchunk file, or re-compress an existing one.
+@item zck_delta_size
+To calculate the difference between two zchunk files.
+@item zck_gen_zdict
+To create a dictionary for a zchunk file.
+@item zck_read_header
+To read a zchunk header.
+@item zckdl
+To download a zchunk file.
+@end table")
+    (license license:bsd-2)))
+
 (define-public zutils
   (package
     (name "zutils")
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index fa1f4078b8..4ad172c6b0 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018-2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Dan Frumin <dfrumin@cs.ru.nl>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
@@ -38,6 +38,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages texinfo)
+  #:use-module (guix build-system dune)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system ocaml)
   #:use-module (guix download)
@@ -50,7 +51,7 @@
 (define-public coq
   (package
     (name "coq")
-    (version "8.11.2")
+    (version "8.13.2")
     (source
      (origin
        (method git-fetch)
@@ -60,78 +61,24 @@
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1gia82dkmzqspw2w3s4gjyh39ghbmw4i41i4hyzc91g7mza17nbz"))))
+         "15r0cm3p9dlsxbg0lf05njjp1xi1y74vxvq6drxjykax67x95l8a"))))
     (native-search-paths
      (list (search-path-specification
             (variable "COQPATH")
-            (files (list "lib/coq/user-contrib")))))
-    (build-system ocaml-build-system)
-    (outputs '("out" "ide"))
+            (files (list "lib/coq/user-contrib")))
+           (search-path-specification
+            (variable "COQLIB")
+            (files (list "lib/ocaml/site-lib/coq"))
+            (separator #f))))
+    (build-system dune-build-system)
     (inputs
-     `(("lablgtk" ,lablgtk3)
-       ("python" ,python-2)
-       ("camlp5" ,camlp5)
-       ("ocaml-num" ,ocaml-num)))
+     `(("gmp" ,gmp)
+       ("ocaml-zarith" ,ocaml-zarith)))
     (native-inputs
-     `(("ocaml-ounit" ,ocaml-ounit)
-       ("rsync" ,rsync)
-       ("which" ,which)))
+     `(("which" ,which)))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'make-git-checkout-writable
-           (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (mandir (string-append out "/share/man"))
-                    (browser "icecat -remote \"OpenURL(%s,new-tab)\""))
-               (invoke "./configure"
-                       "-prefix" out
-                       "-mandir" mandir
-                       "-browser" browser
-                       "-coqide" "opt"))))
-         (replace 'build
-           (lambda _
-             (invoke "make"
-                     "-j" (number->string (parallel-job-count))
-                     "world")))
-         (delete 'check)
-         (add-after 'install 'remove-duplicate
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (coqtop (string-append bin "/coqtop"))
-                    (coqidetop (string-append bin "/coqidetop"))
-                    (coqtop.opt (string-append coqtop ".opt"))
-                    (coqidetop.opt (string-append coqidetop ".opt")))
-               ;; These files are exact copies without `.opt` extension.
-               ;; Removing these saves 35 MiB in the resulting package.
-               ;; Unfortunately, completely deleting them breaks coqide.
-               (delete-file coqtop.opt)
-               (delete-file coqidetop.opt)
-               (symlink coqtop coqtop.opt)
-               (symlink coqidetop coqidetop.opt))
-             #t))
-         (add-after 'install 'install-ide
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (ide (assoc-ref outputs "ide")))
-               (mkdir-p (string-append ide "/bin"))
-               (rename-file (string-append out "/bin/coqide")
-                            (string-append ide "/bin/coqide")))
-             #t))
-         (add-after 'install 'check
-           (lambda _
-             (with-directory-excursion "test-suite"
-               ;; These two tests fail.
-               ;; Fails because the output is not formatted as expected.
-               (delete-file-recursively "coq-makefile/timing")
-               ;; Fails because we didn't build coqtop.byte.
-               (delete-file "misc/printers.sh")
-               (invoke "make")))))))
+     `(#:package "coq"
+       #:test-target "test-suite"))
     (home-page "https://coq.inria.fr")
     (synopsis "Proof assistant for higher-order logic")
     (description
@@ -142,6 +89,31 @@ It is developed using Objective Caml and Camlp5.")
     ;; Some of the documentation is distributed under opl1.0+.
     (license (list license:lgpl2.1 license:opl1.0+))))
 
+(define-public coq-ide-server
+  (package
+    (inherit coq)
+    (name "coq-ide-server")
+    (arguments
+     `(#:tests? #f
+       #:package "coqide-server"))
+    (inputs
+     `(("coq" ,coq)
+       ("gmp" ,gmp)
+       ("ocaml-zarith" ,ocaml-zarith)))))
+
+(define-public coq-ide
+  (package
+    (inherit coq)
+    (name "coq-ide")
+    (arguments
+     `(#:tests? #f
+       #:package "coqide"))
+    (propagated-inputs
+     `(("coq" ,coq)
+       ("coq-ide-server" ,coq-ide-server)))
+    (inputs
+     `(("lablgtk3" ,lablgtk3)))))
+
 (define-public proof-general
   ;; The latest release is from 2016 and there has been more than 450 commits
   ;; since then.
@@ -274,7 +246,7 @@ inside Coq.")
 (define-public coq-gappa
   (package
     (name "coq-gappa")
-    (version "1.4.4")
+    (version "1.4.6")
     (source
      (origin
        (method git-fetch)
@@ -284,7 +256,7 @@ inside Coq.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0f3g3wjkvfkm961l4jpckhsqd43jnvm7f5qqk78qc32zh1fg339n"))))
+         "0492i0ksrz6dnc1d57jzsbmdlb9fp9hrh9ib5v8j0yqxpyi0x8f4"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -298,13 +270,14 @@ inside Coq.")
     (inputs
      `(("gmp" ,gmp)
        ("mpfr" ,mpfr)
+       ("ocaml-zarith" ,ocaml-zarith)
        ("boost" ,boost)))
     (propagated-inputs
      `(("coq-flocq" ,coq-flocq)))
     (arguments
      `(#:configure-flags
-       (list (string-append "--libdir=" (assoc-ref %outputs "out")
-                            "/lib/coq/user-contrib/Gappa"))
+       (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
+                            "/lib/coq/user-contrib"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'fix-remake
@@ -334,7 +307,7 @@ assistant.")
 (define-public coq-mathcomp
   (package
     (name "coq-mathcomp")
-    (version "1.11.0")
+    (version "1.12.0")
     (source
      (origin
        (method git-fetch)
@@ -343,7 +316,7 @@ assistant.")
              (commit (string-append "mathcomp-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1axywpa1jcpnidd86irpd1gdbbg2sfbwc652675xisq5wnmfmf6f"))))
+        (base32 "12cgrmzlcjnp9kv9zxsk34fgf0qfa35jdb23cbf13kmg8dyfi3h5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
@@ -429,7 +402,7 @@ theorems between the two libraries.")
 (define-public coq-bignums
   (package
     (name "coq-bignums")
-    (version "8.11.0")
+    (version "8.13.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -438,13 +411,14 @@ theorems between the two libraries.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp"))))
+                "1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml" ,ocaml)
        ("coq" ,coq)))
     (inputs
-     `(("camlp5" ,camlp5)))
+     `(("camlp5" ,camlp5)
+       ("ocaml-zarith" ,ocaml-zarith)))
     (arguments
      `(#:tests? #f ; No test target.
        #:make-flags
@@ -462,7 +436,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
 (define-public coq-interval
   (package
     (name "coq-interval")
-    (version "4.0.0")
+    (version "4.3.0")
     (source
      (origin
        (method git-fetch)
@@ -472,7 +446,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "01iz6qmnsm6b9s1vmdjs79vjx9xgwzn5rwyjp6bvs8hg3zlmhpip"))))
+         "1jqvd17czhliscf40idhnxgrha620039ilrdyfahn71dg2jmzqnm"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -484,11 +458,12 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
      `(("flocq" ,coq-flocq)
        ("bignums" ,coq-bignums)
        ("coquelicot" ,coq-coquelicot)
-       ("mathcomp" ,coq-mathcomp)))
+       ("mathcomp" ,coq-mathcomp)
+       ("ocaml-zarith" ,ocaml-zarith)))
     (arguments
      `(#:configure-flags
-       (list (string-append "--libdir=" (assoc-ref %outputs "out")
-                            "/lib/coq/user-contrib/Gappa"))
+       (list (string-append "COQUSERCONTRIB=" (assoc-ref %outputs "out")
+                            "/lib/coq/user-contrib"))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'fix-remake
@@ -558,21 +533,23 @@ uses Ltac to synthesize the substitution operation.")
 (define-public coq-equations
   (package
     (name "coq-equations")
-    (version "1.2.3")
+    (version "1.2.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/mattam82/Coq-Equations")
-                    (commit (string-append "v" version "-8.11"))))
+                    (commit (string-append "v" version "-8.13"))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1srxz1rws8jsh7402g2x2vcqgjbbsr64dxxj5d2zs48pmhb20csf"))))
+                "0i014lshsdflzw6h0qxra9d2f0q82vffxv2f29awbb9ad0p4rq4q"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ocaml"  ,ocaml)
        ("coq"    ,coq)
        ("camlp5" ,camlp5)))
+    (inputs
+     `(("ocaml-zarith" ,ocaml-zarith)))
     (arguments
      `(#:test-target "test-suite"
        #:phases
@@ -598,7 +575,7 @@ kernel.")
 (define-public coq-stdpp
   (package
     (name "coq-stdpp")
-    (version "1.4.0")
+    (version "1.5.0")
     (synopsis "Alternative Coq standard library std++")
     (source (origin
               (method git-fetch)
@@ -608,7 +585,7 @@ kernel.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r"))))
+                "1ym0fy620imah89p8b6rii8clx2vmnwcrbwxl3630h24k42092nf"))))
     (build-system gnu-build-system)
     (inputs
      `(("coq" ,coq)))
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 9a4ce7067a..f4ef2fd5e1 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020, 2021 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@@ -38,6 +38,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages c)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
@@ -55,6 +56,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages serialization)
@@ -171,6 +173,58 @@ intended for use by people who discover and report bugs in compilers and other
 tools that process C/C++ code.")
     (license license:ncsa)))
 
+(define-public c-vise
+  (package
+    (name "c-vise")
+    (version "2.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/marxin/cvise")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "0f6m58rak87gvcvxxcgp1bzbsv1q618h0iipmv0dx9jv1bn0qv43"))
+       (file-name (git-file-name name version))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("flex" ,flex)
+       ("python-pytest" ,python-pytest)
+       ("python-pytest-flake8" ,python-pytest-flake8)))
+    (inputs
+     `(("bash" ,bash-minimal)           ; For wrap-program
+       ("clang" ,clang)
+       ("llvm" ,llvm)
+       ("python" ,python)
+       ("python-pebble" ,python-pebble)
+       ("python-psutil" ,python-psutil)
+       ("unifdef" ,unifdef)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'hardcode-paths
+           (lambda _
+            (substitute* "cvise.py"
+              (("/bin/bash") (which "bash"))
+              (("(.*)# Special case for clang-format" & >)
+               (string-append > "# Special case for unifdef\n"
+                              > "programs['unifdef'] = '" (which "unifdef") "'\n"
+                              &)))))
+         (add-after 'install 'wrap
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (python-path (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/cvise")
+                 `("PYTHONPATH" ":" prefix (,python-path)))
+               #t))))))
+    (home-page "https://github.com/marxin/cvise")
+    (synopsis "Reducer for interesting code")
+    (description
+     "C-Vise is a Python port of the C-Reduce tool that is fully compatible
+and uses the same efficient LLVM-based C/C++ @code{clang_delta} reduction
+tool.")
+    (license license:ncsa)))
+
 (define-public american-fuzzy-lop
   (let ((machine (match (or (%current-target-system)
                             (%current-system))
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 2a4dbee748..0495be3a36 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -71,6 +71,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages samba)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages swig)
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 914217a84e..1988630282 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -48,13 +48,13 @@
 (define-public python-django
   (package
     (name "python-django")
-    (version "3.2.4")
+    (version "3.2.5")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Django" version))
               (sha256
                (base32
-                "15pjwyvrx4n8gi8n51b14wp54bg4jqapr25p52597zn6ikdxijb6"))))
+                "1kam3301jl53vm0mhflwwsqy5d7kb5dksmjanlaj7v7xakm5z81x"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 95619e1818..9ed234f62e 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,7 @@
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
@@ -596,3 +598,47 @@ Some of the current features:
     (description "xCHM is a graphical CHM file viewer.  It is a frontend to
 the CHM library CHMLIB.")
     (license license:gpl2+)))
+
+(define-public libmobi
+  (package
+    (name "libmobi")
+    (version "0.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/bfabiszewski/libmobi/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0yps72cm609xn2k7alflkdhp9kgr1w7zzyxjygz0n1kqrdcplihh"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)))
+    (inputs
+     `(("zlib" ,zlib)
+       ("libxml2" ,libxml2)))
+    (home-page "https://github.com/bfabiszewski/libmobi/")
+    (synopsis "C library for handling MOBI formats")
+    (description "Libmobi is a C library for handling MOBI ebook
+format documents, with the following features:
+
+@itemize
+@item reading and parsing:
+@itemize
+@item some older text Palmdoc formats (pdb),
+@item Mobipocket files (prc, mobi),
+@item newer MOBI files including KF8 format (azw, azw3),
+@item Replica Print files (azw4)
+@end itemize
+@item recreating source files using indices
+@item reconstructing references (links and embedded) in html files
+@item reconstructing source structure that can be fed back to kindlegen
+@item reconstructing dictionary markup (orth, infl tags)
+@item writing back loaded documents
+@item metadata editing
+@item handling encrypted documents
+@end itemize\n")
+    (license license:lgpl3+)))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index eb4902aa8f..a008b9ded6 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -196,6 +196,7 @@
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages rust-apps)
   #:use-module (gnu packages scheme)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages speech)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages mp3)
@@ -732,7 +733,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
 (define-public emacs-magit
   (package
     (name "emacs-magit")
-    (version "3.1.1")
+    (version "3.2.0")
     (source
      (origin
        (method git-fetch)
@@ -741,7 +742,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0sn4iiicmqfqmvi7zwii6qdp35k09kqn36rpalv0w1i4jcm6j9kk"))))
+        (base32 "1ig4yzvd9hzvajjc46wk2g4xyg1ign92wgasa4wgn4hh878i3r1y"))))
     (build-system emacs-build-system)
     (arguments
      `(#:emacs ,emacs-no-x             ;module support is required
@@ -4788,7 +4789,7 @@ configuration, cache, and other data.")
 (define-public emacs-string-inflection
   (package
     (name "emacs-string-inflection")
-    (version "1.0.12")
+    (version "1.0.14")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4797,7 +4798,7 @@ configuration, cache, and other data.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0f3nkfdpngax4zfw75jca2wywwh31ha6ywddh4125lbxi3y6m7s9"))))
+                "0g4lm384380q03pdspqzv8rb2gppb77m354r0xzw71340w8xh3hd"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("ert-runner" ,emacs-ert-runner)))
@@ -8326,7 +8327,7 @@ regexp that matches all known keywords.")
 (define-public emacs-perspective
   (package
     (name "emacs-perspective")
-    (version "2.15")
+    (version "2.16")
     (source
      (origin
        (method git-fetch)
@@ -8335,7 +8336,7 @@ regexp that matches all known keywords.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0l9i7ky25d9ii04w2brgxc8dk2rky50naba8lbfqi7hcc34z8pp6"))))
+        (base32 "0hg4rj3v748f6k4fwa21g683vs3bfya0wg9r9xdg216kdhfdk5j7"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -11405,7 +11406,7 @@ extensions.")
 (define-public emacs-evil-collection
   (package
     (name "emacs-evil-collection")
-    (version "0.0.5")
+    (version "0.0.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -11414,7 +11415,7 @@ extensions.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0dxrwcf5dnww0a9mvwjkcgm8ry3y282v9l85jh0645zk71nz1in3"))))
+                "0ssb3n1i67b6zp2j8djaalkr33x4c7zalw6vl6p5kqxkh8vy8cdf"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)
@@ -11786,7 +11787,7 @@ pasting into and from @code{tmux} paste buffers.")
 (define-public emacs-evil-nerd-commenter
   (package
     (name "emacs-evil-nerd-commenter")
-    (version "3.5.4")
+    (version "3.5.5")
     (source
      (origin
        (method git-fetch)
@@ -11796,7 +11797,7 @@ pasting into and from @code{tmux} paste buffers.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1vyl8lidhjph7k86n8q09mwqpasaxsmwb8vi5i2gcd6klds9hg0d"))))
+         "1qrlg4cxlsd4cf1z8j2662pfb9p6pnqpsyb74flja9cqv6g5ylp8"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-evil" ,emacs-evil)))
     (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
@@ -12290,6 +12291,34 @@ a visual interface, reduce overhead of completion by using statistic method,
 extensibility.")
     (license license:gpl3+)))
 
+(define-public emacs-autocrypt
+  (let ((commit "5b55f8d37545e9c441788627c17e350d7edf4055")
+        (revision "0"))
+    (package
+      (name "emacs-autocrypt")
+      (version (git-version "0.4.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.sr.ht/~zge/autocrypt")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0b06xnjkgwjpxl96mdi674pmvdaiwncifi1a30wxhl1dwr7kr084"))))
+      (build-system emacs-build-system)
+      (home-page "https://git.sr.ht/~zge/autocrypt")
+      (synopsis "Autocrypt implementation for Emacs")
+      (description "@code{emacs-autocrypt} is an implementation of
+Autocrypt (@url{https://autocrypt.org/}) for various Emacs MUAs.  Autocrypt is
+a cryptographic protocol for email clients aiming to simplify key exchange and
+encryption.
+
+Run @code{M-x autocrypt-create-account} to initialize an autocrypt key, and
+add @code{autocrypt-mode} to your MUA's hooks (@code{gnus-mode-hook},
+@code{message-mode-hook}, ...) to activate its usage.")
+      (license license:cc0))))
+
 (define-public emacs-nginx-mode
   (package
     (name "emacs-nginx-mode")
@@ -15654,7 +15683,7 @@ Features:
 (define-public emacs-evil-matchit
   (package
     (name "emacs-evil-matchit")
-    (version "2.3.12")
+    (version "2.3.13")
     (source
      (origin
        (method git-fetch)
@@ -15663,7 +15692,7 @@ Features:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0l4ash907d91vccqdxjz1v5spd8f4va0vrdri6h9y1qc67mjlsph"))))
+        (base32 "1j1p4z6ps58nbsh55l9h30gxbkrzwzkjpq7zl50q6yfc84z7byzk"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -16991,7 +17020,7 @@ tables of contents.")
 (define-public emacs-ts
   (package
     (name "emacs-ts")
-    (version "0.2")
+    (version "0.2.2")
     (source
      (origin
        (method git-fetch)
@@ -16999,7 +17028,7 @@ tables of contents.")
              (url "https://github.com/alphapapa/ts.el")
              (commit version)))
        (sha256
-        (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
+        (base32 "0l35gz1hpada2kzascbyqgawa5d3sdyg67gzvak84p9zx62jppn8"))
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
@@ -24887,14 +24916,14 @@ well as an option for visually flashing evaluated s-expressions.")
 (define-public emacs-tramp
   (package
     (name "emacs-tramp")
-    (version "2.5.1")
+    (version "2.5.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "tramp-" version ".tar"))
        (sha256
-        (base32 "1r7wifhzy2ipdlc4fqnx6549fnx45ggz57wh0cp7s6y25761si7q"))))
+        (base32 "0v3rvvhjcnyvg6l4vyxz6513mxzvv9n0skkmr62ry8yi5x9wnqp1"))))
     (build-system emacs-build-system)
     (arguments
      `(#:emacs ,emacs                   ;need D-Bus
@@ -24947,7 +24976,7 @@ with passwords for paths matching regexps.")
 (define-public emacs-eacl
   (package
     (name "emacs-eacl")
-    (version "2.0.4")
+    (version "2.1.0")
     (source
      (origin
        (method git-fetch)
@@ -24957,7 +24986,7 @@ with passwords for paths matching regexps.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0fxb2lv4cqdjxarqhzjgfc43sncc1c6m96n0aflm8l4gdmm090kq"))))
+         "0n1vlzvq5mv7z1yffjjqm9ixd3r0cljr60kg55l9pj9kp72a4iv8"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-ivy" ,emacs-ivy)))
@@ -28883,7 +28912,7 @@ and preferred services can easily be configured.")
 (define-public emacs-vertico
   (package
     (name "emacs-vertico")
-    (version "0.12")
+    (version "0.13")
     (source
      (origin
        (method git-fetch)
@@ -28892,7 +28921,7 @@ and preferred services can easily be configured.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1qb5qmspc7042r366d73j26hrzmrsdwscv8ly9glsa4gbdxcjkln"))))
+        (base32 "09zrrjbfbvj5lfrgjq21nsavdm69iwdsa0a80618v7xlkfk56wf1"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("texinfo" ,texinfo)))
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 2f6c950011..e6a445a117 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -778,7 +778,7 @@ and Game Boy Color games.")
 (define-public sameboy
   (package
     (name "sameboy")
-    (version "0.14.3")
+    (version "0.14.4")
     (source
      (origin
        (method git-fetch)
@@ -787,7 +787,7 @@ and Game Boy Color games.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1dipidx12ai62hnzf0pvnsk1cgjcmw1h5x2r7ilxq0k0pkia5b7a"))))
+        (base32 "0zp11qm8b3cmx70pzczyh4vv4jyhlh4jnci8kn6b30c8lzl43g83"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("rgbds" ,rgbds)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 4342a59b2a..a7766edf04 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -99,6 +99,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rdesktop)
   #:use-module (gnu packages samba)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages video)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 2c8b3c083f..349969654d 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -62,6 +62,7 @@
 ;;; Copyright © 2021 David Pflug <david@pflug.io>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
+;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4348,7 +4349,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
 (define openttd-opengfx
   (package
     (name "openttd-opengfx")
-    (version "0.6.0")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
@@ -4356,7 +4357,7 @@ engine.  When you start it you will be prompted to download a graphics set.")
                            version "/opengfx-" version "-source.tar.xz"))
        (sha256
         (base32
-         "0qxc6gl2gxcrn1np88dnjgbaaakkkx96b13rcmy1spryc8c09hyr"))))
+         "0jgy8xv7r72m127qn09vr3rxhnbakl2990f7lldsk0d5d8n993vd"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list "CC=gcc"
@@ -4407,24 +4408,28 @@ OpenGFX provides you with...
 (define openttd-opensfx
   (package
     (name "openttd-opensfx")
-    (version "0.2.3")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "https://binaries.openttd.org/extra/opensfx/"
-             version "/opensfx-" version "-source.tar.gz"))
+             "https://cdn.openttd.org/opensfx-releases/"
+             version "/opensfx-" version "-source.tar.xz"))
        (sha256
         (base32
-         "03jxgp02ks31hmsdh4xh0xcpkb70ds8jakc9pfc1y9vdrdavh4p5"))))
+         "06vycppqcxbfdqlxzna5xr303zgcmpcvj6ylw5b2ws0ssph2f1s0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("catcodec" ,catcodec)
-       ("python" ,python-2)))
+       ("python" ,python-2)
+       ("tar" ,tar)))
     (arguments
      `(#:make-flags
-       (list (string-append "INSTALL_DIR=" %output
-                            "/share/games/openttd/baseset/opensfx"))
+       (list (string-append "DIR_NAME=opensfx")
+             (string-append "TAR=" (assoc-ref %build-inputs "tar")
+                            "/bin/tar"))
+       ;; The check phase only verifies md5sums, see openttd-opengfx.
+       #:tests? #f
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'make-reproducible
@@ -4434,45 +4439,56 @@ OpenGFX provides you with...
              (substitute* "scripts/Makefile.def"
                (("-cf") " --mtime=@0 -cf"))
              #t))
-         (delete 'configure))))
+         (delete 'configure)
+         (add-before 'build 'prebuild
+           (lambda _ (invoke "make" "opensfx.cat")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (copy-recursively "opensfx"
+                               (string-append (assoc-ref outputs "out")
+                                              "/share/games/openttd/baseset"
+                                              "/opensfx")))))))
     (home-page "http://dev.openttdcoop.org/projects/opensfx")
     (synopsis "Base sounds for OpenTTD")
     (description "OpenSFX is a set of free base sounds for OpenTTD which make
 it possible to play OpenTTD without requiring the proprietary sound files from
 the original Transport Tycoon Deluxe.")
-    (license license:cc-sampling-plus-1.0)))
+    (license license:cc-by-sa3.0)))
 
 (define openttd-openmsx
   (package
     (name "openttd-openmsx")
-    (version "0.3.1")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "https://binaries.openttd.org/extra/openmsx/"
-             version "/openmsx-" version "-source.tar.gz"))
+             "https://cdn.openttd.org/openmsx-releases/"
+             version "/openmsx-" version "-source.tar.xz"))
        (sha256
         (base32
-         "0nskq97a6fsv1v6d62zf3yb8whzhqnlh3lap3va3nzvj7csjgf7c"))))
+         "0prjljsdgdxqdhhcriqskqha004ybs575xcjq80zha3pqnmrdk0k"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("python" ,python-2)))
+     `(("grfcodec" ,grfcodec)
+       ("python" ,python-2)
+       ("tar" ,tar)))
     (arguments
      `(#:make-flags
-       (list (string-append "INSTALL_DIR=" %output
-                            "/share/games/openttd/baseset"))
+       (list (string-append "DIR_NAME=openmsx")
+             (string-append "TAR=" (assoc-ref %build-inputs "tar")
+                            "/bin/tar"))
+       ;; The check phase only verifies md5sums, see openttd-opengfx.
+       #:tests? #f
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
-         (add-after 'install 'post-install
-           ;; Rename openmsx-version to openmsx
+         (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((install-directory (string-append (assoc-ref outputs "out")
-                                                     "/share/games/openttd/baseset")))
-               (rename-file (string-append install-directory "/openmsx-" ,version)
-                            (string-append install-directory "/openmsx"))
-               #t))))))
+             (copy-recursively "openmsx"
+                               (string-append (assoc-ref outputs "out")
+                                              "/share/games/openttd/baseset"
+                                              "/openmsx")))))))
     (home-page "http://dev.openttdcoop.org/projects/openmsx")
     (synopsis "Music set for OpenTTD")
     (description "OpenMSX is a music set for OpenTTD which makes it possible
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d3ef39a2e6..590854d74e 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2018, 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
 ;;; Copyright © 2019 Giovanni Biscuolo <g@xelera.eu>
 ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.com>
@@ -67,6 +67,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages syncthing)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
@@ -8224,3 +8225,163 @@ simplifications, and enforces style rules.")
      "This package provides a library for fast, structured, leveled logging in
 Go.")
     (license license:expat)))
+
+(define-public go-github-com-davecgh-go-xdr
+  (package
+    (name "go-github-com-davecgh-go-xdr")
+    (version "0.0.0-20161123171359-e6a2ba005892")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/davecgh/go-xdr")
+             (commit (go-version->git-ref version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0vifrz4iil4r7k8sz5iqlfbh80ysgs5abp2simgyhsbrkxrrsrrd"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/davecgh/go-xdr/xdr2"
+       #:unpack-path "github.com/davecgh/go-xdr"))
+    (home-page "https://github.com/davecgh/go-xdr")
+    (synopsis "Pure Go implementation of the XDR standard")
+    (description "@code{go-xdr} implements the data representation portion of
+the External Data Representation (XDR) standard protocol as specified in RFC
+4506 (obsoletes RFC 1832 and RFC 1014) in pure Go.")
+    (license license:isc)))
+
+(define-public go-github-com-dustin-go-humanize
+  (package
+    (name "go-github-com-dustin-go-humanize")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/dustin/go-humanize")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/dustin/go-humanize"))
+    (home-page "https://github.com/dustin/go-humanize")
+    (synopsis "Humane unit formatter")
+    (description "@code{go-humanize} provides formatters for units to human
+friendly sizes.  It converts boring ugly numbers to human-friendly strings and
+back.")
+    (license license:expat)))
+
+(define-public go-lukechampine-com-blake3
+  (package
+    (name "go-lukechampine-com-blake3")
+    (version "1.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lukechampine/blake3")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1yxdwp8dpnnq2wbwsxlkbq570i99sc6781y39czjxi9jh9z5nw55"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "lukechampine.com/blake3"))
+    (propagated-inputs
+     `(("go-github-com-klauspost-cpuid" ,go-github-com-klauspost-cpuid)))
+    (home-page "https://pkg.go.dev/lukechampine.com/blake3")
+    (synopsis "Implementation of the BLAKE3 cryptographic hash function")
+    (description "@code{blake3} implements the BLAKE3 cryptographic hash
+function.  In addition to the pure-Go implementation, this package also
+contains AVX-512 and AVX2 routines (generated by avo) that greatly increase
+performance for large inputs and outputs.")
+    (license license:expat)))
+
+(define-public go-golang-org-x-term
+  (package
+    (name "go-golang-org-x-term")
+    (version "0.0.0-20210615171337-6886f2dfbf5b")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://go.googlesource.com/term")
+             (commit (go-version->git-ref version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0661w7dp2ak1k4ii90v6chw2x8a6g4sc5j0ba58qlplaj4k5l0xs"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "golang.org/x/term"))
+    (propagated-inputs
+     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+    (home-page "https://pkg.go.dev/golang.org/x/term")
+    (synopsis "Go terminal/console support")
+    (description "@code{term} provides support functions for dealing with
+terminals, as commonly found on Unix systems.")
+    (license license:bsd-3)))
+
+(define-public go-github-com-flynn-noise
+  (package
+    (name "go-github-com-flynn-noise")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/flynn/noise")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1j6phxyqx06wcqxjpin696fkp85s76qcp3i2f7fv6q2fb6618f6y"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/flynn/noise"))
+    (propagated-inputs
+     `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)
+       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
+    (home-page "https://github.com/flynn/noise")
+    (synopsis "Go implementation of the Noise protocol framework")
+    (description "@code{noise} implements the Noise protocol framework.  Noise
+is a low-level framework for building crypto protocols.  Noise protocols
+support mutual and optional authentication, identity hiding, forward secrecy,
+zero round-trip encryption, and other advanced features.")
+    (license license:bsd-3)))
+
+(define-public go-github-com-klauspost-compress
+  (package
+    (name "go-github-com-klauspost-compress")
+    (version "1.13.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/klauspost/compress")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32
+            "0ydnf9rizlhm8rilh14674qqx272sbwbkjx06xn9pqvy6mmn2r3r"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/klauspost/compress"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'reset-gzip-timestamps 'fix-permissions
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Provide write permissions on gzip files so that
+             ;; reset-gzip-timestamps has sufficient permissions.
+             (for-each make-file-writable
+                       (find-files (assoc-ref outputs "out") ".gz$")))))))
+    (propagated-inputs
+     `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
+    (home-page "https://github.com/klauspost/compress")
+    (synopsis "Go compression library")
+    (description "@code{compress} provides various compression algorithms.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index bf4ce3b7b6..4a4ed4e8be 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1998,7 +1998,7 @@ and routines to assist in editing internationalized text.")
 (define-public girara
   (package
     (name "girara")
-    (version "0.3.4")
+    (version "0.3.6")
     (source
      (origin
        (method git-fetch)
@@ -2007,7 +2007,7 @@ and routines to assist in editing internationalized text.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "08rpw9hkaprm4r853xy1d35i2af1pji8c3mzzl01mmwmyr9p0x8k"))))
+        (base32 "0whwwj31fxfaf4r4qvxb4kl3mj05xj3n9c6nzdn46r30bkg9z4dw"))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("check" ,check-0.14)
                      ("gettext" ,gettext-minimal)
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 7e4d6251c1..a6d1e7a70f 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -101,6 +101,7 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages search)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages slang)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages swig)
@@ -108,7 +109,6 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
-  #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
@@ -1454,13 +1454,14 @@ library}.")
     (name "guile-dbi")
     (version "2.1.6")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://download.gna.org/guile-dbi/guile-dbi-"
-                    version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://example.org") ;only hosted on Software Heritage
+                    (commit "e19b019e9683faf66c3f385b20fcc112e65f8c6e")))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "116njrprhgrsv1qm904sp3b02rq01fx639r433d657gyhw3x159n"))))
+                "09ys5hj7gnj5w1iv1m194j06jk6b8sdhc8j6hcv3bprq1428kyxw"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -1487,7 +1488,7 @@ library}.")
     (propagated-inputs
      `(("guile" ,guile-2.2)))
     (synopsis "Guile database abstraction layer")
-    (home-page "http://home.gna.org/guile-dbi/guile-dbi.html")
+    (home-page "https://web.archive.org/web/20160328232717/http://home.gna.org/guile-dbi/guile-dbi.html")
     (description
      "guile-dbi is a library for Guile that provides a convenient interface to
 SQL databases.  Database programming with guile-dbi is generic in that the same
@@ -1509,13 +1510,14 @@ It currently supports MySQL, Postgres and SQLite3.")
     (name "guile-dbd-sqlite3")
     (version "2.1.6")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://download.gna.org/guile-dbi/guile-dbd-sqlite3-"
-                    version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://example.org") ;only hosted on Software Heritage
+                    (commit "0758c615e9e85ad76d153d5dc6179881f1f50089")))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0rg71jchxd2y8x496s8zmfmikr5g8zxi8zv2ar3f7a23pph92iw2"))))
+                "1rwf3z6ib6nkhfnk2nw8p6fqirdx2pparcrlmsm0i2ii62plpqhb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1524,6 +1526,8 @@ It currently supports MySQL, Postgres and SQLite3.")
      `(("sqlite" ,sqlite)
        ("zlib" ,(@ (gnu packages compression) zlib))))
     (synopsis "Guile DBI driver for SQLite")
+    ;; Unofficial home-page.
+    ;; Added by b9cbfa52f71505de8447fefabd97f16d0a9cbde6 (2016-06)
     (home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3")
     (description
      "guile-dbi is a library for Guile that provides a convenient interface to
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 2c48ce9586..019d34a3ea 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -66,7 +66,7 @@
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages sdl)
-  #:use-module (gnu packages web)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system haskell)
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 561c399eeb..83838b5689 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages web)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 415cb4e026..a5fd8ddaee 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -356,7 +356,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 
 ;; The current "stable" kernels. That is, the most recently released major
 ;; versions that are still supported upstream.
-(define-public linux-libre-5.13-version "5.13.6")
+(define-public linux-libre-5.13-version "5.13.7")
 (define deblob-scripts-5.13
   (linux-libre-deblob-scripts
    linux-libre-5.13-version
@@ -364,7 +364,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "153jf5l5x4438zgxwggaky2ahjlfl48j438vhpzks6h77lzc51a5")))
 (define-public linux-libre-5.13-pristine-source
   (let ((version linux-libre-5.13-version)
-        (hash (base32 "0xjjl8dmilp425b1cp977v26qxlg1147gh54kni949pzxwh1fb56")))
+        (hash (base32 "0fg41dv62vsnv2hywym15zz0n08rhdzwqvcarspm9r5gac85c7pr")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.13)))
@@ -372,7 +372,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The "longterm" kernels — the older releases with long-term upstream support.
 ;; Here are the support timelines:
 ;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.10-version "5.10.54")
+(define-public linux-libre-5.10-version "5.10.55")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
    linux-libre-5.10-version
@@ -380,12 +380,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0c9x07gplzajm0h5if3fpw2rvfb7psw3yp7i2n6ws7ggq1dvmki2")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "0i5y56v34gm0djgmh2bld4hmndf1ymfkwyd1lkn8fwc4c4rccl5z")))
+        (hash (base32 "12c8zrbj2c578ysz6j72g4azk0wj39z4aay3bjy9b837mlyi30bm")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.136")
+(define-public linux-libre-5.4-version "5.4.137")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
    linux-libre-5.4-version
@@ -393,12 +393,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1xghbbnaisjd0k1klbyn1p7r6r4x5a1bpmkm56a3gh2zvw4s7mj8")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "05mdkgscnfvhanspipd9ka0phfqzdlcxzm5j1x0jvf46pwvds8j3")))
+        (hash (base32 "0z0zlfm9jkwk3wi059q66xjx33qk2zpjk8ndhzlbvn75dhv5x7ph")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.199")
+(define-public linux-libre-4.19-version "4.19.200")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
    linux-libre-4.19-version
@@ -406,7 +406,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "16iawii33rpc7lgf4ri3idwj32g88p3k3s4lznvmbn66s3wanyrx")))
+        (hash (base32 "06q8ws1lsrvhssp9qwdlq47sbsf7wzzxbp97sdjfnvmlqvchjx1h")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index a0a4270fd8..06395e882f 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -100,7 +100,7 @@
 (define-public sbcl-alexandria
   (package
    (name "sbcl-alexandria")
-   (version "1.2")
+   (version "1.4")
    (source
     (origin
      (method git-fetch)
@@ -109,7 +109,7 @@
            (commit (string-append "v" version))))
      (sha256
       (base32
-       "0bcqs0z9xlqgjz43qzgq9i07vdlnjllpm1wwa37wpkg0w975r712"))
+       "0r1adhvf98h0104vq14q7y99h0hsa8wqwqw92h7ghrjxmsvz2z6l"))
      (file-name (git-file-name name version))))
    (build-system asdf-build-system/sbcl)
    (native-inputs
@@ -18572,8 +18572,7 @@ semantics in Lisp and Parenscript.
          ("libxml2" ,libxml2)
          ("libxslt" ,libxslt)))
       (native-inputs
-       `(("gcc" ,sbcl-lift)
-         ("lift" ,sbcl-lift)))
+       `(("lift" ,sbcl-lift)))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 4dfeddedb0..a266c70886 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)
@@ -565,20 +566,68 @@ 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")
-    (version "1.8.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "onnx" version))
-       ;; ONNX will build googletest from a git checkout.  Patch CMake
-       ;; to use googletest from Guix and enable tests by default.
-       (patches (search-patches "python-onnx-use-system-googletest.patch"))
-       (sha256
-        (base32 "1ys5f4kqkabm4mgivsw80zz8xj1svanfbpszqbw9j15914hcarcx"))))
+    (name "onnx")
+    (version "1.9.0")
+    (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
+                  (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-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'
+                      ;; 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)
@@ -605,6 +654,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")
@@ -2201,3 +2256,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/mail.scm b/gnu/packages/mail.scm
index dc33812356..64d72806d7 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -2105,14 +2105,14 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
 (define-public isync
   (package
     (name "isync")
-    (version "1.4.2")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/isync/isync/"
                            version "/isync-" version ".tar.gz"))
        (sha256 (base32
-                "0hskfpj4r4q3959k3npyqli353daj3r5d9mfia9bbmig87nyfd8r"))))
+                "024p3glj4p7fhrssw5sr55arls9zna1igxxrspxlfd6sbds21ixl"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)))
@@ -4406,6 +4406,34 @@ score.")
 undelete email messages from Outlook Express .dbx files.")
     (license license:gpl3+)))
 
+(define-public libpst
+  (package
+    (name "libpst")
+    (version "0.6.76")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.five-ten-sg.com/libpst/packages/"
+                           "libpst-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hhbbb8ddsgjhv9y1xd8s9ixlhdnjmhw12v06jwx4j6vpgp1na9x"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("boost" ,boost)
+       ("libgsf" ,libgsf)
+       ("python" ,python)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://www.five-ten-sg.com/libpst/")
+    (synopsis "")
+    (description "The Libpst utilities include @code{readpst} which can
+convert email messages to both mbox and MH mailbox formats, @code{pst2ldif}
+which can convert the contacts to @code{.ldif} format for import into LDAP
+databases, and other tools to process Outlook email archives.")
+    (license license:gpl2+)))
+
 (define-public crm114
   (package
     (name "crm114")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 90996a1f6d..a594278341 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -127,6 +127,7 @@
   #:use-module (gnu packages netpbm)
   #:use-module (gnu packages ocaml)
   #:use-module (gnu packages onc-rpc)
+  #:use-module (gnu packages parallel)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages popt)
   #:use-module (gnu packages perl)
@@ -6674,3 +6675,63 @@ high-performance multidimensional array containers for scientific computing.")
     (license (list license:artistic2.0
                    license:bsd-3
                    license:lgpl3+))))
+
+(define-public fxdiv
+  ;; There is currently no tag in this repo.
+  (let ((commit "63058eff77e11aa15bf531df5dd34395ec3017c8")
+        (version "0.0")
+        (revision "1"))
+    (package
+      (name "fxdiv")
+      (version (git-version version revision commit))
+      (home-page "https://github.com/Maratyszcza/FXdiv")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0zwzh8gmbx4m6b18s5nf13b0dk5yjkd1fs8f421bl7fz5f9gjd9f"))
+                (patches (search-patches "fxdiv-system-libraries.patch"))))
+      (build-system cmake-build-system)
+      (inputs
+       `(("googletest" ,googletest)
+         ("googlebenchmark" ,googlebenchmark)))
+      (synopsis
+       "C++ library for division via fixed-point multiplication by inverse")
+      (description
+       "On modern CPUs and GPUs, integer division is several times slower than
+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/music.scm b/gnu/packages/music.scm
index 6b544b6b2e..7012418d83 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -81,6 +81,7 @@
   #:use-module (gnu packages apr)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base) ;libbdf
   #:use-module (gnu packages bash)
@@ -150,6 +151,7 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages rsync)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages stb)
@@ -4864,7 +4866,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
      `(("jack" ,jack-2)
        ("lv2" ,lv2)
        ("readline" ,readline)
-       ("libsndfile" ,libsndfile)))
+       ("libsndfile" ,libsndfile/fixed)))
     (home-page "https://github.com/swesterfeld/liquidsfz")
     (synopsis "Sampler library")
     (description "The main goal of liquidsfz is to provide an SFZ sampler
@@ -4872,6 +4874,51 @@ implementation library that is easy to integrate into other projects.  A
 standalone JACK client and an LV2 plugin is also available.")
     (license license:lgpl2.1+)))
 
+(define-public sfizz
+  (package
+    (name "sfizz")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/sfztools/sfizz"
+                                  "/releases/download/" version
+                                  "/sfizz-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1pk67xvyqkvhjz2q5hbj5v0mnfvdvvl8vl5bsh6ymwiq3glkd41l"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; TODO: pugixml is bundled, but can only be removed in
+               ;; versions after 1.0.0.
+               '(for-each delete-file-recursively
+                          '("external/abseil-cpp"
+                            "external/simde"
+                            "plugins/editor/external/vstgui4"
+                            "plugins/vst")))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-DSFIZZ_LV2_UI=OFF"
+             "-DSFIZZ_VST=OFF"
+             "-DSFIZZ_VST2=OFF"
+             "-DSFIZZ_TESTS=ON"
+             "-DSFIZZ_USE_SYSTEM_ABSEIL=ON")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("abseil-cpp" ,abseil-cpp)
+       ("glib" ,glib)
+       ("jack" ,jack-2)
+       ("lv2" ,lv2)
+       ("libsamplerate" ,libsamplerate)
+       ("pugixml" ,pugixml)
+       ("simde" ,simde)))
+    (home-page "https://sfz.tools/sfizz/")
+    (synopsis "SFZ parser and synth library")
+    (description "Sfizz provides an SFZ parser and synth C++ library.  It
+includes LV2 plugins and a JACK standalone client.")
+    (license license:bsd-2)))
+
 (define-public musescore
   (package
     (name "musescore")
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index d987201508..8137eb1187 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -1427,7 +1427,7 @@ files in these formats.")
 (define-public ocaml-zarith
   (package
     (name "ocaml-zarith")
-    (version "1.9.1")
+    (version "1.12")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1436,7 +1436,7 @@ files in these formats.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0hv5ywz1q2cgn8apfz490clwk5hcynr937g2v8i13x2ax4bnv0lz"))))
+                "1jslm1rv1j0ya818yh23wf3bb6hz7qqj9pn5fwl45y9mqyqa01s9"))))
     (build-system ocaml-build-system)
     (native-inputs
      `(("perl" ,perl)))
@@ -1447,7 +1447,14 @@ files in these formats.")
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda _ (invoke "./configure"))))))
+           (lambda _ (invoke "./configure")))
+         (add-after 'install 'move-sublibs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib/ocaml/site-lib")))
+               (mkdir-p (string-append lib "/stublibs"))
+               (rename-file (string-append lib "/zarith/dllzarith.so")
+                            (string-append lib "/stublibs/dllzarith.so"))))))))
     (home-page "https://forge.ocamlcore.org/projects/zarith/")
     (synopsis "Implements arbitrary-precision integers")
     (description "Implements arithmetic and logical operations over
@@ -6893,8 +6900,12 @@ support for Mparser.")))
            (lambda _
              (for-each (lambda (file)
                          (chmod file #o644))
-                       (find-files "." "."))
-             #t)))))
+                       (find-files "." "."))))
+         (add-before 'build 'set-version
+           (lambda _
+             (substitute* "dune-project"
+               (("\\(name lablgtk3\\)")
+                (string-append "(name lablgtk3)\n(version " ,version ")"))))))))
     (propagated-inputs
      `(("ocaml-cairo2" ,ocaml-cairo2)))
     (inputs
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 42826f49d6..8f5d0aeb64 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
 ;;;
@@ -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,9 +42,11 @@
   #: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)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -58,14 +61,14 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20210622")
+    (version "20210722")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/parallel/parallel-"
                           version ".tar.bz2"))
       (sha256
-       (base32 "11pcc5kim104wz25k5q1pqhd6z85d7dx509h74ncaxhyyydjfcvv"))))
+       (base32 "0jaa5137sjw2szvmnnslkqv1n3gg2rkkgr71j7hpp5a3q15hjf9j"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -378,3 +381,88 @@ 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))))
+
+(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))))
+
+(define-public psimd
+  ;; There is currently no tag in this repo.
+  (let ((commit "072586a71b55b7f8c584153d223e95687148a900")
+        (version "0.0")
+        (revision "1"))
+    (package
+      (name "psimd")
+      (version (git-version version revision commit))
+      (home-page "https://github.com/Maratyszcza/Psimd")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference (url home-page) (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "16mslhvqs0gpqbg7kkq566a8gkn58cgjpqca8ljj9qcv5mk9apwm"))))
+      (build-system cmake-build-system)
+      (arguments '(#:tests? #f))                  ;there are no tests
+      (synopsis "Portable 128-bit SIMD intrinsics")
+      (description
+       "This header-only C++ library provides a portable interface to
+single-instruction multiple-data (SIMD) intrinsics.")
+      (license license:expat))))
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")
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()
diff --git a/gnu/packages/patches/fxdiv-system-libraries.patch b/gnu/packages/patches/fxdiv-system-libraries.patch
new file mode 100644
index 0000000000..eecfaf7efc
--- /dev/null
+++ b/gnu/packages/patches/fxdiv-system-libraries.patch
@@ -0,0 +1,44 @@
+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 bcae6b5..ff6710d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -21,7 +21,7 @@ IF(FXDIV_BUILD_TESTS)
+ ENDIF()
+ 
+ # ---[ Download deps
+-IF(FXDIV_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}" .
+@@ -31,7 +31,7 @@ IF(FXDIV_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(FXDIV_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}" .
+@@ -54,7 +54,7 @@ INSTALL(FILES include/fxdiv.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ 
+ IF(FXDIV_BUILD_TESTS)
+   # ---[ Build google test
+-  IF(NOT TARGET gtest)
++  IF(FALSE)
+     SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+     ADD_SUBDIRECTORY(
+       "${GOOGLETEST_SOURCE_DIR}"
+@@ -78,7 +78,7 @@ ENDIF()
+ 
+ IF(FXDIV_BUILD_BENCHMARKS)
+   # ---[ Build google benchmark
+-  IF(NOT TARGET benchmark)
++  IF(FALSE)
+     SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
+     ADD_SUBDIRECTORY(
+       "${GOOGLEBENCHMARK_SOURCE_DIR}"
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 $<TARGET_OBJECTS:onnx>)
+   else()
+     # Assume everything else is like gcc
+-    target_link_libraries(onnx_cpp2py_export
+-                          PRIVATE "-Wl,--whole-archive" $<TARGET_FILE:onnx>
+-                                  "-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-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
+ <https://s3.amazonaws.com/download.onnx/models/opset_9/zfnet512.tar.gz>.
+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:
diff --git a/gnu/packages/patches/python-onnx-use-system-googletest.patch b/gnu/packages/patches/onnx-use-system-googletest.patch
index 33d2fa12de..5dfcbc6dc3 100644
--- a/gnu/packages/patches/python-onnx-use-system-googletest.patch
+++ b/gnu/packages/patches/onnx-use-system-googletest.patch
@@ -1,3 +1,6 @@
+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
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
diff --git a/gnu/packages/patches/racket-sh-via-rktio.patch b/gnu/packages/patches/racket-minimal-sh-via-rktio.patch
index b4fefd1514..6bc2ee8331 100644
--- a/gnu/packages/patches/racket-sh-via-rktio.patch
+++ b/gnu/packages/patches/racket-minimal-sh-via-rktio.patch
@@ -35,13 +35,13 @@ making this change at the C level is both:
       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 ++++++++++++++++++++-
+ racket/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
+diff --git a/racket/src/rktio/rktio_process.c b/racket/src/rktio/rktio_process.c
 index 89202436c0..465ebdd5c5 100644
---- a/src/rktio/rktio_process.c
-+++ b/src/rktio/rktio_process.c
+--- a/racket/src/rktio/rktio_process.c
++++ b/racket/src/rktio/rktio_process.c
 @@ -1224,12 +1224,14 @@ int rktio_process_allowed_flags(rktio_t *rktio)
  /*========================================================================*/
  
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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>  $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -5787,7 +5779,7 @@ IF(XNNPACK_BUILD_TESTS)
+     # Work-around for "too many sections" error
+     TARGET_COMPILE_OPTIONS(f32-igemm-minmax-test PRIVATE "$<$<NOT:$<OR:$<CONFIG:Release>,$<CONFIG:MinSizeRel>>>:-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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+@@ -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 $<TARGET_OBJECTS:all_microkernels>)
+   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 $<TARGET_OBJECTS:all_microkernels>)
+   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 $<TARGET_OBJECTS:all_microkernels>)
+   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 $<TARGET_OBJECTS:all_microkernels>)
+   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 $<TARGET_OBJECTS:all_microkernels>)
+   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 $<TARGET_OBJECTS:all_microkernels>)
+   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
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index d0ccb4ebce..8e2cebe490 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -607,7 +607,7 @@ by using the poppler rendering engine.")
 (define-public zathura
   (package
     (name "zathura")
-    (version "0.4.7")
+    (version "0.4.8")
     (source (origin
               (method url-fetch)
               (uri
@@ -615,7 +615,7 @@ by using the poppler rendering engine.")
                               version ".tar.xz"))
               (sha256
                (base32
-                "1rx1fk9s556fk59lmqgvhwrmv71ashh89bx9adjq46wq5gzdn4p0"))))
+                "1nr0ym1mi2afk4ycdf1ppmkcv7i7hyzwn4p3r4m0j2qm3nvaiami"))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("gettext" ,gettext-minimal)
                      ("glib:bin" ,glib "bin")
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index fa9a111d40..59db96e0ef 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -122,6 +122,17 @@ SPARC.  Hopefully the design of the library will also make it easy to extend
 for reading and writing new sound file formats.")
     (license l:gpl2+)))
 
+;; Remove this on core-updates
+(define-public libsndfile/fixed
+  (package
+    (inherit libsndfile)
+    (inputs '())
+    (propagated-inputs
+     `(("libvorbis" ,libvorbis)
+       ("libogg" ,libogg)
+       ("flac" ,flac)
+       ("opus" ,opus)))))
+
 (define-public libsamplerate
   (package
     (name "libsamplerate")                     ; aka. Secret Rabbit Code (SRC)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 3b03a811ad..54756b6fcb 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -3787,22 +3787,18 @@ CSS tidy.  Also supports URL rewriting in CSS files.")
 (define-public python-elasticsearch
   (package
     (name "python-elasticsearch")
-    (version "7.1.0")
+    (version "7.13.4")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "elasticsearch" version))
         (sha256
          (base32
-          "0rnjvlhw4v3vg14l519qliy1s1zpmx3827q0xfviwvk42rr7hh01"))))
+          "1q38w9nh2j2yi82d8rhzb57597l4lq5zx7xzfg45xf7ffrgsipaj"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nosexcover" ,python-nosexcover)
-       ("python-pyaml" ,python-pyaml)
-       ("python-requests" ,python-requests)))
     (propagated-inputs
-     `(("urllib3" ,python-urllib3)))
+     `(("python-certifi" ,python-certifi)
+       ("python-urllib3" ,python-urllib3)))
     (arguments
      ;; tests require the test_elasticsearch module but it is not distributed.
      `(#:tests? #f))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7f8764b672..cb8568fbd0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -190,8 +190,9 @@
   #:use-module (gnu packages readline)
   #:use-module (gnu packages regex)
   #:use-module (gnu packages sdl)
-  #:use-module (gnu packages search)
   #:use-module (gnu packages scanner)
+  #:use-module (gnu packages search)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages ssh)
@@ -7178,6 +7179,31 @@ The output of all running processes is collected by honcho and
 displayed.")
     (license license:expat)))
 
+(define-public python-pebble
+  (package
+    (name "python-pebble")
+    (version "4.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Pebble" version))
+       (sha256
+        (base32 "16siqc3brbk7dp4d9sg48bjl6a8wyy24aib3il1hf4y2624draxh"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _ (invoke "python" "-m" "pytest" "-sv"))))))
+    (home-page "https://github.com/noxdafox/pebble")
+    (synopsis "Threading and multiprocessing for Python")
+    (description
+     "Pebble aims to help manage threads and processes in an easier way.  It
+wraps Python's standard library threading and multiprocessing objects.")
+    (license license:lgpl3+)))
+
 (define-public python-pexpect
   (package
     (name "python-pexpect")
diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm
index 2d606071fe..4bc34193c6 100644
--- a/gnu/packages/racket.scm
+++ b/gnu/packages/racket.scm
@@ -31,7 +31,9 @@
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages chez)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
@@ -40,123 +42,202 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libedit)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xorg))
 
+;; Commentary:
+;;
+;; Here's how bootstrapping minimal Racket works:
+;;
+;;   - Racket BC [CGC] can be built with only a C compiler (except for
+;;     one caveat discussed below).
+;;   - Racket BC [3M] needs an existing Racket to run "xform",
+;;     which transforms its own C source code to add additional annotations
+;;     for the precise garbage collector.
+;;   - Racket CS needs (bootfiles for) Racket's fork of Chez Scheme.
+;;     It also needs an existing Racket to compile Racket-implemented
+;;     parts of the runtime system to R6RS libraries.
+;;   - Chez Scheme also needs bootfiles for itself, but Racket can simulate
+;;     enough of Chez Scheme to load Racket's fork of the Chez Scheme compiler
+;;     purely from source into Racket and apply the compiler to itself,
+;;     producing the needed bootfiles (albeit very slowly).
+;;     Any variant of Racket since version 7.1 can run the simulation.
+;;
+;; So, we build CGC to build 3M to build bootfiles and CS.
+;;
+;; One remaining bootstrapping limitation is that Racket's reader, module
+;; system, and macro expander are implemented in Racket. For Racket CS,
+;; they are compiled to R6RS libraries as discussed above. This note from the
+;; README file applies to all such subsystems:
+;;
+;;     The Racket version must be practically the same as the current Racket
+;;     verson, although it can be the Racket BC implementation (instead of
+;;     the Racket CS implementation).
+;;
+;;     Unlike Chez Scheme boot files, the files generated in "schemified"
+;;     are human-readable and -editable Scheme code. That provides a way
+;;     out of bootstrapping black holes, even without BC.
+;;
+;; However, other Racket subsystems implemented in Racket for Racket CS
+;; use older C implementations for Racket BC, whereas the reader, expander,
+;; and module system were completely replaced with the Racket implementation
+;; as of Racket 7.0.
+;;
+;; For Racket BC, the compiled "linklet" s-expressions (primitive modules)
+;; are embeded in C as a static string constant. Eventually, they are further
+;; compiled by the C-implemented Racket BC bytecode and JIT compilers.
+;; (On platforms where Racket BC's JIT is not supported, yet another compiler
+;; instead compiles the linklets to C code, but this is not a bootstrapping
+;; issue.)
+;;
+;; Code:
 
-(define %installer-mirrors
-  ;; Source:
-  ;; https://github.com/racket/racket-lang-org/blob/master/download/data.rkt#L58
-  ;; Matthew Flatt says: "note that many are commented out"
-  ;; INVARIANT: End with a trailing "/"!
-  '("https://mirror.racket-lang.org/installers/"
-    "https://www.cs.utah.edu/plt/installers/"
-    "https://plt.cs.northwestern.edu/racket-mirror/"
-    "https://mirror.csclub.uwaterloo.ca/racket/racket-installers/"
-    ;; Universität Tübingen is using a self-signed HTTPS certificate:
-    "http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
-    "https://racket.infogroep.be/"
-    ))
+(define cfg-flag:sh-for-rktio
+  `(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH="
+                  (assoc-ref %build-inputs "sh")
+                  "/bin/sh"))
+(define cfg-flag:enable-lt
+  `(string-append "--enable-lt="
+                  (assoc-ref %build-inputs "libtool")
+                  "/bin/libtool"))
+(define cfg-flag:enable-racket
+  `(let ((racket (assoc-ref %build-inputs "racket")))
+     (string-append "--enable-racket="
+                    racket
+                    "/bin/racket")))
+
+(define unpack-nanopass+stex
+  ;; Copied from chez-scheme.
+  ;; TODO: Eventually, we should refactor Chez Scheme
+  ;; enough to share more directly, so that we can make
+  ;; Racket's version of Chez avalable as a Guix package,
+  ;; e.g. for architectures not supported upstream.
+  ;; For now, we let Racket drive the Chez build process
+  ;; other than this step.
+  `(for-each (lambda (dep)
+               (define src
+                 (assoc-ref (or native-inputs inputs) dep))
+               (copy-recursively src dep
+                                 #:keep-mtime? #t))
+             '("nanopass" "stex")))
 
 
 (define-public racket-minimal
   (package
     (name "racket-minimal")
-    (version "8.1")            ; note: remember to also update racket!
+    (version "8.2")            ; note: remember to also update racket!
     (source
      (origin
-       (method url-fetch)
-       (uri (map (lambda (base)
-                   (string-append base version "/racket-minimal-src.tgz"))
-                 %installer-mirrors))
-       (sha256 "04zzqybpxss50n1jrwwq98539gw0y0ygpw9civl2sq3s4ww7m8l3")
-       (patches (search-patches
-                 "racket-sh-via-rktio.patch"))))
-    (home-page "https://racket-lang.org")
-    (synopsis "Racket without bundled packages such as DrRacket")
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/racket/racket")
+             (commit (string-append "v" version))))
+       (sha256
+        "061bhiyjlvazph0dj9i3i3x2q5z53rp8h5cjwg3frjimkr45lncn")
+       (file-name (git-file-name name version))
+       (patches (search-patches "racket-minimal-sh-via-rktio.patch"))
+       (snippet
+        (with-imported-modules '((guix build utils))
+          #~(begin
+              (use-modules (guix build utils))
+              ;; unbundle Chez submodules
+              (with-directory-excursion "racket/src/ChezScheme"
+                #$(origin-snippet (package-source chez-scheme)))
+              ;; unbundle libffi
+              (for-each
+               delete-file-recursively
+               '("racket/src/bc/foreign/libffi")))))))
     (inputs
-     `(("openssl" ,openssl)
+     `(;; common to all racket-minimal variants:
+       ("openssl" ,openssl)
        ("sqlite" ,sqlite)
        ("sh" ,bash-minimal)
+       ;; only for CS
        ("zlib" ,zlib)
        ("zlib:static" ,zlib "static")
        ("lz4" ,lz4)
        ("lz4:static" ,lz4 "static")))
+    (native-inputs
+     `(("bootfiles" ,racket-bootstrap-chez-bootfiles)
+       ,@(package-native-inputs racket-bootstrap-chez-bootfiles)))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
-       `(,(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH="
-                         (assoc-ref %build-inputs "sh")
-                         "/bin/sh")
-         "--enable-libz"
-         "--enable-liblz4")
-       #:modules
-       ((guix build gnu-build-system)
-        (guix build utils)
-        (srfi srfi-1))
+       (list "--enable-csonly"
+             "--enable-libz"
+             "--enable-liblz4"
+             ,cfg-flag:enable-racket
+             ,cfg-flag:sh-for-rktio)
+       #:out-of-source? #true
+       ;; Tests are in packages like racket-test-core and
+       ;; main-distribution-test that aren't part of the main distribution.
+       #:tests? #f
+       #:modules ((ice-9 match)
+                  (guix build gnu-build-system)
+                  (guix build utils))
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'pre-configure-minimal
+         (add-after 'unpack 'unpack-nanopass+stex
+           (lambda* (#:key inputs native-inputs #:allow-other-keys)
+             (with-directory-excursion "racket/src/ChezScheme"
+               ,unpack-nanopass+stex)
+             #t))
+         (add-after 'unpack-nanopass+stex 'unpack-bootfiles
            (lambda* (#:key inputs #:allow-other-keys)
-             (chdir "src")
+             (with-directory-excursion "racket/src/ChezScheme"
+               (copy-recursively
+                (string-append (assoc-ref inputs "bootfiles") "/boot")
+                "boot"))
              #t))
-         (add-after 'build 'patch-config.rktd-lib-search-dirs
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; We do this between the `build` and `install` phases
-             ;; so that we have racket to read and write the hash table,
-             ;; but it comes before `raco setup`, when foreign libraries
-             ;; are needed to build the documentation.
-             (define out (assoc-ref outputs "out"))
-             (apply invoke
-                    "./cs/c/racketcs"
-                    "-e"
-                    ,(format #f
-                             "~s"
-                             '(let* ((args
-                                      (vector->list
-                                       (current-command-line-arguments)))
-                                     (file (car args))
-                                     (extra-lib-search-dirs (cdr args)))
-                                (write-to-file
-                                 (hash-update
-                                  (file->value file)
-                                  'lib-search-dirs
-                                  (lambda (dirs)
-                                    (append dirs extra-lib-search-dirs))
-                                  null)
-                                 #:exists 'truncate/replace
-                                 file)))
-                    "--"
-                    "../etc/config.rktd"
-                    (filter-map (lambda (lib)
-                                  (cond
-                                   ((assoc-ref inputs lib)
-                                    => (lambda (pth)
-                                         (string-append pth "/lib")))
-                                   (else
-                                    #f)))
-                                '("cairo"
-                                  "fontconfig"
-                                  "glib"
-                                  "glu"
-                                  "gmp"
-                                  "gtk+"
-                                  "libjpeg"
-                                  "libpng"
-                                  "libx11"
-                                  "mesa"
-                                  "mpfr"
-                                  "openssl"
-                                  "pango"
-                                  "sqlite"
-                                  "unixodbc"
-                                  "libedit")))
-             #t)))
-       ;; Tests are in packages like racket-test-core and
-       ;; main-distribution-test that aren't part of the main distribution.
-       #:tests? #f))
+         (add-before 'configure 'initialize-config.rktd
+           (lambda* (#:key inputs #:allow-other-keys)
+             (define (write-racket-hash alist)
+               ;; inside must use dotted pair notation
+               (display "#hash(")
+               (for-each (match-lambda
+                           ((k . v)
+                            (format #t "(~s . ~s)" k v)))
+                         alist)
+               (display ")\n"))
+             (mkdir-p "racket/etc")
+             (with-output-to-file "racket/etc/config.rktd"
+               (lambda ()
+                 (write-racket-hash
+                  `((lib-search-dirs
+                     . (#f ,@(map (lambda (lib)
+                                    (string-append (assoc-ref inputs lib)
+                                                   "/lib"))
+                                  '("openssl"
+                                    "sqlite"))))
+                    (catalogs
+                     . (,(string-append
+                          "https://download.racket-lang.org/releases/"
+                          ,version
+                          "/catalog/")
+                        #f))))))
+             #t))
+         (add-before 'configure 'change-directory
+           (lambda _
+             (chdir "racket/src")
+             #t))
+         (add-after 'install 'remove-pkgs-directory
+           ;; If the configured pkgs-dir exists, "pkgs.rktd" does not
+           ;; exist, and a lock file does not exist, commands like
+           ;; `raco pkg show` will try to create a lock file and fail
+           ;; due to the read-only store.
+           ;; Arguably this may be a bug in `pkg/private/lock`:
+           ;; see <https://github.com/racket/racket/issues/3851>.
+           ;; As a workaround, remove the directory.
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; rmdir because we want an error if it isn't empty
+             (rmdir (string-append (assoc-ref outputs "out")
+                                   "/share/racket/pkgs"))
+             #t)))))
+    (home-page "https://racket-lang.org")
+    (synopsis "Racket without bundled packages such as DrRacket")
     (description
      "Racket is a general-purpose programming language in the Scheme family,
 with a large set of libraries and a compiler based on Chez Scheme.  Racket is
@@ -167,7 +248,164 @@ The ``minimal Racket'' distribution includes just enough of Racket for you to
 use @command{raco pkg} to install more.  Bundled packages, such as the
 DrRacket IDE, are not included.")
     ;; https://download.racket-lang.org/license.html
-    (license (list lgpl3+ asl2.0 expat))))
+    ;; The LGPL components are only used by Racket BC.
+    (license (list asl2.0 expat))))
+
+
+(define-public racket-minimal-bc-3m
+  (hidden-package
+   (package
+     (inherit racket-minimal)
+     (name "racket-minimal-bc-3m")
+     (inputs
+      `(("libffi" ,libffi) ;; <- only for BC variants
+        ,@(fold alist-delete
+                (package-inputs racket-minimal)
+                '("zlib" "zlib:static" "lz4" "lz4:static"))))
+     (native-inputs
+      `(("libtool" ,libtool)
+        ("racket" ,(if (%current-target-system)
+                       racket-minimal
+                       racket-minimal-bc-cgc))))
+     (arguments
+      (substitute-keyword-arguments (package-arguments racket-minimal)
+        ((#:configure-flags _ '())
+         `(list "--enable-bconly"
+                ,cfg-flag:enable-racket
+                ,cfg-flag:enable-lt
+                ,cfg-flag:sh-for-rktio))
+        ((#:phases usual-phases)
+         `(modify-phases ,usual-phases
+            (delete 'unpack-nanopass+stex)
+            (delete 'unpack-bootfiles)))))
+     (synopsis "Minimal Racket with the BC [3M] runtime system")
+     (description "The Racket BC (``before Chez'' or ``bytecode'')
+implementation was the default before Racket 8.0.  It uses a compiler written
+in C targeting architecture-independent bytecode, plus a JIT compiler on most
+platforms.  Racket BC has a different C API and supports a slightly different
+set of architectures than the current default runtime system, Racket CS (based
+on ``Chez Scheme'').
+
+This package is the normal implementation of Racket BC with a precise garbage
+collector, 3M (``Moving Memory Manager'').")
+     ;; https://download.racket-lang.org/license.html
+     ;; The LGPL components are only used by Racket BC.
+     (license (list lgpl3+ asl2.0 expat)))))
+
+
+(define-public racket-minimal-bc-cgc
+  (package
+    (inherit racket-minimal-bc-3m)
+    (name "racket-minimal-bc-cgc")
+    (native-inputs
+     (alist-delete "racket" (package-native-inputs racket-minimal-bc-3m)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments racket-minimal-bc-3m)
+       ((#:configure-flags _ '())
+        `(list "--enable-cgcdefault"
+               ,cfg-flag:enable-lt
+               ,cfg-flag:sh-for-rktio))))
+    (synopsis "Old Racket implementation used for bootstrapping")
+    (description "This variant of the Racket BC (``before Chez'' or
+``bytecode'') implementation is not recommended for general use.  It uses
+CGC (a ``Conservative Garbage Collector''), which was succeeded as default in
+PLT Scheme version 370 (which translates to 3.7 in the current versioning
+scheme) by the 3M variant, which in turn was succeeded in version 8.0 by the
+Racket CS implementation.
+
+Racket BC [CGC] is primarily used for bootstrapping Racket BC [3M].  It may
+also be used for embedding applications without the annotations needed in C
+code to use the 3M garbage collector.")))
+
+
+(define-public racket-bootstrap-chez-bootfiles
+  (hidden-package
+   (package
+     (inherit racket-minimal)
+     (name "racket-bootstrap-chez-bootfiles")
+     (inputs `())
+     (native-inputs
+      `(("racket" ,(if (%current-target-system)
+                       racket-minimal
+                       racket-minimal-bc-3m))
+        ("stex" ,@(assoc-ref (package-native-inputs chez-scheme) "stex"))
+        ("nanopass" ,@(assoc-ref (package-native-inputs chez-scheme)
+                                 "nanopass"))))
+     (arguments
+      `(#:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'unpack-nanopass+stex
+            (lambda* (#:key inputs native-inputs #:allow-other-keys)
+              (with-directory-excursion "racket/src/ChezScheme"
+                ,unpack-nanopass+stex)
+              #t))
+          (delete 'configure)
+          (delete 'patch-generated-file-shebangs)
+          (replace 'build
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (with-directory-excursion "racket/src/ChezScheme"
+                (invoke (string-append (assoc-ref inputs "racket")
+                                       "/bin/racket")
+                        "rktboot/main.rkt"
+                        "--dest" (assoc-ref outputs "out")))
+              #t))
+          (delete 'check)
+          (delete 'install))))
+     (synopsis "Chez Scheme bootfiles bootstrapped by Racket")
+     (description "Chez Scheme is a self-hosting compiler: building it
+requires ``bootfiles'' containing the Scheme-implemented portions compiled for
+the current platform.  (Chez can then cross-compile bootfiles for all other
+supported platforms.)
+
+The Racket package @code{cs-bootstrap} (part of the main Racket Git
+repository) implements enough of a Chez Scheme simulation to load the Chez
+Scheme compiler purely from source into Racket and apply the compiler to
+itself, thus bootstrapping Chez Scheme.  Bootstrapping takes about 10 times as
+long as using an existing Chez Scheme, but @code{cs-bootstrap} supports Racket
+7.1 and later, including the Racket BC variant.
+
+Note that the generated bootfiles are specific to Racket's fork of Chez
+Scheme, and @code{cs-bootstrap} does not currently support building upstream
+Chez Scheme.")
+     (license (list asl2.0)))))
+
+
+(define %installer-mirrors
+  ;; Source:
+  ;; https://github.com/racket/racket-lang-org/blob/master/download/data.rkt#L58
+  ;; Matthew Flatt says: "note that many are commented out"
+  ;; INVARIANT: End with a trailing "/"!
+  '("https://mirror.racket-lang.org/installers/"
+    "https://www.cs.utah.edu/plt/installers/"
+    "https://plt.cs.northwestern.edu/racket-mirror/"
+    "https://mirror.csclub.uwaterloo.ca/racket/racket-installers/"
+    ;; Universität Tübingen is using a self-signed HTTPS certificate:
+    "http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
+    "https://racket.infogroep.be/"
+    ))
+
+(define %main-repo-main-distribution-pkgs
+  ;; These are the packages developed in the main Racket Git repository
+  ;; that are part of the main distribution.
+  '("at-exp-lib"
+    "base"
+    "compiler-lib"
+    ;; NOT "compiler-test"
+    "compiler"
+    "net-doc"
+    "net-lib"
+    ;; NOT "net-test"
+    "net"
+    ;; NOT "plt-services"
+    ;; NOT "racket-benchmarks"
+    ;; NOT "racket-build-guide"
+    "racket-doc"
+    "racket-index"
+    "racket-lib"
+    ;; NOT "racket-test-core"
+    ;; NOT "racket-test-extra"
+    ;; NOT "racket-test"
+    "zo-lib"))
 
 
 (define-public racket
@@ -177,16 +415,32 @@ DrRacket IDE, are not included.")
     (version (package-version racket-minimal)) ; needed for origin uri to work
     (source
      (origin
-       (inherit (package-source racket-minimal))
+       (method url-fetch)
        (uri (map (lambda (base)
                    (string-append base version "/racket-src.tgz"))
                  %installer-mirrors))
        (sha256
         (base32
-         "0xdqwrwm604bbnr97h75dps2ixxz2svlw0fn0f674bn04dcfd60f"))))
+         "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
+            (with-directory-excursion "share/pkgs"
+              (for-each delete-file-recursively
+                        '#+%main-repo-main-distribution-pkgs))
+            #t))))
     (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 +453,77 @@ 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)
+       ("main-repo" ,(package-source racket-minimal))))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'unpack-packages
+           (let ((unpack (assoc-ref %standard-phases 'unpack)))
+             (lambda* (#:key  native-inputs inputs outputs #:allow-other-keys)
+               (let* ((racket (assoc-ref (or native-inputs inputs) "racket"))
+                      (prefix (assoc-ref outputs "out"))
+                      (pkgs-dir (string-append prefix "/share/racket/pkgs")))
+                 (mkdir-p pkgs-dir)
+                 (copy-recursively
+                  "share/links.rktd"
+                  (string-append prefix "/share/racket/links.rktd"))
+                 (copy-recursively "share/pkgs" pkgs-dir)
+                 ;; NOTE: unpack changes the working directory
+                 (unpack #:source (assoc-ref (or native-inputs inputs)
+                                             "main-repo"))
+                 (for-each (lambda (pkg)
+                             (define dest (string-append pkgs-dir "/" pkg))
+                             (mkdir-p dest)
+                             (copy-recursively (string-append "pkgs/" pkg)
+                                               dest))
+                           ',%main-repo-main-distribution-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 +534,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))))))))
diff --git a/gnu/packages/rpm.scm b/gnu/packages/rpm.scm
new file mode 100644
index 0000000000..008ddd6fe7
--- /dev/null
+++ b/gnu/packages/rpm.scm
@@ -0,0 +1,200 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(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 (guix build-system meson)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages package-management)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages popt)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages xml))
+
+(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+)))
+
+(define-public libmodulemd
+  (package
+    (name "libmodulemd")
+    (version "2.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/fedora-modularity/"
+                                  "libmodulemd/releases/download/" version
+                                  "/modulemd-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1g4wizr2wwl5x77ni5j46nfcax8fbb7nqq5nr7va9sccyigwwwnc"))))
+    (build-system meson-build-system)
+    (outputs '("out" "doc"))            ;2.6 MiB of HTML documentation
+    (arguments
+     `(#:configure-flags
+       (list (string-append "-Dgobject_overrides_dir_py3="
+                            (python:site-packages %build-inputs %outputs)))
+       #:imported-modules (,@%meson-build-system-modules
+                           (guix build python-build-system))
+       #:modules ((guix build meson-build-system)
+                  ((guix build python-build-system) #:prefix python:)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-glib-doc-prefix
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((glib:doc (assoc-ref inputs "glib:doc")))
+               (substitute* "meson.build"
+                 (("glib_docpath = .*")
+                  (format #f "glib_docpath = '~a'~%"
+                          (string-append glib:doc
+                                         "/share/gtk-doc/html")))))))
+         (add-after 'unpack 'fix-docbook-references
+           ;; gtk-doc doesn't seem to honor DocBook 4.1.2's docbook.cat's
+           ;; catalog file, even when adding it to XML_CATALOG_FILES.  Work
+           ;; around it by adjusting the DocBook references directly.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "modulemd/modulemd-docs.xml"
+               (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
+                (string-append (assoc-ref inputs "docbook-xml")
+                               "/xml/dtd/docbook/docbookx.dtd")))))
+         (add-after 'install 'move-documentation
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc"))
+                    (src (string-append out "/share/gtk-doc"))
+                    (dst (string-append doc "/share/gtk-doc")))
+               (mkdir-p (dirname dst))
+               (rename-file src dst)))))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
+       ("glib:doc" ,glib-with-documentation "doc")
+       ("gobject-introspection" ,gobject-introspection) ;for g-ir-scanner
+       ("gtk-doc" ,gtk-doc)
+       ("help2man" ,help2man)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk" ,gtk+)
+       ("python-pygobject" ,python-pygobject)))
+    (propagated-inputs
+     ;; glib and gobject are listed as 'Requires' in modulemd-2.0.pc.
+     `(("glib" ,glib)
+       ;; yaml and rpm are listed as 'Requires.private' in modulemd-2.0.pc.
+       ("libyaml" ,libyaml)
+       ("rpm" ,rpm)))
+    (home-page "https://github.com/fedora-modularity/libmodulemd")
+    (synopsis "C library for manipulating module metadata files")
+    (description "The libmodulemd API provides a number of convenience tools
+for interacting with repodata (that is, streams of YAML that contains
+information on multiple streams, default data and translations).")
+    (license license:expat)))
+
+(define-public createrepo-c
+  (package
+    (name "createrepo-c")
+    (version "0.17.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/rpm-software-management/createrepo_c")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1fgf71mkhghgbp0pf2pazc7hyaix5igb5nl4fqsisjksfvzdfm5k"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:imported-modules (,@%cmake-build-system-modules
+                           (guix build python-build-system))
+       #:modules ((guix build cmake-build-system)
+                  ((guix build python-build-system) #:prefix python:)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-python-site-prefix
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (substitute* "src/python/CMakeLists.txt"
+               (("EXECUTE_PROCESS.*OUTPUT_VARIABLE PYTHON_INSTALL_DIR.*")
+                (format #f "set (PYTHON_INSTALL_DIR ~a)~%"
+                        (python:site-packages inputs outputs))))))
+         (add-after 'unpack 'fix-bash-completion-prefix
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               (("execute_process.*OUTPUT_VARIABLE BASHCOMP_DIR.*")
+                (format #f "set (BASHCOMP_DIR ~a\
+/share/bash-completion/completions)~%" (assoc-ref outputs "out")))))))))
+    (native-inputs
+     `(("bash-completion" ,bash-completion)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)))
+    (inputs
+     `(("bzip2" ,bzip2)
+       ("curl" ,curl)
+       ("drpm" ,drpm)
+       ("libmodulemd" ,libmodulemd)
+       ("libxml2" ,libxml2)
+       ("openssl" ,openssl)
+       ("sqlite" ,sqlite)
+       ("zchunk" ,zchunk)))
+    (home-page "https://rpm-software-management.github.io/createrepo_c/")
+    (synopsis "C implementation of the createrepo tool")
+    (description "This package provides the @command{createrepo} command,
+which can be used to create RPM repositories.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index f722c27cd7..b2a59de573 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2021 Antero Mejr <antero@kodmin.com>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Sergey Trofimov <sarg@sarg.org.ru>
+;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -659,6 +660,23 @@ implementing a Relying Party.")
                (base32
                 "11rsmcaj60k3y5m5gdhr2nbbz0w5dm3m04klyxz0fh5hnpcmr7fm"))))
     (build-system python-build-system)
+    (arguments
+     '(#:modules ((srfi srfi-1)
+                  (guix build utils)
+                  (guix build python-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-libykpers-reference
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "ykman/driver_otp.py"
+               (("Ykpers\\('ykpers-1', '1'\\)")
+                (string-append
+                 "Ykpers('"
+                 (find (negate symbolic-link?)
+                       (find-files (assoc-ref inputs "yubikey-personalization")
+                                   "^libykpers-.*\\.so\\..*"))
+                 "')")))
+             #t)))))
     (propagated-inputs
      `(("python-six" ,python-six)
        ("python-pyscard" ,python-pyscard)
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 7fd083f93d..2362b0786e 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
@@ -11,6 +11,7 @@
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -333,6 +334,74 @@ that implements both the msgpack and msgpack-rpc specifications.")
     (inputs
      `(("lua" ,lua-5.2)))))
 
+(define-public libyaml
+  (package
+    (name "libyaml")
+    (version "0.2.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pyyaml.org/download/libyaml/yaml-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1x4fcw13r3lqy8ndydr3ili87wicplw2awbcv6r21qgyfndswhn6"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--disable-static")))
+    (home-page "https://pyyaml.org/wiki/LibYAML")
+    (synopsis "YAML 1.1 parser and emitter written in C")
+    (description
+     "LibYAML is a YAML 1.1 parser and emitter written in C.")
+    (license license:expat)))
+
+(define-public libyaml+static
+  (package
+    (inherit libyaml)
+    (name "libyaml+static")
+    (arguments
+     '(#:configure-flags '("--enable-static")))))
+
+(define-public libcyaml
+  (package
+    (name "libcyaml")
+    (version "1.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tlsa/libcyaml")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (patches (search-patches "libcyaml-libyaml-compat.patch"))
+       (sha256
+        (base32 "0428p0rwq71nhh5nzcbapsbrjxa0x5l6h6ns32nxv7j624f0zd93"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "CC=gcc"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure script
+         (replace 'check
+           (lambda _
+             (setenv "CC" "gcc")
+             (invoke "make" "test"))))))
+    (inputs
+     `(("libyaml" ,libyaml)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "C library for reading and writing YAML")
+    (description
+     "LibCYAML is a C library written in ISO C11 for reading and writing
+structured YAML documents.  The fundamental idea behind CYAML is to allow
+applications to construct schemas which describe both the permissible
+structure of the YAML documents to read/write, and the C data structure(s)
+in which the loaded data is arranged in memory.")
+    (home-page "https://github.com/tlsa/libcyaml")
+    (license license:isc)))
+
 (define-public yaml-cpp
   (package
     (name "yaml-cpp")
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 7bdfbbbd35..654d652d47 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -506,7 +506,7 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings.  e3 can be used on
 (define-public mg
   (package
     (name "mg")
-    (version "20180927")
+    (version "20210609")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -515,12 +515,11 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings.  e3 can be used on
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14vrm8lvwksf697sqks7xfd1xaqjlqjc9afjk33sksq5p27wr203"))
+                "04c2vqxg31mk15cfrhzrivykis8fmf0m1d8h1qdjdmlfxd4qwaqf"))
               (modules '((guix build utils)))
               (snippet '(begin
                           (substitute* "GNUmakefile"
-                            (("/usr/bin/") ""))
-                          #t))))
+                            (("/usr/bin/") ""))))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -929,14 +928,14 @@ Octave.  TeXmacs is completely extensible via Guile.")
 (define-public scintilla
   (package
     (name "scintilla")
-    (version "5.1.0")
+    (version "5.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (let ((v (apply string-append (string-split version #\.))))
               (string-append "https://www.scintilla.org/scintilla" v ".tgz")))
        (sha256
-        (base32 "0figd543inpi00yr6han73qd2fzx99r099vzcbg9mhpzsgxfwz4f"))))
+        (base32 "1d0yjx2wlx4fj5bccxdgfmrr7nzazkw4m08i6h4c0a54sb484yif"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index be6af8df38..3018dd44bb 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -39,7 +39,6 @@
 ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
 ;;; Copyright © 2019, 2020 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
-;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
@@ -52,6 +51,7 @@
 ;;; Copyright © 2021 la snesne <lasnesne@lagunposprasihopre.org>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -166,6 +166,7 @@
   #:use-module (gnu packages re2c)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages search)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
@@ -774,6 +775,64 @@ documentation.")
     (description "This NGINX module provides a scripting support with Lua
 programming language.")))
 
+(define-public nginx-rtmp-module
+  (package
+    (inherit nginx)
+    (name "nginx-rtmp-module")
+    (version "1.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/arut/nginx-rtmp-module")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0y45bswk213yhkc2v1xca2rnsxrhx8v6azxz9pvi71vvxcggqv6h"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("nginx-sources" ,(package-source nginx))
+       ,@(package-inputs nginx)))
+    (arguments
+     (substitute-keyword-arguments
+         `(#:configure-flags '("--add-dynamic-module=.")
+           #:make-flags '("modules")
+           #:modules ((guix build utils)
+                      (guix build gnu-build-system))
+           ,@(package-arguments nginx))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'unpack-nginx-sources
+             (lambda* (#:key inputs native-inputs #:allow-other-keys)
+               (begin
+                 ;; The nginx source code is part of the module’s source.
+                 (format #t "decompressing nginx source code~%")
+                 (invoke "tar" "xvf" (assoc-ref inputs "nginx-sources")
+                         ;; This packages's LICENSE file would be
+                         ;; overwritten with the one from nginx when
+                         ;; unpacking the nginx source, so rename the nginx
+                         ;; one when unpacking.
+                         "--transform=s,/LICENSE$,/LICENSE.nginx,"
+                         "--strip-components=1")
+                 #t)))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((modules-dir (string-append (assoc-ref outputs "out")
+                                                 "/etc/nginx/modules")))
+                 (install-file "objs/ngx_rtmp_module.so" modules-dir)
+                 #t)))
+           (delete 'fix-root-dirs)
+           (delete 'install-man-page)))))
+    (home-page "https://github.com/arut/nginx-rtmp-module")
+    (synopsis "NGINX module for audio and video streaming with RTMP")
+    (description "This NGINX module provides streaming with the @acronym{RTMP,
+Real-Time Messaging Protocol}, @acronym{DASH, Dynamic Adaptive Streaming over HTTP},
+and @acronym{HLS, HTTP Live Streaming} protocols.  It allows NGINX to accept
+incoming RTMP streams for recording or redistribution.  It also supports
+on-demand streaming from a file on disk and pulling from an upstream RTMP
+stream.  Remote control of the module is possible over HTTP.")
+    (license license:bsd-2)))
+
 (define-public lighttpd
   (package
     (name "lighttpd")
@@ -1796,34 +1855,6 @@ hash/signatures.")
     ;; Source code may be distributed under either license.
     (license (list license:expat license:gpl2+))))
 
-(define-public libyaml
-  (package
-    (name "libyaml")
-    (version "0.2.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://pyyaml.org/download/libyaml/yaml-"
-                           version ".tar.gz"))
-       (sha256
-        (base32
-         "1x4fcw13r3lqy8ndydr3ili87wicplw2awbcv6r21qgyfndswhn6"))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:configure-flags '("--disable-static")))
-    (home-page "https://pyyaml.org/wiki/LibYAML")
-    (synopsis "YAML 1.1 parser and emitter written in C")
-    (description
-     "LibYAML is a YAML 1.1 parser and emitter written in C.")
-    (license license:expat)))
-
-(define-public libyaml+static
-  (package
-    (inherit libyaml)
-    (name "libyaml+static")
-    (arguments
-     '(#:configure-flags '("--enable-static")))))
-
 (define-public libquvi-scripts
   (package
     (name "libquvi-scripts")
@@ -5373,46 +5404,6 @@ developed as part of the Netsurf project.")
 written in C.  It is developed as part of the NetSurf project.")
     (license license:expat)))
 
-(define-public libcyaml
-  (package
-    (name "libcyaml")
-    (version "1.1.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/tlsa/libcyaml")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (patches (search-patches "libcyaml-libyaml-compat.patch"))
-       (sha256
-        (base32 "0428p0rwq71nhh5nzcbapsbrjxa0x5l6h6ns32nxv7j624f0zd93"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:make-flags
-       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-             (string-append "CC=gcc"))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)            ; no configure script
-         (replace 'check
-           (lambda _
-             (setenv "CC" "gcc")
-             (invoke "make" "test"))))))
-    (inputs
-     `(("libyaml" ,libyaml)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (synopsis "C library for reading and writing YAML")
-    (description
-     "LibCYAML is a C library written in ISO C11 for reading and writing
-structured YAML documents.  The fundamental idea behind CYAML is to allow
-applications to construct schemas which describe both the permissible
-structure of the YAML documents to read/write, and the C data structure(s)
-in which the loaded data is arranged in memory.")
-    (home-page "https://github.com/tlsa/libcyaml")
-    (license license:isc)))
-
 (define-public libdom
   (package
     (name "libdom")