10 Commits

Author SHA1 Message Date
1d3bda33a0 Mark mcxx as broken and remove from package list
All checks were successful
CI / build:cross (pull_request) Successful in 8s
CI / build:all (pull_request) Successful in 16s
2025-12-03 10:15:17 +01:00
87bf095dae Fix moved package linuxPackages.perf is now perf 2025-12-03 10:15:17 +01:00
2264e15102 Fix replaced nixseparatedebuginfod
nixseparatedebuginfod has been replaced by nixseparatedebuginfod2
2025-12-03 10:15:17 +01:00
209f8a582e Use standard gcc for intel packages
This reverts 26f52aa27d
2025-12-03 10:15:16 +01:00
1457d85f4c Fix renamed option watchdog.runtimeTime
The option 'systemd.watchdog.runtimeTime' has been renamed to
'systemd.settings.Manager.RuntimeWatchdogSec'.
2025-12-02 17:53:14 +01:00
ad812ea32d Replace wrapGAppsHook with wrapGAppsHook3 2025-12-02 17:53:13 +01:00
5bc928c407 Fix changed cudaPackages.cuda_cudart output
See: https://github.com/NixOS/nixpkgs/pull/437723
2025-12-02 17:53:13 +01:00
eb9358abab Set pyproject=true in buildPythonApplication
The buildPythonPackage and buildPythonApplication functions now
  require an explicit format attribute. Previously the default format
  used setuptools and called setup.py from the source tree, which is
  deprecated. The modern alternative is to configure pyproject = true
  with build-system = [ setuptools ].
2025-12-02 17:53:13 +01:00
d2025d35d9 Fix renamed llvm bintools
Moved from llvmPackages_latest.tools.bintools to
llvmPackages_latest.bintools
2025-12-02 17:53:13 +01:00
6e089344da Upgrade nixpkgs to 25.11 2025-12-02 17:53:13 +01:00
44 changed files with 62 additions and 349 deletions

6
flake.lock generated
View File

@@ -2,11 +2,11 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1767634882, "lastModified": 1764522689,
"narHash": "sha256-2GffSfQxe3sedHzK+sTKlYo/NTIAGzbFCIsNMUPAAnk=", "narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3c9db02515ef1d9b6b709fc60ba9a540957f661c", "rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -57,18 +57,6 @@
}; };
}; };
services.fail2ban = {
enable = true;
maxretry = 5;
bantime-increment = {
enable = true; # Double ban time on each attack
maxtime = "7d"; # Ban up to a week
};
};
# Disable SSH login with password, allow only keypair
services.openssh.settings.PasswordAuthentication = false;
networking.firewall = { networking.firewall = {
extraCommands = '' extraCommands = ''
# Blackhole BSC vulnerability scanner (OpenVAS) as it is spamming our # Blackhole BSC vulnerability scanner (OpenVAS) as it is spamming our

View File

@@ -24,7 +24,7 @@
address = "10.0.40.40"; address = "10.0.40.40";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibs785.ipv4.addresses = [ { interfaces.ibp5s0.ipv4.addresses = [ {
address = "10.0.42.40"; address = "10.0.42.40";
prefixLength = 24; prefixLength = 24;
} ]; } ];

View File

@@ -139,7 +139,6 @@
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKGt0ESYxekBiHJQowmKpfdouw0hVm3N7tUMtAaeLejK vincent@varch" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKGt0ESYxekBiHJQowmKpfdouw0hVm3N7tUMtAaeLejK vincent@varch"
]; ];
shell = pkgs.zsh;
}; };
pmartin1 = { pmartin1 = {

View File

@@ -1,6 +1,11 @@
{ pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {
# add the perf tool
environment.systemPackages = with pkgs; [
config.boot.kernelPackages.perf
];
# allow non-root users to read tracing data from the kernel # allow non-root users to read tracing data from the kernel
boot.kernel.sysctl."kernel.perf_event_paranoid" = -2; boot.kernel.sysctl."kernel.perf_event_paranoid" = -2;
boot.kernel.sysctl."kernel.kptr_restrict" = 0; boot.kernel.sysctl."kernel.kptr_restrict" = 0;

View File

@@ -45,7 +45,7 @@
address = "10.0.40.7"; address = "10.0.40.7";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibs785.ipv4.addresses = [ { interfaces.ibp5s0.ipv4.addresses = [ {
address = "10.0.42.7"; address = "10.0.42.7";
prefixLength = 24; prefixLength = 24;
} ]; } ];

View File

@@ -46,7 +46,7 @@
address = "10.0.40.42"; address = "10.0.40.42";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibs785.ipv4.addresses = [ { interfaces.ibp5s0.ipv4.addresses = [ {
address = "10.0.42.42"; address = "10.0.42.42";
prefixLength = 24; prefixLength = 24;
} ]; } ];

View File

@@ -20,7 +20,7 @@
address = "10.0.40.1"; address = "10.0.40.1";
prefixLength = 24; prefixLength = 24;
} ]; } ];
interfaces.ibs785.ipv4.addresses = [ { interfaces.ibp5s0.ipv4.addresses = [ {
address = "10.0.42.1"; address = "10.0.42.1";
prefixLength = 24; prefixLength = 24;
} ]; } ];

