diff --git a/nix-meson-build-support/common/meson.build b/nix-meson-build-support/common/meson.build index 5fcf557e70b..4488a176017 100644 --- a/nix-meson-build-support/common/meson.build +++ b/nix-meson-build-support/common/meson.build @@ -25,6 +25,7 @@ add_project_arguments( '-Wignored-qualifiers', '-Wimplicit-fallthrough', '-Wno-deprecated-declarations', + '-Wno-interference-size', # Used for C++ ABI only. We don't provide any guarantees about different march tunings. language : 'cpp', ) diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 84f14198f82..d9d8a986a3e 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -318,7 +318,6 @@ EvalState::EvalState( countCalls = getEnv("NIX_COUNT_CALLS").value_or("0") != "0"; static_assert(sizeof(Env) <= 16, "environment must be <= 16 bytes"); - static_assert(sizeof(Counter) == 64, "counters must be 64 bytes"); /* Construct the Nix expression search path. */ assert(lookupPath.elements.empty()); diff --git a/src/libexpr/include/nix/expr/counter.hh b/src/libexpr/include/nix/expr/counter.hh index efbf23de349..f679b23caee 100644 --- a/src/libexpr/include/nix/expr/counter.hh +++ b/src/libexpr/include/nix/expr/counter.hh @@ -11,7 +11,7 @@ namespace nix { * variable is set. This is to prevent contention on these counters * when multi-threaded evaluation is enabled. */ -struct alignas(64) Counter +struct alignas(std::hardware_destructive_interference_size) Counter { using value_type = uint64_t; diff --git a/src/libexpr/include/nix/expr/value.hh b/src/libexpr/include/nix/expr/value.hh index 479a4fddc13..aef10b9c653 100644 --- a/src/libexpr/include/nix/expr/value.hh +++ b/src/libexpr/include/nix/expr/value.hh @@ -134,7 +134,7 @@ public: virtual bool operator==(const ExternalValueBase & b) const noexcept; /** - * Print the value as JSON. Defaults to unconvertable, i.e. throws an error + * Print the value as JSON. Defaults to unconvertible, i.e. throws an error */ virtual nlohmann::json printValueAsJSON(EvalState & state, bool strict, NixStringContext & context, bool copyToStore = true) const; @@ -587,7 +587,7 @@ class alignas(16) enum PrimaryDiscriminator : int { pdUninitialized = 0, pdSingleDWord, //< layout: Single/zero field payload - /* The order of these enumations must be the same as in InternalType. */ + /* The order of these enumerations must be the same as in InternalType. */ pdListN, //< layout: Single untaggable field. pdString, pdPath,