aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2021-11-29 11:10:42 +0100
committerGitHub <noreply@github.com>2021-11-29 11:10:42 +0100
commit99804465afe403ee7e3436b14fa643a9832ca486 (patch)
tree2e1c345a432a3e015a12ec0f7deedb2d0624f290
parent3d36f48acb90c846ea5f82655161fb07eb6ba2f6 (diff)
parenta9bd06d0ea2c7af9fa33763bdca174db76400ee0 (diff)
Merge pull request #5679 from t184256/optional-libcpuid
Document libcpuid dependency and make it optional
-rw-r--r--configure.ac13
-rw-r--r--doc/manual/src/installation/prerequisites-source.md8
-rw-r--r--tests/local.mk5
3 files changed, 22 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index 65478ecc5..4108eb0a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -195,10 +195,17 @@ PKG_CHECK_MODULES([SODIUM], [libsodium], [CXXFLAGS="$SODIUM_CFLAGS $CXXFLAGS"])
PKG_CHECK_MODULES([LIBBROTLI], [libbrotlienc libbrotlidec], [CXXFLAGS="$LIBBROTLI_CFLAGS $CXXFLAGS"])
# Look for libcpuid.
+have_libcpuid=
if test "$machine_name" = "x86_64"; then
- PKG_CHECK_MODULES([LIBCPUID], [libcpuid], [CXXFLAGS="$LIBCPUID_CFLAGS $CXXFLAGS"])
- have_libcpuid=1
- AC_DEFINE([HAVE_LIBCPUID], [1], [Use libcpuid])
+ AC_ARG_ENABLE([cpuid],
+ AS_HELP_STRING([--disable-cpuid], [Do not determine microarchitecture levels with libcpuid (relevant to x86_64 only)]))
+ if test "x$enable_cpuid" != "xno"; then
+ PKG_CHECK_MODULES([LIBCPUID], [libcpuid],
+ [CXXFLAGS="$LIBCPUID_CFLAGS $CXXFLAGS"
+ have_libcpuid=1
+ AC_DEFINE([HAVE_LIBCPUID], [1], [Use libcpuid])]
+ )
+ fi
fi
AC_SUBST(HAVE_LIBCPUID, [$have_libcpuid])
diff --git a/doc/manual/src/installation/prerequisites-source.md b/doc/manual/src/installation/prerequisites-source.md
index 0323a4f55..1b03bacd3 100644
--- a/doc/manual/src/installation/prerequisites-source.md
+++ b/doc/manual/src/installation/prerequisites-source.md
@@ -58,3 +58,11 @@
`--disable-seccomp-sandboxing` option to the `configure` script (Not
recommended unless your system doesn't support `libseccomp`). To get
the library, visit <https://github.com/seccomp/libseccomp>.
+
+ - On 64-bit x86 machines only, `libcpuid` library
+ is used to determine which microarchitecture levels are supported
+ (e.g., as whether to have `x86_64-v2-linux` among additional system types).
+ The library is available from its homepage
+ <http://libcpuid.sourceforge.net>.
+ This is an optional dependency and can be disabled
+ by providing a `--disable-cpuid` to the `configure` script.
diff --git a/tests/local.mk b/tests/local.mk
index 6f38853bc..936b72c2a 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -48,7 +48,6 @@ nix_tests = \
flakes.sh \
flake-local-settings.sh \
build.sh \
- compute-levels.sh \
repl.sh ca/repl.sh \
ca/build.sh \
ca/build-with-garbage-path.sh \
@@ -63,6 +62,10 @@ nix_tests = \
eval-store.sh
# parallel.sh
+ifeq ($(HAVE_LIBCPUID), 1)
+ nix_tests += compute-levels.sh
+endif
+
install-tests += $(foreach x, $(nix_tests), tests/$(x))
tests-environment = NIX_REMOTE= $(bash) -e