Compare commits
31 Commits
robust-fet
...
enableStri
| Author | SHA1 | Date | |
|---|---|---|---|
| 9c6f2e0097 | |||
| 61ed93c951 | |||
| 7d02658e44 | |||
| 06aa1fc5d4 | |||
|
1178574891
|
|||
|
5a4e9ae48a
|
|||
|
15ebb94645
|
|||
|
ada96f349c
|
|||
|
1427e357f5
|
|||
|
435699357d
|
|||
|
a238824ff1
|
|||
|
de6124f8ca
|
|||
| dda6a66782 | |||
| 22420e6ac8 | |||
| a71cd78b4c | |||
| e84a2cadbb | |||
| d3e43eb651 | |||
| a491546ffb | |||
| 933c78a80b | |||
| 150969be9b | |||
| 9097729759 | |||
| 779449f1db | |||
| 6cbe33bd80 | |||
| 3f1f5ae8f2 | |||
| fe8586e780 | |||
| 8677adba27 | |||
| f614149edf | |||
| 859eebda98 | |||
| c2a201b085 | |||
| f921f0a4bd | |||
| aa16bfc0bc |
8
flake.lock
generated
8
flake.lock
generated
@@ -2,16 +2,16 @@
|
|||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752436162,
|
"lastModified": 1767634882,
|
||||||
"narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=",
|
"narHash": "sha256-2GffSfQxe3sedHzK+sTKlYo/NTIAGzbFCIsNMUPAAnk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8",
|
"rev": "3c9db02515ef1d9b6b709fc60ba9a540957f661c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... }:
|
outputs = { self, nixpkgs, ... }:
|
||||||
|
|||||||
@@ -57,6 +57,18 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
address = "10.0.40.40";
|
address = "10.0.40.40";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
interfaces.ibp5s0.ipv4.addresses = [ {
|
interfaces.ibs785.ipv4.addresses = [ {
|
||||||
address = "10.0.42.40";
|
address = "10.0.42.40";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
{ pkgs, config, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim wget git htop tmux pciutils tcpdump ripgrep nix-index nixos-option
|
vim wget git htop tmux pciutils tcpdump ripgrep nix-index nixos-option
|
||||||
nix-diff ipmitool freeipmi ethtool lm_sensors cmake gnumake file tree
|
nix-diff ipmitool freeipmi ethtool lm_sensors cmake gnumake file tree
|
||||||
ncdu config.boot.kernelPackages.perf ldns pv
|
ncdu perf ldns pv
|
||||||
# From jungle overlay
|
# From jungle overlay
|
||||||
osumb nixgen
|
osumb nixgen
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -139,6 +139,7 @@
|
|||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKGt0ESYxekBiHJQowmKpfdouw0hVm3N7tUMtAaeLejK vincent@varch"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKGt0ESYxekBiHJQowmKpfdouw0hVm3N7tUMtAaeLejK vincent@varch"
|
||||||
];
|
];
|
||||||
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|
||||||
pmartin1 = {
|
pmartin1 = {
|
||||||
|
|||||||
@@ -5,5 +5,5 @@
|
|||||||
boot.kernelModules = [ "ipmi_watchdog" ];
|
boot.kernelModules = [ "ipmi_watchdog" ];
|
||||||
|
|
||||||
# Enable systemd watchdog with 30 s interval
|
# Enable systemd watchdog with 30 s interval
|
||||||
systemd.watchdog.runtimeTime = "30s";
|
systemd.settings.Manager.RuntimeWatchdogSec = 30;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ 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;
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
address = "10.0.40.7";
|
address = "10.0.40.7";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
interfaces.ibp5s0.ipv4.addresses = [ {
|
interfaces.ibs785.ipv4.addresses = [ {
|
||||||
address = "10.0.42.7";
|
address = "10.0.42.7";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
address = "10.0.40.42";
|
address = "10.0.40.42";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
interfaces.ibp5s0.ipv4.addresses = [ {
|
interfaces.ibs785.ipv4.addresses = [ {
|
||||||
address = "10.0.42.42";
|
address = "10.0.42.42";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
{
|
{
|
||||||
services.nixseparatedebuginfod.enable = true;
|
services.nixseparatedebuginfod2 = {
|
||||||
|
enable = true;
|
||||||
|
substituters = [
|
||||||
|
"local:"
|
||||||
|
"https://cache.nixos.org"
|
||||||
|
"http://hut/cache"
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
address = "10.0.40.1";
|
address = "10.0.40.1";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
interfaces.ibp5s0.ipv4.addresses = [ {
|
interfaces.ibs785.ipv4.addresses = [ {
|
||||||
address = "10.0.42.1";
|
address = "10.0.42.1";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
|
|||||||
@@ -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.ibp129s0.ipv4.addresses = [ {
|
interfaces.ibs801.ipv4.addresses = [ {
|
||||||
address = "10.0.42.2";
|
address = "10.0.42.2";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
} ];
|
||||||
|
|||||||
@@ -27,4 +27,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Allow gitea user to send mail
|
||||||
|
users.users.gitea.extraGroups = [ "mail-robot" ];
|
||||||
}
|
}
|
||||||
|
|||||||
45
overlay.nix
45
overlay.nix
@@ -1,8 +1,9 @@
|
|||||||
final: /* Future last stage */
|
final: /* Future last stage */
|
||||||
prev: /* Previous stage */
|
prev: /* Previous stage */
|
||||||
|
|
||||||
|
with final.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
lib = prev.lib;
|
|
||||||
callPackage = final.callPackage;
|
callPackage = final.callPackage;
|
||||||
|
|
||||||
bscPkgs = {
|
bscPkgs = {
|
||||||
@@ -11,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 { ompss2rt = final.nanos6; };
|
clangOmpss2Nanos6 = callPackage ./pkgs/llvm-ompss2/default.nix { useNanos6 = true; };
|
||||||
clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmp; };
|
clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { useNodes = true; useOpenmp = true; };
|
||||||
clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; };
|
clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { useNodes = true; useOpenmpV = true; };
|
||||||
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
|
||||||
@@ -29,13 +30,13 @@ let
|
|||||||
amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { };
|
amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { };
|
||||||
});
|
});
|
||||||
lmbench = callPackage ./pkgs/lmbench/default.nix { };
|
lmbench = callPackage ./pkgs/lmbench/default.nix { };
|
||||||
mcxx = callPackage ./pkgs/mcxx/default.nix { };
|
# Broken and unmantained
|
||||||
|
# mcxx = callPackage ./pkgs/mcxx/default.nix { };
|
||||||
meteocat-exporter = prev.callPackage ./pkgs/meteocat-exporter/default.nix { };
|
meteocat-exporter = prev.callPackage ./pkgs/meteocat-exporter/default.nix { };
|
||||||
mpi = final.mpich; # Set MPICH as default
|
mpi = final.mpich; # Set MPICH as default
|
||||||
mpich = callPackage ./pkgs/mpich/default.nix { mpich = prev.mpich; };
|
mpich = callPackage ./pkgs/mpich/default.nix { mpich = prev.mpich; };
|
||||||
nanos6 = callPackage ./pkgs/nanos6/default.nix { };
|
nanos6 = callPackage ./pkgs/nanos6/default.nix { };
|
||||||
nanos6Debug = final.nanos6.override { enableDebug = true; };
|
nanos6Debug = final.nanos6.override { enableDebug = true; };
|
||||||
nix = callPackage ./pkgs/nix/default.nix { nix = prev.nix; };
|
|
||||||
nixtools = callPackage ./pkgs/nixtools/default.nix { };
|
nixtools = callPackage ./pkgs/nixtools/default.nix { };
|
||||||
nixgen = callPackage ./pkgs/nixgen/default.nix { };
|
nixgen = callPackage ./pkgs/nixgen/default.nix { };
|
||||||
# Broken because of pkgsStatic.libcap
|
# Broken because of pkgsStatic.libcap
|
||||||
@@ -48,16 +49,17 @@ 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.clangOmpss2; allowedRequisites = null; };
|
stdenvClangOmpss2 = final.stdenv.override { cc = final.buildPackages.clangOmpss2; allowedRequisites = null; };
|
||||||
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
|
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.buildPackages.clangOmpss2Nanos6; allowedRequisites = null; };
|
||||||
stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; };
|
stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.buildPackages.clangOmpss2Nodes; allowedRequisites = null; };
|
||||||
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; };
|
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.buildPackages.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 { };
|
||||||
@@ -97,22 +99,19 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Load our custom lib functions with import, callPackage fails.
|
|
||||||
lib' = import ./pkgs/lib.nix { lib = prev.lib; };
|
|
||||||
|
|
||||||
# For now, only build toplevel packages in CI/Hydra
|
# For now, only build toplevel packages in CI/Hydra
|
||||||
pkgsTopLevel = lib.filterAttrs (_: lib.isDerivation) bscPkgs;
|
pkgsTopLevel = filterAttrs (_: isDerivation) bscPkgs;
|
||||||
|
|
||||||
# Native build in that platform doesn't imply cross build works
|
# Native build in that platform doesn't imply cross build works
|
||||||
canCrossCompile = platform: default: pkg:
|
canCrossCompile = platform: default: pkg:
|
||||||
(lib.isDerivation pkg) &&
|
(isDerivation pkg) &&
|
||||||
# If meta.cross is undefined, use default
|
# If meta.cross is undefined, use default
|
||||||
(pkg.meta.cross or default) &&
|
(pkg.meta.cross or default) &&
|
||||||
(lib.meta.availableOn final.pkgsCross.${platform}.stdenv.hostPlatform pkg);
|
(meta.availableOn final.pkgsCross.${platform}.stdenv.hostPlatform pkg);
|
||||||
|
|
||||||
# For now only RISC-V
|
# For now only RISC-V
|
||||||
crossSet = lib.genAttrs [ "riscv64" ] (platform:
|
crossSet = genAttrs [ "riscv64" ] (platform:
|
||||||
lib.filterAttrs (_: canCrossCompile platform true)
|
filterAttrs (_: canCrossCompile platform true)
|
||||||
final.pkgsCross.${platform}.bsc.pkgsTopLevel);
|
final.pkgsCross.${platform}.bsc.pkgsTopLevel);
|
||||||
|
|
||||||
buildList = name: paths:
|
buildList = name: paths:
|
||||||
@@ -128,17 +127,21 @@ let
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
pkgsList = buildList "ci-pkgs" (builtins.attrValues pkgsTopLevel);
|
pkgsList = buildList "ci-pkgs" (builtins.attrValues pkgsTopLevel);
|
||||||
testsList = buildList "ci-tests" (lib.collect lib.isDerivation tests);
|
testsList = buildList "ci-tests" (collect isDerivation tests);
|
||||||
allList = buildList' "ci-all" [ pkgsList testsList ];
|
allList = buildList' "ci-all" [ pkgsList testsList ];
|
||||||
# For now only RISC-V
|
# For now only RISC-V
|
||||||
crossList = buildList "ci-cross"
|
crossList = buildList "ci-cross"
|
||||||
(lib.filter
|
(filter
|
||||||
(canCrossCompile "riscv64" false) # opt-in (pkgs with: meta.cross = true)
|
(canCrossCompile "riscv64" false) # opt-in (pkgs with: meta.cross = true)
|
||||||
(builtins.attrValues crossSet.riscv64));
|
(builtins.attrValues crossSet.riscv64));
|
||||||
|
|
||||||
in bscPkgs // {
|
in bscPkgs // {
|
||||||
|
|
||||||
lib = lib';
|
lib = prev.lib // {
|
||||||
|
maintainers = prev.lib.maintainers // {
|
||||||
|
bsc = import ./pkgs/maintainers.nix;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Prevent accidental usage of bsc-ci attribute
|
# Prevent accidental usage of bsc-ci attribute
|
||||||
bsc-ci = throw "the bsc-ci attribute is deprecated, use bsc.ci";
|
bsc-ci = throw "the bsc-ci attribute is deprecated, use bsc.ci";
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ 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 = [
|
||||||
|
|||||||
@@ -18,8 +18,9 @@ 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 ];
|
patches = [ ./makefile.patch ./hrtimer.patch ./remove-wr-rdmsrq.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"
|
||||||
|
|||||||
20
pkgs/amd-uprof/remove-wr-rdmsrq.patch
Normal file
20
pkgs/amd-uprof/remove-wr-rdmsrq.patch
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
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__( \
|
||||||
@@ -14,19 +14,16 @@
|
|||||||
, openblas
|
, openblas
|
||||||
, ovni
|
, ovni
|
||||||
, gitBranch ? "master"
|
, gitBranch ? "master"
|
||||||
|
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
|
||||||
, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4"
|
, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4"
|
||||||
, gitUrls ? [
|
|
||||||
"ssh://git@bscpm04.bsc.es/rarias/bench6.git"
|
|
||||||
"https://github.com/rodarima/bench6.git"
|
|
||||||
]
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bench6";
|
pname = "bench6";
|
||||||
version = "${src.shortRev}";
|
version = "${src.shortRev}";
|
||||||
|
|
||||||
src = lib.fetchGitMirror {
|
src = builtins.fetchGit {
|
||||||
urls = gitUrls;
|
url = gitURL;
|
||||||
ref = gitBranch;
|
ref = gitBranch;
|
||||||
rev = gitCommit;
|
rev = gitCommit;
|
||||||
};
|
};
|
||||||
@@ -62,6 +59,7 @@ 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";
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ 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";
|
||||||
|
|||||||
@@ -10,11 +10,14 @@
|
|||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
name = "cudainfo";
|
name = "cudainfo";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
buildInputs = [
|
strictDeps = true;
|
||||||
|
nativeBuildInputs = [
|
||||||
cudatoolkit # Required for nvcc
|
cudatoolkit # Required for nvcc
|
||||||
cudaPackages.cuda_cudart.static # Required for -lcudart_static
|
|
||||||
autoAddDriverRunpath
|
autoAddDriverRunpath
|
||||||
];
|
];
|
||||||
|
buildInputs = [
|
||||||
|
(lib.getOutput "static" cudaPackages.cuda_cudart) # Required for -lcudart_static
|
||||||
|
];
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp -a cudainfo $out/bin
|
cp -a cudainfo $out/bin
|
||||||
@@ -23,6 +26,7 @@ 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
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
#, python3Packages
|
#, python3Packages
|
||||||
, installShellFiles
|
, installShellFiles
|
||||||
, symlinkJoin
|
, symlinkJoin
|
||||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
, enablePapi ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
patches = [ ./rdma-core.patch ./max-mem.patch ];
|
patches = [ ./rdma-core.patch ./max-mem.patch ];
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
, zlib
|
, zlib
|
||||||
, autoPatchelfHook
|
, autoPatchelfHook
|
||||||
, libfabric
|
, libfabric
|
||||||
, gcc13
|
, gcc
|
||||||
, wrapCCWith
|
, wrapCCWith
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -33,8 +33,6 @@ let
|
|||||||
maintainers = with lib.maintainers.bsc; [ abonerib ];
|
maintainers = with lib.maintainers.bsc; [ abonerib ];
|
||||||
};
|
};
|
||||||
|
|
||||||
gcc = gcc13;
|
|
||||||
|
|
||||||
v = {
|
v = {
|
||||||
hpckit = "2023.1.0";
|
hpckit = "2023.1.0";
|
||||||
compiler = "2023.1.0";
|
compiler = "2023.1.0";
|
||||||
@@ -130,6 +128,7 @@ 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
|
||||||
@@ -181,6 +180,7 @@ let
|
|||||||
];
|
];
|
||||||
phases = [ "installPhase" "fixupPhase" ];
|
phases = [ "installPhase" "fixupPhase" ];
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
|
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
|
||||||
|
|
||||||
@@ -224,6 +224,7 @@ let
|
|||||||
];
|
];
|
||||||
phases = [ "installPhase" "fixupPhase" ];
|
phases = [ "installPhase" "fixupPhase" ];
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
|
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
|
||||||
|
|
||||||
@@ -291,6 +292,7 @@ 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}
|
||||||
@@ -379,6 +381,7 @@ 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}
|
||||||
|
|||||||
30
pkgs/lib.nix
30
pkgs/lib.nix
@@ -1,30 +0,0 @@
|
|||||||
{ lib }:
|
|
||||||
|
|
||||||
let
|
|
||||||
# If not supported, fall back to tryEval, which will fail in the first case.
|
|
||||||
safeCatchAll = if (builtins ? catchAll)
|
|
||||||
then builtins.catchAll
|
|
||||||
else e: (builtins.tryEval e) // { msg = ""; };
|
|
||||||
in lib.extend (_: lib: {
|
|
||||||
# Same as fetchGit but accepts a list of mirror urls
|
|
||||||
fetchGitMirror = { urls, ... } @ args:
|
|
||||||
let
|
|
||||||
cleanArgs = lib.removeAttrs args [ "urls" ];
|
|
||||||
fetchUrl = url: builtins.fetchGit (cleanArgs // { inherit url; });
|
|
||||||
safeFetch = url: safeCatchAll (fetchUrl url);
|
|
||||||
complain = url:
|
|
||||||
let
|
|
||||||
r = safeFetch url;
|
|
||||||
in
|
|
||||||
if (r.success) then r
|
|
||||||
else lib.warn "cannot fetch ${url}, trying next
|
|
||||||
mirror:${builtins.replaceStrings ["\n" ] ["\n> "] ("\n"+r.msg)}" r;
|
|
||||||
fetchList = lib.map (url: complain url) urls;
|
|
||||||
bad = throw "cannot fetch from any mirror";
|
|
||||||
good = lib.findFirst (e: e.success) bad fetchList;
|
|
||||||
in good.value;
|
|
||||||
|
|
||||||
maintainers = lib.maintainers // {
|
|
||||||
bsc = import ./maintainers.nix;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
llvmPackages_latest
|
stdenv
|
||||||
|
, llvmPackages_latest
|
||||||
, lib
|
, lib
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, cmake
|
, cmake
|
||||||
, bash
|
|
||||||
, python3
|
, python3
|
||||||
, perl
|
, perl
|
||||||
, which
|
, which
|
||||||
@@ -11,7 +11,6 @@
|
|||||||
, 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"
|
||||||
@@ -20,7 +19,10 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
stdenv = llvmPackages_latest.stdenv;
|
llvmPackages = llvmPackages_latest;
|
||||||
|
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";
|
||||||
@@ -43,11 +45,12 @@ let
|
|||||||
|
|
||||||
source = if (useGit) then git else release;
|
source = if (useGit) then git else release;
|
||||||
|
|
||||||
in stdenv.mkDerivation {
|
in llvmStdenv.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";
|
||||||
@@ -60,13 +63,12 @@ in stdenv.mkDerivation {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
bash
|
|
||||||
cmake
|
cmake
|
||||||
elfutils
|
elfutils
|
||||||
llvmPackages_latest.lld
|
llvmPackages.lld
|
||||||
|
perl
|
||||||
pkg-config
|
pkg-config
|
||||||
python3
|
python3
|
||||||
perl
|
|
||||||
which
|
which
|
||||||
zlib
|
zlib
|
||||||
];
|
];
|
||||||
@@ -97,8 +99,13 @@ in stdenv.mkDerivation {
|
|||||||
cd build
|
cd build
|
||||||
cmakeDir="../llvm"
|
cmakeDir="../llvm"
|
||||||
cmakeFlagsArray=(
|
cmakeFlagsArray=(
|
||||||
"-DLLVM_HOST_TRIPLE=${stdenv.targetPlatform.config}"
|
"-DLLVM_HOST_TRIPLE=${llvmStdenv.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
|
||||||
@@ -107,7 +114,8 @@ in stdenv.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;compiler-rt;lld"
|
"-DLLVM_ENABLE_PROJECTS=clang;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"
|
||||||
|
|||||||
@@ -3,44 +3,61 @@
|
|||||||
, 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
|
||||||
usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
|
getSplice = target: pkg: if pkg ? "__spliced" && pkg.__spliced ? target then pkg.__spliced."${target}" else pkg;
|
||||||
sameNosv = openmp.nosv == ompss2rt.nosv;
|
getSpliceTargetTarget = getSplice "targetTarget";
|
||||||
|
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 -> sameNosv) "OpenMP-V and NODES must share the same nOS-V";
|
assert assertMsg (usingNodesAndOmpv -> sameNosvUnspliced) "OpenMP-V and NODES must share the same nOS-V before splice";
|
||||||
|
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 openmp.pname == "openmp-v" then "libompv" else "libomp";
|
ompname = if omp.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,
|
||||||
# otherwise we run into incompatibility issues when mixing compiler and linker
|
# otherwise we run into incompatibility issues when mixing compiler and linker
|
||||||
# versions.
|
# versions.
|
||||||
bintools-unwrapped = llvmPackages_latest.tools.bintools-unwrapped.override {
|
bintools-unwrapped = llvmPackages_latest.bintools-unwrapped.override {
|
||||||
lld = clangOmpss2Unwrapped;
|
lld = clangOmpss2Unwrapped;
|
||||||
};
|
};
|
||||||
bintools = llvmPackages_latest.tools.bintools.override {
|
bintools = llvmPackages_latest.bintools.override {
|
||||||
bintools = bintools-unwrapped;
|
bintools = bintools-unwrapped;
|
||||||
};
|
};
|
||||||
targetConfig = stdenv.targetPlatform.config;
|
targetConfig = stdenv.targetPlatform.config;
|
||||||
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 (openmp != null) openmp;
|
extraPackages = optional (omp != null) omp;
|
||||||
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
|
||||||
@@ -56,15 +73,15 @@ in wrapCCWith {
|
|||||||
|
|
||||||
echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags
|
echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags
|
||||||
|
|
||||||
wrap clang++ $wrapper $ccPath/clang++
|
wrap ${targetConfig}clang++ $wrapper $ccPath/clang++
|
||||||
|
wrap ${targetConfig}clang $wrapper $ccPath/clang
|
||||||
|
|
||||||
'' + optionalString (openmp != null) ''
|
'' + optionalString (omp != 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.nosv}" >> $out/nix-support/cc-wrapper-hook
|
echo "export NOSV_HOME=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook
|
||||||
'';
|
'';
|
||||||
}
|
}).overrideAttrs (prev: { passthru = (prev.passthru or {}) // { inherit ompss2rt; }; })
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,9 @@ 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
|
||||||
@@ -54,6 +56,7 @@ stdenv.mkDerivation rec {
|
|||||||
dontStrip = enableDebug;
|
dontStrip = enableDebug;
|
||||||
|
|
||||||
separateDebugInfo = true;
|
separateDebugInfo = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DLIBOMP_OMPD_SUPPORT=OFF"
|
"-DLIBOMP_OMPD_SUPPORT=OFF"
|
||||||
@@ -71,6 +74,28 @@ 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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
|
|||||||
hardeningDisable = [ "all" ];
|
hardeningDisable = [ "all" ];
|
||||||
|
|
||||||
enableParallelBuilding = false;
|
enableParallelBuilding = false;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
makeFlagsArray+=(
|
makeFlagsArray+=(
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
broken = true;
|
||||||
homepage = "https://github.com/bsc-pm/mcxx";
|
homepage = "https://github.com/bsc-pm/mcxx";
|
||||||
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
|
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
|
||||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
{ python3Packages, lib }:
|
{ python3Packages, lib }:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication {
|
||||||
pname = "meteocat-exporter";
|
pname = "meteocat-exporter";
|
||||||
version = "1.0";
|
version = "1.0";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
build-system = with python3Packages; [
|
build-system = with python3Packages; [
|
||||||
setuptools
|
setuptools
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ 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 ]);
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
, jemallocNanos6 ? null
|
, jemallocNanos6 ? null
|
||||||
, cachelineBytes ? 64
|
, cachelineBytes ? 64
|
||||||
, enableGlibcxxDebug ? false
|
, enableGlibcxxDebug ? false
|
||||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
, enablePapi ? true
|
||||||
, 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,7 +80,8 @@ 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
|
||||||
@@ -95,16 +96,14 @@ 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
|
||||||
|
|||||||
@@ -1,64 +0,0 @@
|
|||||||
From 3aa73c21e3afc91522a6121b0d591af6925b4ba6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Rodrigo Arias Mallo <rodarima@gmail.com>
|
|
||||||
Date: Mon, 13 Oct 2025 16:05:30 +0200
|
|
||||||
Subject: [PATCH] Add builtins.catchAll to catch all types of errors
|
|
||||||
|
|
||||||
Allows fetching multiple Git repositories with builtin.fetchGit and
|
|
||||||
catching any errors thrown by the builtin, in opposition to the builtin
|
|
||||||
tryEval.
|
|
||||||
---
|
|
||||||
src/libexpr/primops.cc | 38 ++++++++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 38 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
|
|
||||||
index 36a67a39d..3b26f9f43 100644
|
|
||||||
--- a/src/libexpr/primops.cc
|
|
||||||
+++ b/src/libexpr/primops.cc
|
|
||||||
@@ -849,6 +849,44 @@ static RegisterPrimOp primop_tryEval({
|
|
||||||
.fun = prim_tryEval,
|
|
||||||
});
|
|
||||||
|
|
||||||
+/* Like tryEval but catch all errors. Success => {success=true; value=something;},
|
|
||||||
+ * else => {success=false; value=false;} */
|
|
||||||
+static void prim_catchAll(EvalState & state, const PosIdx pos, Value * * args, Value & v)
|
|
||||||
+{
|
|
||||||
+ auto attrs = state.buildBindings(3);
|
|
||||||
+ try {
|
|
||||||
+ state.forceValue(*args[0], pos);
|
|
||||||
+ attrs.insert(state.sValue, args[0]);
|
|
||||||
+ attrs.alloc("success").mkBool(true);
|
|
||||||
+ attrs.alloc("msg").mkNull();
|
|
||||||
+ } catch (Error & e) {
|
|
||||||
+ attrs.alloc(state.sValue).mkBool(false);
|
|
||||||
+ attrs.alloc("success").mkBool(false);
|
|
||||||
+ attrs.alloc("msg").mkString(e.msg());
|
|
||||||
+ }
|
|
||||||
+ v.mkAttrs(attrs);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static RegisterPrimOp primop_catchAll({
|
|
||||||
+ .name = "__catchAll",
|
|
||||||
+ .args = {"e"},
|
|
||||||
+ .doc = R"(
|
|
||||||
+ Try to shallowly evaluate *e*. Return a set containing the
|
|
||||||
+ attributes `success` (`true` if *e* evaluated successfully,
|
|
||||||
+ `false` if an error was thrown) and `value`, equalling *e* if
|
|
||||||
+ successful and `false` otherwise. In contrast with `tryEval`,
|
|
||||||
+ `catchAll` will prevent all errors from being thrown, including
|
|
||||||
+ for those created by `abort` and type errors generated by
|
|
||||||
+ builtins. Also note that this doesn't evaluate *e* deeply, so
|
|
||||||
+ `let e = { x = throw ""; }; in (builtins.catchAll e).success`
|
|
||||||
+ will be `true`. Using `builtins.deepSeq` one can get the expected
|
|
||||||
+ result: `let e = { x = throw ""; }; in
|
|
||||||
+ (builtins.catchAll (builtins.deepSeq e e)).success` will be
|
|
||||||
+ `false`.
|
|
||||||
+ )",
|
|
||||||
+ .fun = prim_catchAll,
|
|
||||||
+});
|
|
||||||
+
|
|
||||||
/* Return an environment variable. Use with care. */
|
|
||||||
static void prim_getEnv(EvalState & state, const PosIdx pos, Value * * args, Value & v)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.51.0
|
|
||||||
|
|
||||||
@@ -1,7 +1,219 @@
|
|||||||
{ nix }:
|
{ lib, fetchurl, fetchFromGitHub, callPackage
|
||||||
|
, storeDir ? "/nix/store"
|
||||||
|
, stateDir ? "/nix/var"
|
||||||
|
, confDir ? "/etc"
|
||||||
|
, boehmgc
|
||||||
|
, stdenv, llvmPackages_6
|
||||||
|
}:
|
||||||
|
|
||||||
nix.overrideAttrs (old: {
|
let
|
||||||
patches = (old.patches or []) ++ [
|
|
||||||
./add-catchAll.patch
|
common =
|
||||||
|
{ lib, stdenv, fetchpatch, perl, curl, bzip2, sqlite, openssl ? null, xz
|
||||||
|
, bash, coreutils, gzip, gnutar
|
||||||
|
, pkg-config, boehmgc, perlPackages, libsodium, brotli, boost, editline, nlohmann_json
|
||||||
|
, autoreconfHook, autoconf-archive, bison, flex, libxml2, libxslt, docbook5, docbook_xsl_ns
|
||||||
|
, jq, libarchive, rustc, cargo
|
||||||
|
# Used by tests
|
||||||
|
, gmock
|
||||||
|
, busybox-sandbox-shell
|
||||||
|
, storeDir
|
||||||
|
, stateDir
|
||||||
|
, confDir
|
||||||
|
, withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp
|
||||||
|
, withAWS ? stdenv.isLinux || stdenv.isDarwin, aws-sdk-cpp
|
||||||
|
|
||||||
|
, name, suffix ? "", src, crates ? null
|
||||||
|
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
sh = busybox-sandbox-shell;
|
||||||
|
nix = stdenv.mkDerivation rec {
|
||||||
|
inherit name src;
|
||||||
|
version = lib.getVersion name;
|
||||||
|
|
||||||
|
is24 = lib.versionAtLeast version "2.4pre";
|
||||||
|
isExactly23 = lib.versionAtLeast version "2.3" && lib.versionOlder version "2.4";
|
||||||
|
|
||||||
|
VERSION_SUFFIX = suffix;
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" "man" "doc" ];
|
||||||
|
|
||||||
|
nativeBuildInputs =
|
||||||
|
[ pkg-config ]
|
||||||
|
++ lib.optionals is24 [ autoreconfHook autoconf-archive bison flex libxml2 libxslt
|
||||||
|
docbook5 docbook_xsl_ns jq gmock ];
|
||||||
|
|
||||||
|
buildInputs =
|
||||||
|
[ curl openssl sqlite xz bzip2 nlohmann_json
|
||||||
|
brotli boost editline
|
||||||
|
]
|
||||||
|
++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
|
||||||
|
++ lib.optionals is24 [ libarchive rustc cargo ]
|
||||||
|
++ lib.optional withLibseccomp libseccomp
|
||||||
|
++ lib.optional withAWS
|
||||||
|
((aws-sdk-cpp.override {
|
||||||
|
apis = ["s3" "transfer"];
|
||||||
|
customMemoryManagement = false;
|
||||||
|
}).overrideDerivation (args: {
|
||||||
|
patches = args.patches or [] ++ [(fetchpatch {
|
||||||
|
url = "https://github.com/edolstra/aws-sdk-cpp/commit/7d58e303159b2fb343af9a1ec4512238efa147c7.patch";
|
||||||
|
sha256 = "103phn6kyvs1yc7fibyin3lgxz699qakhw671kl207484im55id1";
|
||||||
|
})];
|
||||||
|
}));
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ boehmgc ];
|
||||||
|
|
||||||
|
# Seems to be required when using std::atomic with 64-bit types
|
||||||
|
NIX_LDFLAGS = lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux" || stdenv.hostPlatform.system == "armv6l-linux") "-latomic";
|
||||||
|
|
||||||
|
preConfigure =
|
||||||
|
# Copy libboost_context so we don't get all of Boost in our closure.
|
||||||
|
# https://github.com/NixOS/nixpkgs/issues/45462
|
||||||
|
''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
cp -pd ${boost}/lib/{libboost_context*,libboost_thread*,libboost_system*} $out/lib
|
||||||
|
rm -f $out/lib/*.a
|
||||||
|
${lib.optionalString stdenv.isLinux ''
|
||||||
|
chmod u+w $out/lib/*.so.*
|
||||||
|
patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.*
|
||||||
|
''}
|
||||||
|
'' +
|
||||||
|
# Unpack the Rust crates.
|
||||||
|
lib.optionalString is24 ''
|
||||||
|
tar xvf ${crates} -C nix-rust/
|
||||||
|
mv nix-rust/nix-vendored-crates* nix-rust/vendor
|
||||||
|
'' +
|
||||||
|
# For Nix-2.3, patch around an issue where the Nix configure step pulls in the
|
||||||
|
# build system's bash and other utilities when cross-compiling
|
||||||
|
lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform && isExactly23) ''
|
||||||
|
mkdir tmp/
|
||||||
|
substitute corepkgs/config.nix.in tmp/config.nix.in \
|
||||||
|
--subst-var-by bash ${bash}/bin/bash \
|
||||||
|
--subst-var-by coreutils ${coreutils}/bin \
|
||||||
|
--subst-var-by bzip2 ${bzip2}/bin/bzip2 \
|
||||||
|
--subst-var-by gzip ${gzip}/bin/gzip \
|
||||||
|
--subst-var-by xz ${xz}/bin/xz \
|
||||||
|
--subst-var-by tar ${gnutar}/bin/tar \
|
||||||
|
--subst-var-by tr ${coreutils}/bin/tr
|
||||||
|
mv tmp/config.nix.in corepkgs/config.nix.in
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags =
|
||||||
|
[ "--with-store-dir=${storeDir}"
|
||||||
|
"--localstatedir=${stateDir}"
|
||||||
|
"--sysconfdir=${confDir}"
|
||||||
|
"--disable-init-state"
|
||||||
|
"--enable-gc"
|
||||||
|
]
|
||||||
|
++ lib.optionals stdenv.isLinux [
|
||||||
|
"--with-sandbox-shell=${sh}/bin/busybox"
|
||||||
|
]
|
||||||
|
++ lib.optional (
|
||||||
|
stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform ? nix && stdenv.hostPlatform.nix ? system
|
||||||
|
) ''--with-system=${stdenv.hostPlatform.nix.system}''
|
||||||
|
# RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50
|
||||||
|
++ lib.optional (!withLibseccomp) "--disable-seccomp-sandboxing";
|
||||||
|
|
||||||
|
makeFlags = [ "profiledir=$(out)/etc/profile.d" ];
|
||||||
|
|
||||||
|
installFlags = [ "sysconfdir=$(out)/etc" ];
|
||||||
|
|
||||||
|
doInstallCheck = false;
|
||||||
|
|
||||||
|
# socket path becomes too long otherwise
|
||||||
|
#preInstallCheck = lib.optional stdenv.isDarwin ''
|
||||||
|
# export TMPDIR=$NIX_BUILD_TOP
|
||||||
|
#'';
|
||||||
|
|
||||||
|
separateDebugInfo = stdenv.isLinux;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Powerful package manager that makes package management reliable and reproducible";
|
||||||
|
longDescription = ''
|
||||||
|
Nix is a powerful package manager for Linux and other Unix systems that
|
||||||
|
makes package management reliable and reproducible. It provides atomic
|
||||||
|
upgrades and rollbacks, side-by-side installation of multiple versions of
|
||||||
|
a package, multi-user package management and easy setup of build
|
||||||
|
environments.
|
||||||
|
'';
|
||||||
|
homepage = "https://nixos.org/";
|
||||||
|
license = lib.licenses.lgpl2Plus;
|
||||||
|
maintainers = [ lib.maintainers.eelco ];
|
||||||
|
platforms = lib.platforms.unix;
|
||||||
|
outputsToInstall = [ "out" "man" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
perl-bindings = stdenv.mkDerivation {
|
||||||
|
pname = "nix-perl";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
inherit src;
|
||||||
|
|
||||||
|
postUnpack = "sourceRoot=$sourceRoot/perl";
|
||||||
|
|
||||||
|
# This is not cross-compile safe, don't have time to fix right now
|
||||||
|
# but noting for future travellers.
|
||||||
|
nativeBuildInputs =
|
||||||
|
[ perl pkg-config curl nix libsodium boost autoreconfHook autoconf-archive ];
|
||||||
|
|
||||||
|
configureFlags =
|
||||||
|
[ "--with-dbi=${perlPackages.DBI}/${perl.libPrefix}"
|
||||||
|
"--with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix}"
|
||||||
];
|
];
|
||||||
})
|
|
||||||
|
preConfigure = "export NIX_STATE_DIR=$TMPDIR";
|
||||||
|
|
||||||
|
preBuild = "unset NIX_INDENT_MAKE";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in nix;
|
||||||
|
|
||||||
|
in rec {
|
||||||
|
|
||||||
|
nix = nixUnstable;
|
||||||
|
|
||||||
|
nixUnstable = lib.lowPrio (callPackage common rec {
|
||||||
|
name = "nix-2.4${suffix}";
|
||||||
|
suffix = "pre7534_b92f58f6";
|
||||||
|
|
||||||
|
#src = /home/Computational/rarias/nix/nix-rodarima;
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "rodarima";
|
||||||
|
repo = "nix";
|
||||||
|
rev = "3a642187c33ed46d952d3a50a83b2576b704fab7";
|
||||||
|
sha256 = "0s8is2czpkcj1x1kcjqgbnsbbl03w3fwjjiclsd44zh1ij3wb90s";
|
||||||
|
};
|
||||||
|
|
||||||
|
crates = fetchurl {
|
||||||
|
url = "https://hydra.nixos.org/build/118797694/download/1/nix-vendored-crates-2.4pre7534_b92f58f6.tar.xz";
|
||||||
|
sha256 = "a4c2612bbd81732bbb899bc0c230e07b16f6b6150ffbb19c4907dedbbc2bf9fc";
|
||||||
|
};
|
||||||
|
|
||||||
|
inherit storeDir stateDir confDir boehmgc;
|
||||||
|
});
|
||||||
|
|
||||||
|
nixFlakes = lib.lowPrio (callPackage common rec {
|
||||||
|
name = "nix-2.4${suffix}";
|
||||||
|
suffix = "pre20200521_00b562c";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "NixOS";
|
||||||
|
repo = "nix";
|
||||||
|
rev = "00b562c87ec4c3bbe514f5dc1f4d1c41f66f66bf";
|
||||||
|
sha256 = "0s8is2czpkcj1x1kcjqgbnsbbl03w3fwjjiclsd44zh1ij3wb90s";
|
||||||
|
};
|
||||||
|
|
||||||
|
crates = fetchurl {
|
||||||
|
url = "https://hydra.nixos.org/build/118093786/download/1/nix-vendored-crates-2.4pre20200501_941f952.tar.xz";
|
||||||
|
sha256 = "060f4n5srdbb8vsj0m14aqch7im79a4h5g3nrs41p1xc602vhcdl";
|
||||||
|
};
|
||||||
|
|
||||||
|
inherit storeDir stateDir confDir boehmgc;
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ 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
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ 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";
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ in
|
|||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
separateDebugInfo = true;
|
separateDebugInfo = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--with-nosv=${nosv}"
|
"--with-nosv=${nosv}"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
, numactl
|
, numactl
|
||||||
, hwloc
|
, hwloc
|
||||||
, papi
|
, papi
|
||||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
, enablePapi ? true
|
||||||
, cacheline ? 64 # bits
|
, cacheline ? 64 # bits
|
||||||
, ovni ? null
|
, ovni ? null
|
||||||
, useGit ? false
|
, useGit ? false
|
||||||
@@ -40,16 +40,17 @@ let
|
|||||||
|
|
||||||
source = if (useGit) then git else release;
|
source = if (useGit) then git else release;
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation {
|
||||||
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
|
||||||
@@ -59,6 +60,7 @@ 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";
|
||||||
|
|||||||
136
pkgs/nosv/fix-papi.patch
Normal file
136
pkgs/nosv/fix-papi.patch
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
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
|
||||||
|
|
||||||
@@ -24,6 +24,7 @@ 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" ];
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ 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/
|
||||||
'';
|
'';
|
||||||
|
|||||||
22
pkgs/papi/default.nix
Normal file
22
pkgs/papi/default.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
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 ];
|
||||||
|
})
|
||||||
19
pkgs/papi/fix-ar-cross.patch
Normal file
19
pkgs/papi/fix-ar-cross.patch
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
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:
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
, paraverKernel
|
, paraverKernel
|
||||||
, openssl
|
, openssl
|
||||||
, glibcLocales
|
, glibcLocales
|
||||||
, wrapGAppsHook
|
, wrapGAppsHook3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
export CFLAGS="-O3"
|
export CFLAGS="-O3"
|
||||||
@@ -64,7 +65,7 @@ stdenv.mkDerivation rec {
|
|||||||
autoconf
|
autoconf
|
||||||
automake
|
automake
|
||||||
autoreconfHook
|
autoreconfHook
|
||||||
wrapGAppsHook
|
wrapGAppsHook3
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ 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"
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ 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";
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
hardeningDisable = [ "all" ];
|
hardeningDisable = [ "all" ];
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
strictDeps = true;
|
||||||
configureFlags = [ "--with-ovni=${ovni}" ];
|
configureFlags = [ "--with-ovni=${ovni}" ];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ 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 {
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ 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
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
{ python3Packages, lib }:
|
{ python3Packages, lib }:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication {
|
||||||
pname = "upc-qaire-exporter";
|
pname = "upc-qaire-exporter";
|
||||||
version = "1.0";
|
version = "1.0";
|
||||||
|
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
build-system = with python3Packages; [
|
build-system = with python3Packages; [
|
||||||
setuptools
|
setuptools
|
||||||
|
|||||||
@@ -23,9 +23,6 @@ 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 = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user