Compare commits
3 Commits
enableStri
...
pkgs/tacud
| Author | SHA1 | Date | |
|---|---|---|---|
|
02c3e504fc
|
|||
|
2b8c924a8d
|
|||
|
0c851cf35d
|
22
overlay.nix
22
overlay.nix
@@ -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,21 +49,27 @@ 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 { };
|
||||||
|
taopencl = callPackage ./pkgs/taopencl/default.nix { };
|
||||||
wxparaver = callPackage ./pkgs/paraver/default.nix { };
|
wxparaver = callPackage ./pkgs/paraver/default.nix { };
|
||||||
|
|
||||||
|
_cuda = prev._cuda.extend (_: _prev: final.lib.recursiveUpdate _prev {
|
||||||
|
extensions = _prev.extensions ++ [(finalAttrs: _: {
|
||||||
|
tacuda = finalAttrs.callPackage ./pkgs/tacuda/default.nix { };
|
||||||
|
})];
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
tests = rec {
|
tests = rec {
|
||||||
|
|||||||
@@ -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 = [
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ 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 ./remove-wr-rdmsrq.patch ];
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
#, python3Packages
|
#, python3Packages
|
||||||
, installShellFiles
|
, installShellFiles
|
||||||
, symlinkJoin
|
, symlinkJoin
|
||||||
, enablePapi ? true
|
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -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 ];
|
||||||
|
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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; }; })
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ stdenv.mkDerivation rec {
|
|||||||
hardeningDisable = [ "all" ];
|
hardeningDisable = [ "all" ];
|
||||||
|
|
||||||
enableParallelBuilding = false;
|
enableParallelBuilding = false;
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
makeFlagsArray+=(
|
makeFlagsArray+=(
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ python3Packages.buildPythonApplication {
|
|||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
build-system = with python3Packages; [
|
build-system = with python3Packages; [
|
||||||
setuptools
|
setuptools
|
||||||
|
|||||||
@@ -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 ]);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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}"
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|
||||||
@@ -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" ];
|
||||||
|
|||||||
@@ -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/
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -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 ];
|
|
||||||
})
|
|
||||||
@@ -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:
|
|
||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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 = [
|
||||||
|
|||||||
72
pkgs/tacuda/default.nix
Normal file
72
pkgs/tacuda/default.nix
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
backendStdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
automake,
|
||||||
|
autoconf,
|
||||||
|
libtool,
|
||||||
|
gnumake,
|
||||||
|
autoreconfHook,
|
||||||
|
boost,
|
||||||
|
cudatoolkit,
|
||||||
|
libcublas,
|
||||||
|
cuda_cudart,
|
||||||
|
|
||||||
|
useGit ? false,
|
||||||
|
gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tacuda/tacuda.git",
|
||||||
|
gitBranch ? "main",
|
||||||
|
gitCommit ? "35234f9445e6149a2bd38d119841e2485d6ee05e",
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
release_ver = "2.1.0";
|
||||||
|
release = {
|
||||||
|
version = release_ver;
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "bsc-pm";
|
||||||
|
repo = "tacuda";
|
||||||
|
rev = release_ver;
|
||||||
|
hash = "sha256-Cj3EiLVJSLvRv0ydeg7Vp4SpkniEqHkcWF+YOJQ8EcM=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
git = rec {
|
||||||
|
version = src.shortRev;
|
||||||
|
src = builtins.fetchGit {
|
||||||
|
url = gitUrl;
|
||||||
|
ref = gitBranch;
|
||||||
|
rev = gitCommit;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
source = if (useGit) then git else release;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
backendStdenv.mkDerivation {
|
||||||
|
pname = "tacuda";
|
||||||
|
inherit (source) src version;
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
separateDebugInfo = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoreconfHook
|
||||||
|
automake
|
||||||
|
autoconf
|
||||||
|
libtool
|
||||||
|
gnumake
|
||||||
|
];
|
||||||
|
|
||||||
|
patches = [ ./fix_config.patch ];
|
||||||
|
|
||||||
|
configureFlags = [ "--with-cuda-include=${cudatoolkit}/include" ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
boost
|
||||||
|
libcublas
|
||||||
|
cuda_cudart
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
13
pkgs/tacuda/fix_config.patch
Normal file
13
pkgs/tacuda/fix_config.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/m4/cuda.m4 b/m4/cuda.m4
|
||||||
|
index 23f5c94..8f9b534 100644
|
||||||
|
--- a/m4/cuda.m4
|
||||||
|
+++ b/m4/cuda.m4
|
||||||
|
@@ -40,7 +40,7 @@ search_libs="cuda cublas cudart"
|
||||||
|
required_libs=""
|
||||||
|
|
||||||
|
m4_foreach([function],
|
||||||
|
- [cuInit,
|
||||||
|
+ [
|
||||||
|
cublasSgemm,
|
||||||
|
cudaStreamCreate,
|
||||||
|
cudaLaunchKernel,
|
||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
48
pkgs/taopencl/default.nix
Normal file
48
pkgs/taopencl/default.nix
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
automake,
|
||||||
|
autoconf,
|
||||||
|
libtool,
|
||||||
|
gnumake,
|
||||||
|
boost,
|
||||||
|
mpi,
|
||||||
|
autoreconfHook,
|
||||||
|
ocl-icd,
|
||||||
|
opencl-headers,
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "taopencl";
|
||||||
|
version = finalAttrs.src.shortRev;
|
||||||
|
|
||||||
|
src = builtins.fetchGit {
|
||||||
|
url = "git@gitlab-internal.bsc.es:task-awareness/taopencl/taopencl.git";
|
||||||
|
ref = "master";
|
||||||
|
rev = "c3b7b32ae8fa4af7ceff598532a881f8f1490aaf";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
separateDebugInfo = true;
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--with-opencl-lib=${ocl-icd}/lib"
|
||||||
|
"--with-opencl-include=${opencl-headers}/include"
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoreconfHook
|
||||||
|
automake
|
||||||
|
autoconf
|
||||||
|
libtool
|
||||||
|
gnumake
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
boost
|
||||||
|
mpi
|
||||||
|
];
|
||||||
|
|
||||||
|
dontDisableStatic = true;
|
||||||
|
hardeningDisable = [ "all" ];
|
||||||
|
})
|
||||||
@@ -9,7 +9,6 @@ python3Packages.buildPythonApplication {
|
|||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
build-system = with python3Packages; [
|
build-system = with python3Packages; [
|
||||||
setuptools
|
setuptools
|
||||||
|
|||||||
@@ -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 = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user