From 8ff970916b975cfd1b79ff3751061526fe88614b Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 17:40:20 +0200 Subject: [PATCH 01/10] openmpCheckPhaseHook: init --- .../op/openmpCheckPhaseHook/omp-check-hook.sh | 11 +++++++++++ pkgs/by-name/op/openmpCheckPhaseHook/package.nix | 12 ++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/by-name/op/openmpCheckPhaseHook/omp-check-hook.sh create mode 100644 pkgs/by-name/op/openmpCheckPhaseHook/package.nix diff --git a/pkgs/by-name/op/openmpCheckPhaseHook/omp-check-hook.sh b/pkgs/by-name/op/openmpCheckPhaseHook/omp-check-hook.sh new file mode 100644 index 000000000000..b3279b170360 --- /dev/null +++ b/pkgs/by-name/op/openmpCheckPhaseHook/omp-check-hook.sh @@ -0,0 +1,11 @@ +preCheckHooks+=('setupOmpCheck') +preInstallCheckHooks+=('setupOmpCheck') + + +setupOmpCheck() { + # Limit number of OpenMP threads. Default is "all cores". + # Using all cores causes high load on builders if checks are executed with NIX_BUILD_CORE parallelism. + # This gets even worse if multiple builds are scheduled on the same machine, potentially growing O(n^3) without explicit core limits. + export OMP_NUM_THREADS="${OMP_NUM_THREADS:-1}" +} + diff --git a/pkgs/by-name/op/openmpCheckPhaseHook/package.nix b/pkgs/by-name/op/openmpCheckPhaseHook/package.nix new file mode 100644 index 000000000000..9e30609e8de5 --- /dev/null +++ b/pkgs/by-name/op/openmpCheckPhaseHook/package.nix @@ -0,0 +1,12 @@ +{ + lib, + makeSetupHook, +}: + +makeSetupHook { + name = "omp-checkPhase-hook"; + + __structuredAttrs = true; + + meta.license = lib.licenses.mit; +} ./omp-check-hook.sh From 71fbdd6512fcf27434aa34bbb9a830c1a8a2068b Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 17:50:01 +0200 Subject: [PATCH 02/10] doc/openmpCheckPhaseHook: init --- doc/hooks/index.md | 1 + doc/hooks/openmp-check-hook.section.md | 10 ++++++++++ doc/redirects.json | 3 +++ 3 files changed, 14 insertions(+) create mode 100644 doc/hooks/openmp-check-hook.section.md diff --git a/doc/hooks/index.md b/doc/hooks/index.md index 7fb76b72953e..63cc9b2ded64 100644 --- a/doc/hooks/index.md +++ b/doc/hooks/index.md @@ -34,6 +34,7 @@ nodejs-install-manuals.section.md npm-build-hook.section.md npm-config-hook.section.md npm-install-hook.section.md +openmp-check-hook.section.md patch-rc-path-hooks.section.md perl.section.md pkg-config.section.md diff --git a/doc/hooks/openmp-check-hook.section.md b/doc/hooks/openmp-check-hook.section.md new file mode 100644 index 000000000000..5a5842eb5e29 --- /dev/null +++ b/doc/hooks/openmp-check-hook.section.md @@ -0,0 +1,10 @@ +# openmpCheckPhaseHook {#setup-hook-omp-check} + + +This hook can be used to setup a check phase that +requires running a OpenMP application. It mostly +serves to limit `OMP_NUM_THREADS` to avoid overloading +build machines. + +This hook will not attempt to override an already existing +definition of `OMP_NUM_THREADS` in the environment. diff --git a/doc/redirects.json b/doc/redirects.json index 51839e8ee9b0..c9d3a004e3e3 100644 --- a/doc/redirects.json +++ b/doc/redirects.json @@ -2881,6 +2881,9 @@ "setup-hook-mpi-check": [ "index.html#setup-hook-mpi-check" ], + "setup-hook-omp-check": [ + "index.html#setup-hook-omp-check" + ], "ninja": [ "index.html#ninja" ], From 240ef095c6bc783e437fb69b74442db6219d0e49 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 17:51:33 +0200 Subject: [PATCH 03/10] mpiCheckPhaseHook: propagate openmpCheckPhaseHook --- pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh | 3 --- pkgs/by-name/mp/mpiCheckPhaseHook/package.nix | 6 +++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh b/pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh index be2203951c0f..139dc932366f 100644 --- a/pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh +++ b/pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh @@ -72,8 +72,5 @@ setupMpiCheck() { export HWLOC_XMLFILE="@topology@" ;; esac - - # Limit number of OpenMP threads. Default is "all cores". - export OMP_NUM_THREADS=1 } diff --git a/pkgs/by-name/mp/mpiCheckPhaseHook/package.nix b/pkgs/by-name/mp/mpiCheckPhaseHook/package.nix index e5bdc817379d..db5832c28a6e 100644 --- a/pkgs/by-name/mp/mpiCheckPhaseHook/package.nix +++ b/pkgs/by-name/mp/mpiCheckPhaseHook/package.nix @@ -1,8 +1,8 @@ { lib, - callPackage, makeSetupHook, stdenv, + openmpCheckPhaseHook, }: makeSetupHook { @@ -13,5 +13,9 @@ makeSetupHook { topology = ./topology.xml; }; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + meta.license = lib.licenses.mit; } ./mpi-check-hook.sh From 559ae88af990e9cc835f791f1fca62283ac574a7 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 17:52:29 +0200 Subject: [PATCH 04/10] llvmPackages.openmp: propagate openmpCheckPhaseHook --- pkgs/development/compilers/llvm/common/openmp/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/llvm/common/openmp/default.nix b/pkgs/development/compilers/llvm/common/openmp/default.nix index a08376522d9e..10f9ce154cb4 100644 --- a/pkgs/development/compilers/llvm/common/openmp/default.nix +++ b/pkgs/development/compilers/llvm/common/openmp/default.nix @@ -19,7 +19,7 @@ ompdSupport ? true, ompdGdbSupport ? ompdSupport, getVersionFile, - fetchpatch, + openmpCheckPhaseHook, }: assert lib.assertMsg (ompdGdbSupport -> ompdSupport) "OMPD GDB support requires OMPD support!"; @@ -60,6 +60,10 @@ stdenv.mkDerivation (finalAttrs: { lit ]; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + buildInputs = [ llvm ] From df838c503eaeb72f9a100ccf8e5914fe65a11502 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 17:53:36 +0200 Subject: [PATCH 05/10] blas: propagate openmpCheckPhaseHook --- pkgs/by-name/bl/blas/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/bl/blas/package.nix b/pkgs/by-name/bl/blas/package.nix index 01ad1839c339..51deec6c5c64 100644 --- a/pkgs/by-name/bl/blas/package.nix +++ b/pkgs/by-name/bl/blas/package.nix @@ -3,6 +3,7 @@ stdenv, lapack-reference, openblas, + openmpCheckPhaseHook, isILP64 ? false, blasProvider ? openblas, }: @@ -186,6 +187,10 @@ stdenv.mkDerivation { "dev" ]; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + meta = (blasProvider'.meta or { }) // { description = "${lib.getName blasProvider} with just the BLAS C and FORTRAN ABI"; }; From b3944a1e306623cb152573d1aaad9ba569a9d67f Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 18:42:53 +0200 Subject: [PATCH 06/10] python3Packages.numpy: propagate openmpCheckPhaseHook --- pkgs/development/python-modules/numpy/2.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/python-modules/numpy/2.nix b/pkgs/development/python-modules/numpy/2.nix index be54cb4d312e..c62619db4422 100644 --- a/pkgs/development/python-modules/numpy/2.nix +++ b/pkgs/development/python-modules/numpy/2.nix @@ -19,6 +19,8 @@ coreutils, lapack, + openmpCheckPhaseHook, + # Reverse dependency sage, @@ -122,6 +124,10 @@ buildPythonPackage (finalAttrs: { ln -s ${placeholder "out"}/${finalAttrs.passthru.coreIncludeInnerDir} $out/include ''; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + preCheck = '' pushd $out # For numpy-config executable to be available during tests From ef8b8d8f58919deb3d462416e582dadafe3fb833 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 18:43:24 +0200 Subject: [PATCH 07/10] python3Packages.*: remove explicit OMP_NUM_THREADS definitions where numpy is used --- pkgs/development/python-modules/astropy/default.nix | 4 ---- pkgs/development/python-modules/captum/default.nix | 4 ---- pkgs/development/python-modules/geometric/default.nix | 4 ---- pkgs/development/python-modules/imread/default.nix | 1 - pkgs/development/python-modules/linearmodels/default.nix | 2 -- pkgs/development/python-modules/mace-torch/default.nix | 4 ---- pkgs/development/python-modules/numpy/1.nix | 7 ++++++- pkgs/development/python-modules/numpy/2.nix | 4 ---- pkgs/development/python-modules/pyscf/default.nix | 1 - pkgs/development/python-modules/qutip/default.nix | 1 - pkgs/development/python-modules/scikit-bio/default.nix | 4 ---- pkgs/development/python-modules/scikit-learn/default.nix | 1 - pkgs/development/python-modules/scipy/default.nix | 5 ----- .../development/python-modules/torch-geometric/default.nix | 4 ---- pkgs/development/python-modules/x-transformers/default.nix | 4 ---- 15 files changed, 6 insertions(+), 44 deletions(-) diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix index 639e234acbb0..94376d603d5e 100644 --- a/pkgs/development/python-modules/astropy/default.nix +++ b/pkgs/development/python-modules/astropy/default.nix @@ -143,10 +143,6 @@ buildPythonPackage rec { preCheck = '' export HOME="$(mktemp -d)" - export OMP_NUM_THREADS=$(( $NIX_BUILD_CORES / 4 )) - if [ $OMP_NUM_THREADS -eq 0 ]; then - export OMP_NUM_THREADS=1 - fi # See https://github.com/astropy/astropy/issues/17649 and see # --hypothesis-profile=ci pytest flag below. diff --git a/pkgs/development/python-modules/captum/default.nix b/pkgs/development/python-modules/captum/default.nix index 455eac5c5fc1..858e9abc4110 100644 --- a/pkgs/development/python-modules/captum/default.nix +++ b/pkgs/development/python-modules/captum/default.nix @@ -52,10 +52,6 @@ buildPythonPackage rec { scikit-learn ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ # These tests may fail if multiple builds run them at the same time due diff --git a/pkgs/development/python-modules/geometric/default.nix b/pkgs/development/python-modules/geometric/default.nix index ec1553e164ab..08301b669d5c 100644 --- a/pkgs/development/python-modules/geometric/default.nix +++ b/pkgs/development/python-modules/geometric/default.nix @@ -28,10 +28,6 @@ buildPythonPackage rec { six ]; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - nativeCheckInputs = [ pytestCheckHook ]; meta = { diff --git a/pkgs/development/python-modules/imread/default.nix b/pkgs/development/python-modules/imread/default.nix index a26b89fb2b02..bc0934f5bd7c 100644 --- a/pkgs/development/python-modules/imread/default.nix +++ b/pkgs/development/python-modules/imread/default.nix @@ -49,7 +49,6 @@ buildPythonPackage rec { preCheck = '' cd $TMPDIR export HOME=$TMPDIR - export OMP_NUM_THREADS=1 ''; meta = { diff --git a/pkgs/development/python-modules/linearmodels/default.nix b/pkgs/development/python-modules/linearmodels/default.nix index d67690e48774..9a5ae03ffe5f 100644 --- a/pkgs/development/python-modules/linearmodels/default.nix +++ b/pkgs/development/python-modules/linearmodels/default.nix @@ -67,8 +67,6 @@ buildPythonPackage (finalAttrs: { preCheck = '' rm linearmodels/__init__.py - - export OMP_NUM_THREADS=1 ''; disabledTestPaths = [ diff --git a/pkgs/development/python-modules/mace-torch/default.nix b/pkgs/development/python-modules/mace-torch/default.nix index 4ed39d479782..3c8b486f643b 100644 --- a/pkgs/development/python-modules/mace-torch/default.nix +++ b/pkgs/development/python-modules/mace-torch/default.nix @@ -82,10 +82,6 @@ buildPythonPackage (finalAttrs: { writableTmpDirAsHomeHook ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - disabledTests = [ # _pickle.PickleError: ScriptFunction cannot be pickled "test_run_eval_fail_with_wrong_model" diff --git a/pkgs/development/python-modules/numpy/1.nix b/pkgs/development/python-modules/numpy/1.nix index 4fc274257916..7167ff94637e 100644 --- a/pkgs/development/python-modules/numpy/1.nix +++ b/pkgs/development/python-modules/numpy/1.nix @@ -18,6 +18,8 @@ blas, lapack, + openmpCheckPhaseHook, + # Reverse dependency sage, @@ -93,7 +95,6 @@ buildPythonPackage (finalAttrs: { # see https://github.com/OpenMathLib/OpenBLAS/issues/2993 preConfigure = '' sed -i 's/-faltivec//' numpy/distutils/system_info.py - export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 64 ? 64 : NIX_BUILD_CORES)) ''; preBuild = '' @@ -110,6 +111,10 @@ buildPythonPackage (finalAttrs: { typing-extensions ]; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + preCheck = '' cd "$out" ''; diff --git a/pkgs/development/python-modules/numpy/2.nix b/pkgs/development/python-modules/numpy/2.nix index c62619db4422..712130d6a0a8 100644 --- a/pkgs/development/python-modules/numpy/2.nix +++ b/pkgs/development/python-modules/numpy/2.nix @@ -93,10 +93,6 @@ buildPythonPackage (finalAttrs: { ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ]; - preConfigure = '' - export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 64 ? 64 : NIX_BUILD_CORES)) - ''; - buildInputs = [ blas lapack diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix index a248a1bb0d49..012d23f0dcfb 100644 --- a/pkgs/development/python-modules/pyscf/default.nix +++ b/pkgs/development/python-modules/pyscf/default.nix @@ -80,7 +80,6 @@ buildPythonPackage (finalAttrs: { preCheck = '' # Set config used by tests to ensure reproducibility echo 'pbc_tools_pbc_fft_engine = "NUMPY"' > pyscf/pyscf_config.py - export OMP_NUM_THREADS=1 ulimit -s 20000 export PYSCF_CONFIG_FILE=$(pwd)/pyscf/pyscf_config.py ''; diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix index 89e77b995785..aa968f51180d 100644 --- a/pkgs/development/python-modules/qutip/default.nix +++ b/pkgs/development/python-modules/qutip/default.nix @@ -62,7 +62,6 @@ buildPythonPackage (finalAttrs: { # This is due to the Cython-compiled modules not being in the correct location # of the source tree. preCheck = '' - export OMP_NUM_THREADS=$NIX_BUILD_CORES mkdir -p test && cd test ''; diff --git a/pkgs/development/python-modules/scikit-bio/default.nix b/pkgs/development/python-modules/scikit-bio/default.nix index c909d8d66d08..1190d875005a 100644 --- a/pkgs/development/python-modules/scikit-bio/default.nix +++ b/pkgs/development/python-modules/scikit-bio/default.nix @@ -62,10 +62,6 @@ buildPythonPackage (finalAttrs: { pytestCheckHook ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - # only the $out dir contains the built cython extensions, so we run the tests inside there enabledTestPaths = [ "${placeholder "out"}/${python.sitePackages}/skbio" ]; diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix index b48f5a5d8f72..bf50ab0b7a63 100644 --- a/pkgs/development/python-modules/scikit-learn/default.nix +++ b/pkgs/development/python-modules/scikit-learn/default.nix @@ -116,7 +116,6 @@ buildPythonPackage rec { preCheck = '' cd $TMPDIR export HOME=$TMPDIR - export OMP_NUM_THREADS=1 ''; pythonImportsCheck = [ "sklearn" ]; diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix index 914b8ce07842..785a917fcf0d 100644 --- a/pkgs/development/python-modules/scipy/default.nix +++ b/pkgs/development/python-modules/scipy/default.nix @@ -175,11 +175,6 @@ buildPythonPackage (finalAttrs: { ''; preCheck = '' - export OMP_NUM_THREADS=$(( $NIX_BUILD_CORES / 4 )) - if [ $OMP_NUM_THREADS -eq 0 ]; then - export OMP_NUM_THREADS=1 - fi - cd $out ''; diff --git a/pkgs/development/python-modules/torch-geometric/default.nix b/pkgs/development/python-modules/torch-geometric/default.nix index 839f5c8e02e5..06863712e7c5 100644 --- a/pkgs/development/python-modules/torch-geometric/default.nix +++ b/pkgs/development/python-modules/torch-geometric/default.nix @@ -185,10 +185,6 @@ buildPythonPackage (finalAttrs: { writableTmpDirAsHomeHook ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - pytestFlags = [ # DeprecationWarning: Failing to pass a value to the 'type_params' parameter of # 'typing._eval_type' is deprecated, as it leads to incorrect behaviour when calling diff --git a/pkgs/development/python-modules/x-transformers/default.nix b/pkgs/development/python-modules/x-transformers/default.nix index 1496775f5eec..16d3dff4fd61 100644 --- a/pkgs/development/python-modules/x-transformers/default.nix +++ b/pkgs/development/python-modules/x-transformers/default.nix @@ -42,10 +42,6 @@ buildPythonPackage (finalAttrs: { nativeCheckInputs = [ pytestCheckHook ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - # RuntimeError: torch.compile is not supported on Python 3.14+ disabledTests = lib.optionals (pythonAtLeast "3.14") [ "test_up" ]; From d5ae461bf7277e6fcbb5239e4b268ed2792e6ef2 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 18:16:07 +0200 Subject: [PATCH 08/10] treewide: remove explicit OMP_NUM_THREADS where openmpCheckPhaseHook is in effect --- pkgs/by-name/cp/cpcm-x/package.nix | 4 ---- pkgs/by-name/df/dftd4/package.nix | 4 ---- pkgs/by-name/el/elpa/package.nix | 3 --- pkgs/by-name/er/ergoscf/package.nix | 1 - pkgs/by-name/gr/greenx/package.nix | 4 ---- pkgs/by-name/mc/mctc-lib/package.nix | 4 ---- pkgs/by-name/mo/mopac/package.nix | 4 ---- pkgs/by-name/mp/mpb/package.nix | 2 -- pkgs/by-name/mu/multicharge/package.nix | 4 ---- pkgs/by-name/nu/numsa/package.nix | 4 ---- pkgs/by-name/pi/pixman/package.nix | 5 ----- pkgs/by-name/wa/wannier90/package.nix | 3 --- pkgs/by-name/xt/xtb/package.nix | 3 --- .../libraries/science/chemistry/simple-dftd3/default.nix | 3 --- .../libraries/science/chemistry/tblite/default.nix | 4 ---- 15 files changed, 52 deletions(-) diff --git a/pkgs/by-name/cp/cpcm-x/package.nix b/pkgs/by-name/cp/cpcm-x/package.nix index 99484edfc1d2..7a5049365423 100644 --- a/pkgs/by-name/cp/cpcm-x/package.nix +++ b/pkgs/by-name/cp/cpcm-x/package.nix @@ -89,10 +89,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/by-name/df/dftd4/package.nix b/pkgs/by-name/df/dftd4/package.nix index c58a7400c404..b4bc8271cf33 100644 --- a/pkgs/by-name/df/dftd4/package.nix +++ b/pkgs/by-name/df/dftd4/package.nix @@ -81,10 +81,6 @@ stdenv.mkDerivation (finalAttrs: { app/tester.py ''; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Generally Applicable Atomic-Charge Dependent London Dispersion Correction"; changelog = "https://github.com/dftd4/dftd4/releases/tag/${finalAttrs.src.tag}"; diff --git a/pkgs/by-name/el/elpa/package.nix b/pkgs/by-name/el/elpa/package.nix index 170f03f697e8..650d59f93de4 100644 --- a/pkgs/by-name/el/elpa/package.nix +++ b/pkgs/by-name/el/elpa/package.nix @@ -116,9 +116,6 @@ stdenv.mkDerivation (finalAttrs: { preCheck = '' #patchShebangs ./ - # Run dual threaded - export OMP_NUM_THREADS=2 - # Reduce test problem sizes export TEST_FLAGS="1500 50 16" ''; diff --git a/pkgs/by-name/er/ergoscf/package.nix b/pkgs/by-name/er/ergoscf/package.nix index 9514bb89f1e4..59ccb179b2bd 100644 --- a/pkgs/by-name/er/ergoscf/package.nix +++ b/pkgs/by-name/er/ergoscf/package.nix @@ -39,7 +39,6 @@ stdenv.mkDerivation (finalAttrs: { "-lblas" "-llapack" ]; - OMP_NUM_THREADS = 2; # required for check phase }; enableParallelBuilding = true; diff --git a/pkgs/by-name/gr/greenx/package.nix b/pkgs/by-name/gr/greenx/package.nix index c08356a17058..fb360c6728b8 100644 --- a/pkgs/by-name/gr/greenx/package.nix +++ b/pkgs/by-name/gr/greenx/package.nix @@ -34,10 +34,6 @@ stdenv.mkDerivation (finalAttrs: { # Uses a hacky python setup run by cmake, which is hard to get running doCheck = false; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Library for Green’s function based electronic structure theory calculations"; license = [ lib.licenses.asl20 ]; diff --git a/pkgs/by-name/mc/mctc-lib/package.nix b/pkgs/by-name/mc/mctc-lib/package.nix index abf2cd1a8509..5e677272f307 100644 --- a/pkgs/by-name/mc/mctc-lib/package.nix +++ b/pkgs/by-name/mc/mctc-lib/package.nix @@ -63,10 +63,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - postPatch = '' patchShebangs --build config/install-mod.py ''; diff --git a/pkgs/by-name/mo/mopac/package.nix b/pkgs/by-name/mo/mopac/package.nix index c5e5dacccb9b..c70b46ded59c 100644 --- a/pkgs/by-name/mo/mopac/package.nix +++ b/pkgs/by-name/mo/mopac/package.nix @@ -39,10 +39,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Semiempirical quantum chemistry"; homepage = "https://github.com/openmopac/mopac"; diff --git a/pkgs/by-name/mp/mpb/package.nix b/pkgs/by-name/mp/mpb/package.nix index eb001a94446d..f92f7bfeeadf 100644 --- a/pkgs/by-name/mp/mpb/package.nix +++ b/pkgs/by-name/mp/mpb/package.nix @@ -59,8 +59,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = "export OMP_NUM_THREADS=2"; - meta = { description = "MIT Photonic-Bands: computation of photonic band structures in periodic media"; homepage = "https://mpb.readthedocs.io/en/latest/"; diff --git a/pkgs/by-name/mu/multicharge/package.nix b/pkgs/by-name/mu/multicharge/package.nix index 677b9ec7f29e..625263e9d163 100644 --- a/pkgs/by-name/mu/multicharge/package.nix +++ b/pkgs/by-name/mu/multicharge/package.nix @@ -80,10 +80,6 @@ stdenv.mkDerivation (finalAttrs: { echo 'set(custom-lapack_FOUND TRUE)' >> config/cmake/Findcustom-lapack.cmake ''; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Electronegativity equilibration model for atomic partial charges"; mainProgram = "multicharge"; diff --git a/pkgs/by-name/nu/numsa/package.nix b/pkgs/by-name/nu/numsa/package.nix index c823b92a5036..336aef737d9f 100644 --- a/pkgs/by-name/nu/numsa/package.nix +++ b/pkgs/by-name/nu/numsa/package.nix @@ -90,10 +90,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/by-name/pi/pixman/package.nix b/pkgs/by-name/pi/pixman/package.nix index 367fa018c860..3ef554a9eb07 100644 --- a/pkgs/by-name/pi/pixman/package.nix +++ b/pkgs/by-name/pi/pixman/package.nix @@ -61,11 +61,6 @@ stdenv.mkDerivation (finalAttrs: { "-Dneon=disabled" ]; - preConfigure = '' - # https://gitlab.freedesktop.org/pixman/pixman/-/issues/62 - export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 184 ? 184 : NIX_BUILD_CORES)) - ''; - enableParallelBuilding = true; doCheck = !stdenv.hostPlatform.isDarwin; diff --git a/pkgs/by-name/wa/wannier90/package.nix b/pkgs/by-name/wa/wannier90/package.nix index 2a8996daf779..321c34e4e0e7 100644 --- a/pkgs/by-name/wa/wannier90/package.nix +++ b/pkgs/by-name/wa/wannier90/package.nix @@ -73,9 +73,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; checkInputs = [ python3 ]; checkTarget = [ "test-serial" ]; - preCheck = '' - export OMP_NUM_THREADS=4 - ''; enableParallelBuilding = true; diff --git a/pkgs/by-name/xt/xtb/package.nix b/pkgs/by-name/xt/xtb/package.nix index 47f1010308fb..278220960454 100644 --- a/pkgs/by-name/xt/xtb/package.nix +++ b/pkgs/by-name/xt/xtb/package.nix @@ -89,9 +89,6 @@ stdenv.mkDerivation (finalAttrs: { ]; doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; diff --git a/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix b/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix index 7b84749d9552..8b9b68ccec9a 100644 --- a/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix +++ b/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix @@ -64,9 +64,6 @@ stdenv.mkDerivation rec { ]; doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; meta = { description = "Reimplementation of the DFT-D3 program"; diff --git a/pkgs/development/libraries/science/chemistry/tblite/default.nix b/pkgs/development/libraries/science/chemistry/tblite/default.nix index 1c21aa56c2ec..a10cea0d64db 100644 --- a/pkgs/development/libraries/science/chemistry/tblite/default.nix +++ b/pkgs/development/libraries/science/chemistry/tblite/default.nix @@ -100,10 +100,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = buildType == "meson"; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Light-weight tight-binding framework"; mainProgram = "tblite"; From cd137f1c889116425f507d709e709dead46dbcea Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 18:16:24 +0200 Subject: [PATCH 09/10] pixman: use openmpCheckPhaseHook --- pkgs/by-name/pi/pixman/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/pi/pixman/package.nix b/pkgs/by-name/pi/pixman/package.nix index 3ef554a9eb07..23755586fe6c 100644 --- a/pkgs/by-name/pi/pixman/package.nix +++ b/pkgs/by-name/pi/pixman/package.nix @@ -6,6 +6,7 @@ ninja, pkg-config, libpng, + openmpCheckPhaseHook, glib, # just passthru # for passthru.tests @@ -46,6 +47,7 @@ stdenv.mkDerivation (finalAttrs: { meson ninja pkg-config + openmpCheckPhaseHook __flattenIncludeHackHook ]; From 576031cf3c432361b33dff42e71ce639518a9219 Mon Sep 17 00:00:00 2001 From: Grimmauld Date: Fri, 26 Jun 2026 18:16:50 +0200 Subject: [PATCH 10/10] mctc-lib: use openmpCheckPhaseHook --- pkgs/by-name/mc/mctc-lib/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/mc/mctc-lib/package.nix b/pkgs/by-name/mc/mctc-lib/package.nix index 5e677272f307..a2de791d14f0 100644 --- a/pkgs/by-name/mc/mctc-lib/package.nix +++ b/pkgs/by-name/mc/mctc-lib/package.nix @@ -10,6 +10,7 @@ pkg-config, python3, jonquil, + openmpCheckPhaseHook, }: assert ( @@ -43,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: { gfortran pkg-config python3 + openmpCheckPhaseHook ] ++ lib.optionals (buildType == "meson") [ meson