View File

@@ -21,7 +21,7 @@
prefixLength = 24; prefixLength = 24;
} ]; } ];
# Watch out! The OmniPath device is not in the same place here: # Watch out! The OmniPath device is not in the same place here:
interfaces.ibs801.ipv4.addresses = [ { interfaces.ibp129s0.ipv4.addresses = [ {
address = "10.0.42.2"; address = "10.0.42.2";
prefixLength = 24; prefixLength = 24;
} ]; } ];

View File

@@ -27,7 +27,4 @@
}; };
}; };
}; };
# Allow gitea user to send mail
users.users.gitea.extraGroups = [ "mail-robot" ];
} }

View File

@@ -12,9 +12,9 @@ let
bench6 = callPackage ./pkgs/bench6/default.nix { }; bench6 = callPackage ./pkgs/bench6/default.nix { };
bigotes = callPackage ./pkgs/bigotes/default.nix { }; bigotes = callPackage ./pkgs/bigotes/default.nix { };
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { }; clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
clangOmpss2Nanos6 = callPackage ./pkgs/llvm-ompss2/default.nix { useNanos6 = true; }; clangOmpss2Nanos6 = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nanos6; };
clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { useNodes = true; useOpenmp = true; }; clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmp; };
clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { useNodes = true; useOpenmpV = true; }; clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; };
clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { }; clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { };
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { }; cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated #extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
@@ -49,17 +49,16 @@ let
osumb = callPackage ./pkgs/osu/default.nix { }; osumb = callPackage ./pkgs/osu/default.nix { };
ovni = callPackage ./pkgs/ovni/default.nix { }; ovni = callPackage ./pkgs/ovni/default.nix { };
ovniGit = final.ovni.override { useGit = true; }; ovniGit = final.ovni.override { useGit = true; };
papi = callPackage ./pkgs/papi/default.nix { papi = prev.papi; };
paraverKernel = callPackage ./pkgs/paraver/kernel.nix { }; paraverKernel = callPackage ./pkgs/paraver/kernel.nix { };
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { }; prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned #pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
#psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned #psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned
slurm = import ./pkgs/slurm/default.nix { slurm = prev.slurm; }; slurm = import ./pkgs/slurm/default.nix { slurm = prev.slurm; };
sonar = callPackage ./pkgs/sonar/default.nix { }; sonar = callPackage ./pkgs/sonar/default.nix { };
stdenvClangOmpss2 = final.stdenv.override { cc = final.buildPackages.clangOmpss2; allowedRequisites = null; }; stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; };
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.buildPackages.clangOmpss2Nanos6; allowedRequisites = null; }; stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.buildPackages.clangOmpss2Nodes; allowedRequisites = null; }; stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; };
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.buildPackages.clangOmpss2NodesOmpv; allowedRequisites = null; }; stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; };
tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
tampi = callPackage ./pkgs/tampi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { };
upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { }; upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { };

View File

@@ -47,7 +47,6 @@ in
inherit version; inherit version;
src = uprofSrc; src = uprofSrc;
dontStrip = true; dontStrip = true;
strictDeps = true;
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
nativeBuildInputs = [ autoPatchelfHook radare2 ]; nativeBuildInputs = [ autoPatchelfHook radare2 ];
buildInputs = [ buildInputs = [

View File

@@ -18,9 +18,8 @@ in stdenv.mkDerivation {
set +x set +x
''; '';
hardeningDisable = [ "pic" "format" ]; hardeningDisable = [ "pic" "format" ];
strictDeps = true;
nativeBuildInputs = kernel.moduleBuildDependencies; nativeBuildInputs = kernel.moduleBuildDependencies;
patches = [ ./makefile.patch ./hrtimer.patch ./remove-wr-rdmsrq.patch ]; patches = [ ./makefile.patch ./hrtimer.patch ];
makeFlags = [ makeFlags = [
"KERNEL_VERSION=${kernel.modDirVersion}" "KERNEL_VERSION=${kernel.modDirVersion}"
"KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"

View File

@@ -1,20 +0,0 @@
diff --git a/inc/PwrProfAsm.h b/inc/PwrProfAsm.h
index d77770a..c93a0e9 100644
--- a/inc/PwrProfAsm.h
+++ b/inc/PwrProfAsm.h
@@ -347,6 +347,7 @@
#endif
+/*
#define rdmsrq(msr,val1,val2,val3,val4) ({ \
__asm__ __volatile__( \
"rdmsr\n" \
@@ -362,6 +363,7 @@
:"c"(msr), "a"(val1), "d"(val2), "S"(val3), "D"(val4) \
); \
})
+*/
#define rdmsrpw(msr,val1,val2,val3,val4) ({ \
__asm__ __volatile__( \

View File

@@ -59,7 +59,6 @@ stdenv.mkDerivation rec {
]; ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
dontStrip = true; dontStrip = true;
strictDeps = true;
meta = { meta = {
homepage = "https://gitlab.pm.bsc.es/rarias/bench6"; homepage = "https://gitlab.pm.bsc.es/rarias/bench6";

View File

@@ -16,8 +16,6 @@ stdenv.mkDerivation {
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
strictDeps = true;
meta = { meta = {
homepage = "https://github.com/rodarima/bigotes"; homepage = "https://github.com/rodarima/bigotes";
description = "Versatile benchmark tool"; description = "Versatile benchmark tool";

View File

@@ -10,13 +10,10 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
name = "cudainfo"; name = "cudainfo";
src = ./.; src = ./.;
strictDeps = true;
nativeBuildInputs = [
cudatoolkit # Required for nvcc
autoAddDriverRunpath
];
buildInputs = [ buildInputs = [
cudatoolkit # Required for nvcc
(lib.getOutput "static" cudaPackages.cuda_cudart) # Required for -lcudart_static (lib.getOutput "static" cudaPackages.cuda_cudart) # Required for -lcudart_static
autoAddDriverRunpath
]; ];
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
@@ -26,7 +23,6 @@ stdenv.mkDerivation (finalAttrs: {
name = "cudainfo-test"; name = "cudainfo-test";
requiredSystemFeatures = [ "cuda" ]; requiredSystemFeatures = [ "cuda" ];
dontBuild = true; dontBuild = true;
strictDeps = true;
nativeCheckInputs = [ nativeCheckInputs = [
finalAttrs.finalPackage # The cudainfo package from above finalAttrs.finalPackage # The cudainfo package from above
strace # When it fails, it will show the trace strace # When it fails, it will show the trace

View File

@@ -20,7 +20,7 @@
#, python3Packages #, python3Packages
, installShellFiles , installShellFiles
, symlinkJoin , symlinkJoin
, enablePapi ? true , enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
}: }:
let let

View File

@@ -33,7 +33,6 @@ stdenv.mkDerivation rec {
}; };
enableParallelBuilding = true; enableParallelBuilding = true;
strictDeps = true;
patches = [ ./rdma-core.patch ./max-mem.patch ]; patches = [ ./rdma-core.patch ./max-mem.patch ];

View File

@@ -128,7 +128,6 @@ let
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
strictDeps = true;
installPhase = '' installPhase = ''
mkdir -p $out/{bin,etc,lib,include} mkdir -p $out/{bin,etc,lib,include}
mkdir -p $out/share/man mkdir -p $out/share/man
@@ -180,7 +179,6 @@ let
]; ];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
strictDeps = true;
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ]; autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
@@ -224,7 +222,6 @@ let
]; ];
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
strictDeps = true;
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ]; autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
@@ -292,7 +289,6 @@ let
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
strictDeps = true;
installPhase = '' installPhase = ''
mkdir -p $out/{bin,lib,include} mkdir -p $out/{bin,lib,include}
@@ -381,7 +377,6 @@ let
phases = [ "installPhase" "fixupPhase" ]; phases = [ "installPhase" "fixupPhase" ];
dontStrip = true; dontStrip = true;
strictDeps = true;
installPhase = '' installPhase = ''
mkdir -p $out/{bin,lib} mkdir -p $out/{bin,lib}

View File

@@ -1,9 +1,9 @@
{ {
stdenv llvmPackages_latest
, llvmPackages_latest
, lib , lib
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
, bash
, python3 , python3
, perl , perl
, which , which
@@ -11,6 +11,7 @@
, libffi , libffi
, zlib , zlib
, pkg-config , pkg-config
, gcc # needed to set the rpath of libstdc++ for clang-tblgen
, enableDebug ? false , enableDebug ? false
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
@@ -19,10 +20,7 @@
}: }:
let let
llvmPackages = llvmPackages_latest; stdenv = llvmPackages_latest.stdenv;
llvmStdenv = llvmPackages.stdenv;
# needed to set the rpath of libstdc++ for clang-tblgen
gcc = stdenv.cc;
release = rec { release = rec {
version = "2025.11"; version = "2025.11";
@@ -45,12 +43,11 @@ let
source = if (useGit) then git else release; source = if (useGit) then git else release;
in llvmStdenv.mkDerivation { in stdenv.mkDerivation {
pname = "clang-ompss2"; pname = "clang-ompss2";
inherit (source) src version; inherit (source) src version;
enableParallelBuilding = true; enableParallelBuilding = true;
strictDeps = true;
passthru = { passthru = {
CC = "clang"; CC = "clang";
@@ -63,12 +60,13 @@ in llvmStdenv.mkDerivation {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
bash
cmake cmake
elfutils elfutils
llvmPackages.lld llvmPackages_latest.lld
perl
pkg-config pkg-config
python3 python3
perl
which which
zlib zlib
]; ];
@@ -99,13 +97,8 @@ in llvmStdenv.mkDerivation {
cd build cd build
cmakeDir="../llvm" cmakeDir="../llvm"
cmakeFlagsArray=( cmakeFlagsArray=(
"-DLLVM_HOST_TRIPLE=${llvmStdenv.targetPlatform.config}" "-DLLVM_HOST_TRIPLE=${stdenv.targetPlatform.config}"
'' + (if "${llvmStdenv.targetPlatform.config}" == "riscv64-unknown-linux-gnu" then ''
"-DLLVM_DEFAULT_TARGET_TRIPLE=riscv64-unknown-linux-gnu"
"-DLLVM_TARGETS_TO_BUILD=RISCV"
'' else ''
"-DLLVM_TARGETS_TO_BUILD=host" "-DLLVM_TARGETS_TO_BUILD=host"
'') + ''
"-DLLVM_BUILD_LLVM_DYLIB=ON" "-DLLVM_BUILD_LLVM_DYLIB=ON"
"-DLLVM_LINK_LLVM_DYLIB=ON" "-DLLVM_LINK_LLVM_DYLIB=ON"
# Required to run clang-ast-dump and clang-tblgen during build # Required to run clang-ast-dump and clang-tblgen during build
@@ -114,8 +107,7 @@ in llvmStdenv.mkDerivation {
"-DCMAKE_CXX_FLAGS_DEBUG=-g -ggnu-pubnames" "-DCMAKE_CXX_FLAGS_DEBUG=-g -ggnu-pubnames"
"-DCMAKE_EXE_LINKER_FLAGS_DEBUG=-Wl,--gdb-index" "-DCMAKE_EXE_LINKER_FLAGS_DEBUG=-Wl,--gdb-index"
"-DLLVM_LIT_ARGS=-sv --xunit-xml-output=xunit.xml" "-DLLVM_LIT_ARGS=-sv --xunit-xml-output=xunit.xml"
"-DLLVM_ENABLE_PROJECTS=clang;lld" "-DLLVM_ENABLE_PROJECTS=clang;compiler-rt;lld"
"-DLLVM_ENABLE_RUNTIMES=compiler-rt"
"-DLLVM_ENABLE_ASSERTIONS=ON" "-DLLVM_ENABLE_ASSERTIONS=ON"
"-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON" "-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON"
"-DCMAKE_INSTALL_BINDIR=bin" "-DCMAKE_INSTALL_BINDIR=bin"

View File

@@ -3,42 +3,25 @@
, lib , lib
, gcc , gcc
, clangOmpss2Unwrapped , clangOmpss2Unwrapped
, openmp ? null
, openmp
, useOpenmp ? false
, openmpv
, useOpenmpV ? false
, nanos6
, useNanos6 ? false
, nodes
, useNodes ? false
, wrapCCWith , wrapCCWith
, llvmPackages_latest , llvmPackages_latest
, ompss2rt ? null
}: }:
with lib; with lib;
let let
getSplice = target: pkg: if pkg ? "__spliced" && pkg.__spliced ? target then pkg.__spliced."${target}" else pkg; usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
getSpliceTargetTarget = getSplice "targetTarget"; sameNosv = openmp.nosv == ompss2rt.nosv;
omp = if useOpenmp then openmp else if useOpenmpV then openmpv else null;
ompss2rtUnspliced = if useNanos6 then nanos6 else if useNodes then nodes else null;
ompss2rt = getSpliceTargetTarget ompss2rtUnspliced;
usingNodesAndOmpv = omp != null && ompss2rt != null && (omp.pname == "openmp-v" && ompss2rt.pname == "nodes");
sameNosvUnspliced = omp != null && ompss2rtUnspliced != null && omp.nosv == ompss2rtUnspliced.nosv;
sameNosvSpliced = (getSpliceTargetTarget omp.nosv) == ompss2rt.nosv;
in in
assert assertMsg (usingNodesAndOmpv -> sameNosvUnspliced) "OpenMP-V and NODES must share the same nOS-V before splice"; assert assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V";
assert assertMsg (usingNodesAndOmpv -> sameNosvSpliced) "OpenMP-V and NODES must share the same nOS-V after splice";
assert assertMsg (useOpenmp -> !useOpenmpV) "Either OpenMP or OpenMP-V may be enabled, but not both";
assert assertMsg (useNanos6 -> !useNodes) "Either Nanos6 or NODES may be enabled, but not both";
let let
homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME"; homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME";
rtname = if ompss2rt.pname == "nanos6" then "libnanos6" else "libnodes"; rtname = if ompss2rt.pname == "nanos6" then "libnanos6" else "libnodes";
ompname = if omp.pname == "openmp-v" then "libompv" else "libomp"; ompname = if openmp.pname == "openmp-v" then "libompv" else "libomp";
# We need to replace the lld linker from bintools with our linker just built, # We need to replace the lld linker from bintools with our linker just built,
@@ -54,10 +37,10 @@ let
inherit gcc; inherit gcc;
cc = clangOmpss2Unwrapped; cc = clangOmpss2Unwrapped;
gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)]; gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)];
in (wrapCCWith { in wrapCCWith {
inherit cc bintools; inherit cc bintools;
# extraPackages adds packages to depsTargetTargetPropagated # extraPackages adds packages to depsTargetTargetPropagated
extraPackages = optional (omp != null) omp; extraPackages = optional (openmp != null) openmp;
extraBuildCommands = '' extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-cflags echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-cflags
@@ -73,15 +56,15 @@ in (wrapCCWith {
echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags
wrap ${targetConfig}clang++ $wrapper $ccPath/clang++ wrap clang++ $wrapper $ccPath/clang++
wrap ${targetConfig}clang $wrapper $ccPath/clang
'' + optionalString (omp != null) '' '' + optionalString (openmp != null) ''
echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook
'' + optionalString (ompss2rt != null) '' '' + optionalString (ompss2rt != null) ''
echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook
echo "export ${homevar}=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook echo "export ${homevar}=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook
'' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") '' '' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") ''
echo "export NOSV_HOME=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook echo "export NOSV_HOME=${ompss2rt.nosv}" >> $out/nix-support/cc-wrapper-hook
''; '';
}).overrideAttrs (prev: { passthru = (prev.passthru or {}) // { inherit ompss2rt; }; }) }

View File

@@ -39,9 +39,7 @@ stdenv.mkDerivation rec {
perl perl
pkg-config pkg-config
python3 python3
]; ] ++ lib.optionals enableNosv [
buildInputs = lib.optionals enableNosv [
nosv nosv
] ++ lib.optionals enableOvni [ ] ++ lib.optionals enableOvni [
ovni ovni
@@ -56,7 +54,6 @@ stdenv.mkDerivation rec {
dontStrip = enableDebug; dontStrip = enableDebug;
separateDebugInfo = true; separateDebugInfo = true;
strictDeps = true;
cmakeFlags = [ cmakeFlags = [
"-DLIBOMP_OMPD_SUPPORT=OFF" "-DLIBOMP_OMPD_SUPPORT=OFF"
@@ -74,28 +71,6 @@ stdenv.mkDerivation rec {
rm -f $out/libllvmrt/libomp.* rm -f $out/libllvmrt/libomp.*
''; '';
doInstallCheck = true;
# There are not cmake flags to force nOS-V, it enables it when found through
# pkg-config. If enableNosv is set, but we fail to find it at build time,
# the build will succeed but won't use nOS-V (libompv won't be created).
# This is a sanity check to ensure that after install we have the proper
# files.
installCheckPhase =
if enableNosv then
''
test -f $out/lib/libompv.so
test -f $out/libllvmrt/libompv.so
test ! -f $out/lib/libomp.so
test ! -f $out/libllvmrt/libomp.so
''
else
''
test -f $out/lib/libomp.so
test -f $out/libllvmrt/libomp.so
test ! -f $out/lib/libompv.so
test ! -f $out/libllvmrt/libompv.so
'';
passthru = { passthru = {
inherit nosv; inherit nosv;
}; };

View File

@@ -27,7 +27,6 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
enableParallelBuilding = false; enableParallelBuilding = false;
strictDeps = true;
preBuild = '' preBuild = ''
makeFlagsArray+=( makeFlagsArray+=(

View File

@@ -9,7 +9,6 @@ python3Packages.buildPythonApplication {
src = ./.; src = ./.;
doCheck = false; doCheck = false;
strictDeps = true;
build-system = with python3Packages; [ build-system = with python3Packages; [
setuptools setuptools

View File

@@ -53,7 +53,6 @@ in mpich.overrideAttrs (old: {
''; '';
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
strictDeps = true;
meta = old.meta // { meta = old.meta // {
maintainers = old.meta.maintainers ++ (with lib.maintainers.bsc; [ rarias ]); maintainers = old.meta.maintainers ++ (with lib.maintainers.bsc; [ rarias ]);

View File

@@ -16,7 +16,7 @@
, jemallocNanos6 ? null , jemallocNanos6 ? null
, cachelineBytes ? 64 , cachelineBytes ? 64
, enableGlibcxxDebug ? false , enableGlibcxxDebug ? false
, enablePapi ? true , enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6" , gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
, gitBranch ? "master" , gitBranch ? "master"
@@ -80,8 +80,7 @@ in
(optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG") ++ (optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG") ++
# Most nanos6 api symbols are resolved at runtime, so prefer # Most nanos6 api symbols are resolved at runtime, so prefer
# ifunc by default # ifunc by default
(optional isCross "--with-symbol-resolution=ifunc") ++ (optional isCross "--with-symbol-resolution=ifunc");
(optional enablePapi "--with-papi=${papi}");
postConfigure = lib.optionalString (!enableDebug) '' postConfigure = lib.optionalString (!enableDebug) ''
# Disable debug # Disable debug
@@ -96,14 +95,16 @@ in
dontStrip = enableDebug; dontStrip = enableDebug;
separateDebugInfo = true; separateDebugInfo = true;
strictDeps = true;
nativeBuildInputs = [ nativeBuildInputs = [
autoconf autoconf
automake automake
libtool libtool
pkg-config pkg-config
];
# TODO: papi_version is needed for configure:
# ./configure: line 27378: papi_version: command not found
# This probably breaks cross-compilation
] ++ lib.optionals enablePapi [ papi ];
buildInputs = [ buildInputs = [
boost boost

View File

@@ -8,7 +8,6 @@ stdenv.mkDerivation {
version = "0.0.1"; version = "0.0.1";
src = ./nixgen; src = ./nixgen;
dontUnpack = true; dontUnpack = true;
strictDeps = true;
phases = [ "installPhase" ]; phases = [ "installPhase" ];
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin

View File

@@ -16,7 +16,6 @@ stdenv.mkDerivation rec {
makeFlags = [ "DESTDIR=$(out)" ]; makeFlags = [ "DESTDIR=$(out)" ];
preBuild = "env"; preBuild = "env";
dontPatchShebangs = true; dontPatchShebangs = true;
strictDeps = true;
meta = { meta = {
homepage = "https://gitlab.pm.bsc.es/rarias/nixtools"; homepage = "https://gitlab.pm.bsc.es/rarias/nixtools";

View File

@@ -48,7 +48,6 @@ in
enableParallelBuilding = true; enableParallelBuilding = true;
dontStrip = true; dontStrip = true;
separateDebugInfo = true; separateDebugInfo = true;
strictDeps = true;
configureFlags = [ configureFlags = [
"--with-nosv=${nosv}" "--with-nosv=${nosv}"

View File

@@ -7,7 +7,7 @@
, numactl , numactl
, hwloc , hwloc
, papi , papi
, enablePapi ? true , enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
, cacheline ? 64 # bits , cacheline ? 64 # bits
, ovni ? null , ovni ? null
, useGit ? false , useGit ? false
@@ -40,17 +40,16 @@ let
source = if (useGit) then git else release; source = if (useGit) then git else release;
in in
stdenv.mkDerivation { stdenv.mkDerivation rec {
pname = "nosv"; pname = "nosv";
inherit (source) src version; inherit (source) src version;
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
dontStrip = true; dontStrip = true;
separateDebugInfo = true; separateDebugInfo = true;
strictDeps = true;
configureFlags = [ configureFlags = [
"--with-ovni=${ovni}" "--with-ovni=${ovni}"
"CACHELINE_WIDTH=${toString cacheline}" "CACHELINE_WIDTH=${toString cacheline}"
] ++ lib.optionals enablePapi [ "--with-papi=${papi}" ]; ];
nativeBuildInputs = [ nativeBuildInputs = [
autoreconfHook autoreconfHook
pkg-config pkg-config
@@ -60,7 +59,6 @@ in
hwloc hwloc
ovni ovni
] ++ lib.optionals enablePapi [ papi ]; ] ++ lib.optionals enablePapi [ papi ];
patches = [ ./fix-papi.patch ];
meta = { meta = {
homepage = "https://gitlab.bsc.es/nos-v/nos-v"; homepage = "https://gitlab.bsc.es/nos-v/nos-v";

View File

@@ -1,136 +0,0 @@
Commit ID: c09633f172ce4075e0a05a33f6dcbe8e03e1202a
Change ID: onmwypnnrysktutwsvotqovzponvwrxs
Bookmarks: fix/papi fix/papi@git fix/papi@origin
Author : Aleix Boné <aleix.boneribo@bsc.es> (2025-12-10 11:14:14)
Committer: Aleix Boné <aleix.boneribo@bsc.es> (2025-12-12 12:56:48)
Improve PAPI m4 module for cross compilation
diff --git a/m4/papi.m4 b/m4/papi.m4
index de90584870..8398f856f5 100644
--- a/m4/papi.m4
+++ b/m4/papi.m4
@@ -1,6 +1,6 @@
# This file is part of Nanos6 and is licensed under the terms contained in the COPYING file.
#
-# Copyright (C) 2021-2022 Barcelona Supercomputing Center (BSC)
+# Copyright (C) 2021-2025 Barcelona Supercomputing Center (BSC)
AC_DEFUN([AC_CHECK_PAPI],
[
@@ -8,34 +8,38 @@
[papi],
[AS_HELP_STRING([--with-papi=prefix], [specify the installation prefix of PAPI])],
[ ac_cv_use_papi_prefix=$withval ],
- [ ac_cv_use_papi_prefix="" ]
+ [ ac_cv_use_papi_prefix="check" ]
)
if test x"${ac_cv_use_papi_prefix}" = x"no"; then
AC_MSG_CHECKING([the PAPI installation prefix])
AC_MSG_RESULT([${ac_cv_use_papi_prefix}])
ac_use_papi=no
- elif test x"${ac_cv_use_papi_prefix}" != x"" ; then
- AC_MSG_CHECKING([the PAPI installation prefix])
- AC_MSG_RESULT([${ac_cv_use_papi_prefix}])
- papi_LIBS="-L${ac_cv_use_papi_prefix}/lib -lpapi -Wl,-rpath,${ac_cv_use_papi_prefix}/lib"
- papi_CFLAGS="-I$ac_cv_use_papi_prefix/include"
- ac_use_papi=yes
- else
+ elif test x"${ac_cv_use_papi_prefix}" = x""; then
+ AC_MSG_RESULT([invalid prefix])
+ AC_MSG_ERROR([papi prefix specified but empty])
+ elif test x"${ac_cv_use_papi_prefix}" = x"yes" -o x"${ac_cv_use_papi_prefix}" = x"check"; then
PKG_CHECK_MODULES(
[papi],
- [papi],
+ [papi >= 5.6.0],
[
AC_MSG_CHECKING([the PAPI installation prefix])
AC_MSG_RESULT([retrieved from pkg-config])
papi_CFLAGS="${papi_CFLAGS}"
ac_use_papi=yes
+ ac_papi_version_correct=yes
], [
AC_MSG_CHECKING([the PAPI installation prefix])
AC_MSG_RESULT([not available])
ac_use_papi=no
]
)
+ else
+ AC_MSG_CHECKING([the PAPI installation prefix])
+ AC_MSG_RESULT([${ac_cv_use_papi_prefix}])
+ papi_LIBS="-L${ac_cv_use_papi_prefix}/lib -lpapi -Wl,-rpath,${ac_cv_use_papi_prefix}/lib"
+ papi_CFLAGS="-I$ac_cv_use_papi_prefix/include"
+ ac_use_papi=yes
fi
if test x"${ac_use_papi}" = x"yes" ; then
@@ -53,10 +57,10 @@
ac_use_papi=yes
],
[
- if test x"${ac_cv_use_papi_prefix}" != x"" ; then
- AC_MSG_ERROR([PAPI cannot be found.])
+ if test x"${ac_cv_use_papi_prefix}" = x"yes" ; then
+ AC_MSG_ERROR([PAPI >= 5.6.0 cannot be found.])
else
- AC_MSG_WARN([PAPI cannot be found.])
+ AC_MSG_WARN([PAPI >= 5.6.0 not available.])
fi
ac_use_papi=no
]
@@ -64,30 +68,38 @@
CFLAGS="${ac_save_CFLAGS}"
LIBS="${ac_save_LIBS}"
+ elif test x"${ac_cv_use_papi_prefix}" = x"yes" ; then
+ AC_MSG_ERROR([PAPI >= 5.6.0 cannot be found.])
fi
- if test x"${ac_use_papi}" = x"yes" ; then
- if test x"${ac_cv_use_papi_prefix}" != x"" ; then
+ if test x"${ac_use_papi}" = x"yes" -a x"${ac_papi_version_correct}" != x"yes" ; then
+ if test x"${ac_cv_use_papi_prefix}" != x"yes" -a x"${ac_cv_use_papi_prefix}" != x"check" ; then
papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
else
papiBinary=papi_version
fi
- papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
- AX_COMPARE_VERSION(
- [[${papiVersion}]],
- [[ge]],
- [[5.6.0]],
- [[ac_papi_version_correct=yes]],
- [[ac_papi_version_correct=no]]
- )
- if test x"${ac_papi_version_correct}" != x"yes" ; then
- AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
- ac_use_papi=no
+ if test x"$cross_compiling" = x"yes" ; then
+ AC_MSG_WARN([Cross-compiling detected, skipping PAPI version check])
else
- AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
- AC_MSG_RESULT([${ac_papi_version_correct}])
+ papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
+
+ AX_COMPARE_VERSION(
+ [[${papiVersion}]],
+ [[ge]],
+ [[5.6.0]],
+ [[ac_papi_version_correct=yes]],
+ [[ac_papi_version_correct=no]]
+ )
+
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
+ AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
+ ac_use_papi=no
+ else
+ AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
+ AC_MSG_RESULT([${ac_papi_version_correct}])
+ fi
fi
fi

View File

@@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
enableParallelBuilding = true; enableParallelBuilding = true;
strictDeps = true;
nativeBuildInputs = [ mpiAll ]; nativeBuildInputs = [ mpiAll ];
buildInputs = [ mpiAll ]; buildInputs = [ mpiAll ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];

View File

@@ -40,7 +40,6 @@ in
inherit (source) src version; inherit (source) src version;
dontStrip = true; dontStrip = true;
separateDebugInfo = true; separateDebugInfo = true;
strictDeps = true;
postPatch = '' postPatch = ''
patchShebangs --build test/ patchShebangs --build test/
''; '';

View File

@@ -1,22 +0,0 @@
{
stdenv,
papi,
}:
if stdenv.hostPlatform == stdenv.buildPlatform then
papi
else
papi.overrideAttrs (old: {
configureFlags = (old.configureFlags or [ ]) ++ [
"--enable-perf_event_uncore=no"
"--with-sysdetect=no"
"--with-ffsll"
"--with-tls=__thread"
"--with-virtualtimer=clock_thread_cputime_id"
"--with-walltimer=clock_realtime"
"--with-perf-events"
"--with-CPU=${stdenv.hostPlatform.uname.processor}"
"--with-arch=${stdenv.hostPlatform.uname.processor}"
];
patches = (old.patches or [ ]) ++ [ ./fix-ar-cross.patch ];
})

View File

@@ -1,19 +0,0 @@
diff --git a/sde_lib/Makefile b/sde_lib/Makefile
index 8518f92..90a9953 100644
--- a/sde_lib/Makefile
+++ b/sde_lib/Makefile
@@ -1,4 +1,5 @@
CC ?= gcc
+AR ?= ar
SDE_INC = -I. -I..
SDE_LD = -ldl -pthread
CFLAGS += -Wextra -Wall -O2
@@ -18,7 +19,7 @@ dynamic: $(DOBJS)
rm -f *_d.o
static: $(SOBJS)
- ar rs libsde.a $(SOBJS)
+ $(AR) rs libsde.a $(SOBJS)
rm -f *_s.o
clean:

View File

@@ -47,7 +47,6 @@ stdenv.mkDerivation rec {
dontStrip = true; dontStrip = true;
enableParallelBuilding = true; enableParallelBuilding = true;
strictDeps = true;
preConfigure = '' preConfigure = ''
export CFLAGS="-O3" export CFLAGS="-O3"

View File

@@ -34,7 +34,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
dontStrip = true; dontStrip = true;
strictDeps = true;
preConfigure = '' preConfigure = ''
export CFLAGS="-O3 -DPARALLEL_ENABLED" export CFLAGS="-O3 -DPARALLEL_ENABLED"

View File

@@ -13,7 +13,6 @@ buildGoModule rec {
vendorHash = "sha256-A1dd9T9SIEHDCiVT2UwV6T02BSLh9ej6LC/2l54hgwI="; vendorHash = "sha256-A1dd9T9SIEHDCiVT2UwV6T02BSLh9ej6LC/2l54hgwI=";
doCheck = false; doCheck = false;
strictDeps = true;
meta = with lib; { meta = with lib; {
description = "Prometheus SLURM Exporter"; description = "Prometheus SLURM Exporter";

View File

@@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
}; };
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
dontStrip = true; dontStrip = true;
strictDeps = true;
configureFlags = [ "--with-ovni=${ovni}" ]; configureFlags = [ "--with-ovni=${ovni}" ];
nativeBuildInputs = [ nativeBuildInputs = [

View File

@@ -17,7 +17,6 @@ stdenv.mkDerivation rec {
pname = "tagaspi"; pname = "tagaspi";
enableParallelBuilding = true; enableParallelBuilding = true;
separateDebugInfo = true; separateDebugInfo = true;
strictDeps = true;
version = "2.0"; version = "2.0";
src = fetchFromGitHub { src = fetchFromGitHub {

View File

@@ -45,7 +45,6 @@ in stdenv.mkDerivation {
inherit (source) src version; inherit (source) src version;
enableParallelBuilding = true; enableParallelBuilding = true;
separateDebugInfo = true; separateDebugInfo = true;
strictDeps = true;
nativeBuildInputs = [ nativeBuildInputs = [
autoconf autoconf

View File

@@ -9,7 +9,6 @@ python3Packages.buildPythonApplication {
src = ./.; src = ./.;
doCheck = false; doCheck = false;
strictDeps = true;
build-system = with python3Packages; [ build-system = with python3Packages; [
setuptools setuptools

View File

@@ -23,6 +23,9 @@ in stdenv.mkDerivation {
dontUnpack = true; dontUnpack = true;
dontConfigure = true; dontConfigure = true;
# nOS-V requires access to /sys/devices to request NUMA information
requiredSystemFeatures = [ "sys-devices" ];
buildInputs = [ openmp ]; buildInputs = [ openmp ];
buildPhase = '' buildPhase = ''