2 Commits

Author SHA1 Message Date
93d9c770e8 Fix C runtime objects path
Some gcc versions append an extension to the patch version number, but
this exetension is not part of the installation path. This patch removes
the extension to the patch version.
2025-05-26 10:29:16 +02:00
e84e961b9f openmpv: Remove dangling symlink 2025-05-26 10:28:30 +02:00
22 changed files with 117 additions and 422 deletions

View File

@@ -1,19 +1,11 @@
let let
bscOverlay = import ./overlay.nix; bscOverlay = import ./overlay.nix;
# read flake.lock and determine revision from there # Pin the nixpkgs
lock = builtins.fromJSON (builtins.readFile ./flake.lock); nixpkgsPath = import ./nixpkgs.nix;
inherit (lock.nodes.nixpkgs.locked) rev narHash;
fetchedNixpkgs = builtins.fetchTarball { pkgs = import nixpkgsPath {
url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz"; overlays = [ bscOverlay ];
sha256 = narHash;
}; };
in
{ overlays ? [ ] in pkgs
, nixpkgs ? fetchedNixpkgs
, ...
}@attrs:
import nixpkgs (
(builtins.removeAttrs attrs [ "overlays" "nixpkgs" ]) //
{ overlays = [ bscOverlay ] ++ overlays; }
)

8
flake.lock generated
View File

@@ -2,10 +2,10 @@
"nodes": { "nodes": {
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1752436162, "lastModified": 1736867362,
"narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=", "narHash": "sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8=",
"path": "/nix/store/zk8v61cpk1wprp9ld5ayc1g5fq4pdkwv-source", "path": "/nix/store/2csx2kkb2hxyxhhmg2xs9jfyypikwwk6-source",
"rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8", "rev": "9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc",
"type": "path" "type": "path"
}, },
"original": { "original": {

9
nixpkgs.nix Normal file
View File

@@ -0,0 +1,9 @@
let
commit = "e4ad989506ec7d71f7302cc3067abd82730a4beb";
in builtins.fetchTarball {
# Descriptive name to make the store path easier to identify
name = "nixpkgs-${commit}";
url = "https://github.com/nixos/nixpkgs/archive/${commit}.tar.gz";
# Hash obtained using `nix-prefetch-url --unpack <url>`
sha256 = "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0=";
}

View File

@@ -13,16 +13,15 @@ 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 { };
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated #extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
#gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; # Broken: https://jungle.bsc.es/git/rarias/bscpkgs/issues/7 gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
lmbench = callPackage ./pkgs/lmbench/default.nix { }; #lmbench = callPackage ./pkgs/lmbench/default.nix { }; # Broken
mcxx = callPackage ./pkgs/mcxx/default.nix { }; mcxx = callPackage ./pkgs/mcxx/default.nix { };
nanos6 = callPackage ./pkgs/nanos6/default.nix { }; nanos6 = callPackage ./pkgs/nanos6/default.nix { };
nanos6Debug = final.nanos6.override { enableDebug = true; }; nanos6Debug = final.nanos6.override { enableDebug = true; };
@@ -41,11 +40,11 @@ let
#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
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 { }; # Broken due gpi-2 tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
tampi = callPackage ./pkgs/tampi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { };
wxparaver = callPackage ./pkgs/paraver/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { };
}; };

View File

@@ -1,20 +1,14 @@
{ {
stdenv stdenv
, bigotes
, cmake , cmake
, clangOmpss2 , clangOmpss2
, openmp
, openmpv
, nanos6 , nanos6
, nodes , nodes
, nosv
, mpi , mpi
, tampi , tampi
, openblas
, ovni
, gitBranch ? "master" , gitBranch ? "master"
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git" , gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4" , gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d"
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@@ -27,28 +21,9 @@ stdenv.mkDerivation rec {
rev = gitCommit; rev = gitCommit;
}; };
buildInputs = [ buildInputs = [ cmake clangOmpss2 nanos6 nodes mpi tampi ];
bigotes
cmake
clangOmpss2
openmp
openmpv
nanos6
nodes
nosv
mpi
tampi
openblas
openblas.dev
ovni
];
env = {
NANOS6_HOME = nanos6;
NODES_HOME = nodes;
NOSV_HOME = nosv;
};
enableParallelBuilding = false;
cmakeFlags = [ cmakeFlags = [
"-DCMAKE_C_COMPILER=clang" "-DCMAKE_C_COMPILER=clang"
"-DCMAKE_CXX_COMPILER=clang++" "-DCMAKE_CXX_COMPILER=clang++"

View File

@@ -1,5 +1,6 @@
{ stdenv { stdenv
, fetchurl , fetchurl
, ncurses
, lib , lib
, dpkg , dpkg
, rsync , rsync
@@ -9,9 +10,12 @@
, hwloc , hwloc
, zlib , zlib
, autoPatchelfHook , autoPatchelfHook
, symlinkJoin
, libfabric , libfabric
, gcc13 , gcc
, gcc7
, wrapCCWith , wrapCCWith
, linuxHeaders
}: }:
# The distribution of intel packages is a mess. We are doing the installation # The distribution of intel packages is a mess. We are doing the installation
@@ -26,8 +30,6 @@
let let
gcc = gcc13;
v = { v = {
hpckit = "2023.1.0"; hpckit = "2023.1.0";
compiler = "2023.1.0"; compiler = "2023.1.0";
@@ -312,7 +314,6 @@ let
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}" "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}"
"intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}" "intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}"
]; ];
dontCheckForBrokenSymlinks = true;
# From https://aur.archlinux.org/packages/intel-oneapi-compiler: # From https://aur.archlinux.org/packages/intel-oneapi-compiler:
# - intel-oneapi-compiler-cpp-eclipse-cfg-2023.0.0-25370_all.deb # - intel-oneapi-compiler-cpp-eclipse-cfg-2023.0.0-25370_all.deb
# + intel-oneapi-compiler-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb # + intel-oneapi-compiler-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
@@ -398,9 +399,7 @@ let
echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags
# Need the gcc in the path # Need the gcc in the path
# FIXME: We should find a better way to modify the PATH instead of using echo 'export "PATH=${mygcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook
# this ugly hack. See https://jungle.bsc.es/git/rarias/bscpkgs/issues/9
echo 'path_backup="${mygcc}/bin:$path_backup"' >> $out/nix-support/cc-wrapper-hook
# Disable hardening by default # Disable hardening by default
echo "" > $out/nix-support/add-hardening.sh echo "" > $out/nix-support/add-hardening.sh

View File

@@ -1,6 +1,5 @@
{ {
stdenv llvmPackages_latest
, llvmPackages_latest
, lib , lib
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
@@ -12,26 +11,24 @@
, 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"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e" , gitCommit ? "8c0d267c04d7fc3fb923078f510fcd5f4719a6cc"
}: }:
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.06"; version = "2024.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "llvm"; repo = "llvm";
rev = "refs/tags/github-release-${version}"; rev = "refs/tags/github-release-${version}";
hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo="; hash = "sha256-pF0qa987nLkIJPUrXh1srzBkLPfb31skIegD0bl34Kg=";
}; };
}; };
@@ -46,7 +43,7 @@ let
source = if (useGit) then git else release; source = if (useGit) then git else release;
in llvmStdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "clang-ompss2"; pname = "clang-ompss2";
inherit (source) src version; inherit (source) src version;
@@ -60,23 +57,20 @@ in llvmStdenv.mkDerivation rec {
isClangWithOmpss = true; isClangWithOmpss = true;
nativeBuildInputs = [ nativeBuildInputs = [ zlib ];
zlib
gcc.cc.lib # Required for libstdc++.so.6
cmake
python3
llvmPackages.lld
];
buildInputs = [ buildInputs = [
which which
bash bash
python3
perl perl
llvmPackages.lld cmake
llvmPackages_latest.lld
elfutils elfutils
libffi libffi
pkg-config pkg-config
zlib zlib
gcc.cc.lib # Required for libstdc++.so.6
]; ];
# Error with -D_FORTIFY_SOURCE=2, see https://bugs.gentoo.org/636604: # Error with -D_FORTIFY_SOURCE=2, see https://bugs.gentoo.org/636604:
@@ -92,7 +86,6 @@ in llvmStdenv.mkDerivation rec {
dontUseCmakeBuildDir = true; dontUseCmakeBuildDir = true;
# Fix the host triple, as it has changed in a newer config.guess: # Fix the host triple, as it has changed in a newer config.guess:
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=commitdiff;h=ca9bfb8cc75a2be1819d89c664a867785c96c9ba # https://git.savannah.gnu.org/gitweb/?p=config.git;a=commitdiff;h=ca9bfb8cc75a2be1819d89c664a867785c96c9ba
preConfigure = '' preConfigure = ''
@@ -100,13 +93,8 @@ in llvmStdenv.mkDerivation rec {
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
@@ -115,8 +103,7 @@ in llvmStdenv.mkDerivation rec {
"-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_PROJECTS=clang;compiler-rt;lld"
"-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"
@@ -126,8 +113,8 @@ in llvmStdenv.mkDerivation rec {
# install # install
"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON" "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON"
"-DCMAKE_INSTALL_RPATH=${zlib}/lib:${gcc.cc.lib}/lib" "-DCMAKE_INSTALL_RPATH=${zlib}/lib:${gcc.cc.lib}/lib"
#"-DLLVM_APPEND_VC_REV=ON" "-DLLVM_APPEND_VC_REV=ON"
#"-DLLVM_FORCE_VC_REVISION=${source.version}" "-DLLVM_FORCE_VC_REVISION=${source.version}"
) )
''; '';

View File

@@ -3,43 +3,23 @@
, 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;
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 = pkg: if pkg ? "__spliced" && pkg.__spliced ? "targetTarget" then pkg.__spliced.targetTarget 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.pname == "openmp-v" && ompss2rt.pname == "nodes");
sameNosvUnspliced = 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 lib.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,14 +34,13 @@ let
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 = lib.strings.concatStringsSep "." [(lib.versions.major gcc.version) (lib.versions.minor gcc.version) (lib.versions.patch gcc.version)];
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 = lib.optional (openmp != null) openmp;
extraBuildCommands = '' extraBuildCommands = ''
echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags
#echo "-fuse-ld=lld" >> $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
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-ldflags echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
@@ -75,17 +54,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) '' '' + lib.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) '' '' + lib.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") '' '' + lib.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
''; '';
}) // { inherit ompss2rt; } }

View File

@@ -39,9 +39,6 @@ stdenv.mkDerivation rec {
perl perl
pkg-config pkg-config
python3 python3
];
buildInputs = [
] ++ lib.optionals enableNosv [ ] ++ lib.optionals enableNosv [
nosv nosv
] ++ lib.optionals enableOvni [ ] ++ lib.optionals enableOvni [

View File

@@ -1,41 +1,35 @@
{ {
lib, lib,
stdenv, stdenv,
libtirpc,
fetchFromGitHub fetchFromGitHub
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lmbench"; pname = "lmbench";
version = "941a0dcc"; version = "701c6c35";
# We use the intel repo as they have fixed some problems # We use the intel repo as they have fixed some problems
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "intel"; owner = "intel";
repo = pname; repo = pname;
rev = "941a0dcc0e7bdd9bb0dee05d7f620e77da8c43af"; rev = "701c6c35b0270d4634fb1dc5272721340322b8ed";
sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk="; sha256 = "0sf6zk03knkardsfd6qx7drpm56nhg53n885cylkggk83r38idyr";
}; };
postUnpack = ''
export sourceRoot="$sourceRoot/src"
'';
postPatch = '' postPatch = ''
sed -i "s@/bin/rm@rm@g" $(find . -name Makefile) sed -i "s@/bin/rm@rm@g" $(find . -name Makefile)
''; '';
buildInputs = [ libtirpc ];
patches = [ ./fix-install.patch ./gcc-14.patch ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
enableParallelBuilding = false; enableParallelBuilding = false;
preBuild = '' preBuild = ''
makeFlagsArray+=( makeFlagsArray+=(BASE=$out)
-C src
BASE=$out
CFLAGS=-Wno-implicit-int
CPPFLAGS=-I${libtirpc.dev}/include/tirpc
LDFLAGS=-ltirpc
)
''; '';
meta = { meta = {

View File

@@ -1,10 +0,0 @@
--- a/src/Makefile
+++ b/src/Makefile
@@ -144,6 +144,7 @@ install-target:
if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
cp $(EXES) $(BASE)/bin
+ cp $(OPT_EXES) $(BASE)/bin
cp $(INCS) $(BASE)/include
cp $O/lmbench.a $(BASE)/lib/libmbench.a
cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install

View File

@@ -1,77 +0,0 @@
From a3c6e7d303cd8368e8d4e35be7cbc1997e801257 Mon Sep 17 00:00:00 2001
From: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Date: Mon, 21 Jul 2025 17:38:58 +0200
Subject: [PATCH] Misc fixes to build with gcc 14
---
src/bench.h | 2 ++
src/lat_select.c | 2 +-
src/lib_debug.c | 1 +
src/lib_sched.c | 2 +-
src/lib_timing.c | 2 +-
5 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/bench.h b/src/bench.h
index 8166408..4da9079 100644
--- a/src/bench.h
+++ b/src/bench.h
@@ -320,4 +320,6 @@ extern int handle_scheduler(int childno, int benchproc, int nbenchprocs);
extern char *rpc_xact_1();
extern char *client_rpc_xact_1();
+void lmbench_usage(int argc, char *argv[], char* usage);
+
#endif /* _BENCH_H */
diff --git a/src/lat_select.c b/src/lat_select.c
index 583b505..39df369 100644
--- a/src/lat_select.c
+++ b/src/lat_select.c
@@ -164,7 +164,7 @@ doit(iter_t iterations, void * cookie)
state_t * state = (state_t *)cookie;
fd_set nosave;
static struct timeval tv;
- static count = 0;
+ static int count = 0;
tv.tv_sec = 0;
tv.tv_usec = 0;
diff --git a/src/lib_debug.c b/src/lib_debug.c
index e8347dd..cf65312 100644
--- a/src/lib_debug.c
+++ b/src/lib_debug.c
@@ -1,5 +1,6 @@
#include "bench.h"
#include "lib_debug.h"
+#include <math.h>
/*
* return micro-seconds / iteration at the the fraction point.
diff --git a/src/lib_sched.c b/src/lib_sched.c
index aa83ae0..4f16bbf 100644
--- a/src/lib_sched.c
+++ b/src/lib_sched.c
@@ -91,7 +91,7 @@ handle_scheduler(int childno, int benchproc, int nbenchprocs)
childno * (nbenchprocs + 1) + benchproc);
} else {
/* default action: do nothing */
- return;
+ return 0;
}
return sched_pin(cpu % sched_ncpus());
diff --git a/src/lib_timing.c b/src/lib_timing.c
index af8cf68..7ec9652 100644
--- a/src/lib_timing.c
+++ b/src/lib_timing.c
@@ -1623,7 +1623,7 @@ bread(void* buf, long nbytes)
void
touch(char *buf, int nbytes)
{
- static psize;
+ static int psize;
if (!psize) {
psize = getpagesize();
--
2.49.0

View File

@@ -19,7 +19,7 @@
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6" , gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "f82762b66c82b5174a8eaad33f6c2f335ac759b4" , gitCommit ? "9f54c988e0a8b9c011d9d526acdb8d76f18fcae4"
}: }:
assert enableJemalloc -> (jemallocNanos6 != null); assert enableJemalloc -> (jemallocNanos6 != null);
@@ -28,12 +28,12 @@ with lib;
let let
release = rec { release = rec {
version = "4.3"; version = "4.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "nanos6"; repo = "nanos6";
rev = "version-${version}"; rev = "version-${version}";
hash = "sha256-/c6WiKBsAo/01uvMRmjv0PMucbrgvaGmbxlPE6q+dfE="; hash = "sha256-tBrRGLCjSFYdmVGPAC2DzYY6HJyZGUOMeykujafn7+4=";
}; };
}; };

View File

@@ -11,19 +11,19 @@
, useGit ? false , useGit ? false
, gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git" , gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8" , gitCommit ? "cfd361bd1dd30c96da405e6bbaa7e78f5f93dfda"
}: }:
with lib; with lib;
let let
release = rec { release = rec {
version = "3.2.0"; version = "3.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "nos-v"; repo = "nos-v";
rev = "${version}"; rev = "${version}";
hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw="; hash = "sha256-Pkre+ZZsREDxJLCoIoPN1HQDuUa2H1IQyKB3omg6qaU=";
}; };
}; };

View File

@@ -7,7 +7,7 @@
, useGit ? false , useGit ? false
, gitBranch ? "master" , gitBranch ? "master"
, gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
, gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61" , gitCommit ? "a7103f8510d1ec124c3e01ceb47d1e443e98bbf4"
, enableDebug ? false , enableDebug ? false
# Only enable MPI if the build is native (fails on cross-compilation) # Only enable MPI if the build is native (fails on cross-compilation)
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform) , useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
@@ -17,13 +17,13 @@ with lib;
let let
release = rec { release = rec {
version = "1.12.0"; version = "1.11.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "ovni"; repo = "ovni";
rev = "${version}"; rev = "${version}";
hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E="; hash = "sha256-DEZUK1dvbPGH5WYkZ2hpP5PShkMxXkHOqMwgYUHHxeM=";
} // { shortRev = "a73afcf"; }; } // { shortRev = "a7103f8"; };
}; };
git = rec { git = rec {

View File

@@ -1,6 +1,5 @@
{ {
stdenv stdenv
, fetchFromGitHub
, autoreconfHook , autoreconfHook
, boost , boost
, libxml2 , libxml2
@@ -19,23 +18,14 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wxparaver"; pname = "wxparaver";
version = "4.12.0"; version = "4.11.2";
src = fetchFromGitHub { src = builtins.fetchGit {
owner = "bsc-performance-tools"; url = "https://github.com/bsc-performance-tools/wxparaver.git";
repo = "wxparaver"; rev = "129e6b4a4f061e5a319049db8db1620f5de3bd70"; # v4.11.2 (missing tag)
rev = "v${version}"; ref = "master";
sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo=";
}; };
patches = [
./do-not-steal-focus-on-redraw.patch
# Fix for boost >=1.87 (thanks to gamezelda)
# https://aur.archlinux.org/cgit/aur.git/commit/?h=wxparaver&id=b0dcd08c472536e0a1a3cc1dfbc4c77d9f5e0d47
./fix-boost-87.patch
];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
# Fix the PARAVER_HOME variable # Fix the PARAVER_HOME variable

View File

@@ -1,26 +0,0 @@
From 2b185e1b5ce52808b3026334851dbcd5a640ed4d Mon Sep 17 00:00:00 2001
From: aleixbonerib <aleix.boneribo@bsc.es>
Date: Mon, 10 Jun 2024 20:59:45 +0200
Subject: [PATCH] fix: do not set focus on redraw
Some wm can change the window size without focusing. Right now, when the
plot is resized it takes back focus.
---
src/gtimeline.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/gtimeline.cpp b/src/gtimeline.cpp
index 23ebef2..a896066 100644
--- a/src/gtimeline.cpp
+++ b/src/gtimeline.cpp
@@ -899,7 +899,6 @@ void gTimeline::redraw()
drawZone->Refresh();
- SetFocus();
}
--
2.44.1

View File

@@ -11,7 +11,7 @@ diff --git a/api/semanticcolor.cpp b/api/semanticcolor.cpp
index 9f86960..22859eb 100644 index 9f86960..22859eb 100644
--- a/api/semanticcolor.cpp --- a/api/semanticcolor.cpp
+++ b/api/semanticcolor.cpp +++ b/api/semanticcolor.cpp
@@ -295,8 +295,9 @@ rgb SemanticColor::getColor( PRV_UINT32 pos ) const @@ -232,8 +232,9 @@ rgb CodeColor::getColor( PRV_UINT32 pos ) const
{ {
if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() ) if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() )
return ParaverConfig::getInstance()->getColorsTimelineColorZero(); return ParaverConfig::getInstance()->getColorsTimelineColorZero();
@@ -22,26 +22,26 @@ index 9f86960..22859eb 100644
+ return colors[ pos + 1 ]; + return colors[ pos + 1 ];
} }
void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
@@ -314,6 +315,12 @@ void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) @@ -250,6 +251,12 @@ void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
colors[ whichPos ] = whichColor; colors[ whichPos ] = whichColor;
} }
+void SemanticColor::cutAfter( PRV_UINT32 pos ) +void CodeColor::cutAfter( PRV_UINT32 pos )
+{ +{
+ if ( pos < colors.size() ) + if ( pos < colors.size() )
+ colors.erase( colors.begin() + pos, colors.end() ); + colors.erase( colors.begin() + pos, colors.end() );
+} +}
+ +
void SemanticColor::setCustomColor( TSemanticValue whichValue, rgb color ) void CodeColor::setCustomColor( TSemanticValue whichValue, rgb color )
{ {
customPalette[ whichValue ] = color; customPalette[ whichValue ] = color;
diff --git a/api/semanticcolor.h b/api/semanticcolor.h diff --git a/api/semanticcolor.h b/api/semanticcolor.h
index a079556..bddf3d8 100644 index a079556..bddf3d8 100644
--- a/api/semanticcolor.h --- a/api/semanticcolor.h
+++ b/api/semanticcolor.h +++ b/api/semanticcolor.h
@@ -114,6 +114,7 @@ class SemanticColor @@ -98,6 +98,7 @@ class CodeColor: public SemanticColor
// Code Color methods
PRV_UINT32 getNumColors() const; PRV_UINT32 getNumColors() const;
void setColor( PRV_UINT32 pos, rgb color ); void setColor( PRV_UINT32 pos, rgb color );
+ void cutAfter( PRV_UINT32 pos ); + void cutAfter( PRV_UINT32 pos );
@@ -61,7 +61,7 @@ index b0d2050..ee2ab69 100644
for ( auto it : semanticColors ) for ( auto it : semanticColors )
{ {
std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second; std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second;
mySemanticColor.setColor( it.first, tmpColor ); myCodeColor.setColor( it.first, tmpColor );
+ if (it.first > maxValue) + if (it.first > maxValue)
+ maxValue = it.first; + maxValue = it.first;
} }
@@ -69,7 +69,7 @@ index b0d2050..ee2ab69 100644
+ // Cut the palette after the highest defined value, so there are no + // Cut the palette after the highest defined value, so there are no
+ // extra expanded values + // extra expanded values
+ if ( !pcfParser.expandColors ) + if ( !pcfParser.expandColors )
+ mySemanticColor.cutAfter(maxValue); + myCodeColor.cutAfter(maxValue);
+ +
myEventLabels = EventLabels( pcfParser ); myEventLabels = EventLabels( pcfParser );
myStateLabels = StateLabels( pcfParser ); myStateLabels = StateLabels( pcfParser );

View File

@@ -1,87 +0,0 @@
From 7ecd888e2ebb9e8c5582851d3c50bff61022708e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com>
Date: Sat, 29 Mar 2025 18:14:25 +0000
Subject: [PATCH] tutorialsdownload: Fix Boost ASIO 1.87.0 removals
---
src/tutorialsdownload.cpp | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/src/tutorialsdownload.cpp b/src/tutorialsdownload.cpp
index a1921fd..6ce9dc2 100644
--- a/src/tutorialsdownload.cpp
+++ b/src/tutorialsdownload.cpp
@@ -121,13 +121,13 @@ void TutorialsProgress::updateInstall( int whichValue )
class client
{
public:
- client( boost::asio::io_service& io_service,
+ client( boost::asio::io_context& io_context,
boost::asio::ssl::context& context,
const std::string& server, const std::string& path,
ofstream& storeFile,
TutorialsProgress *progress )
- : resolver_( io_service ),
- socket_( io_service, context ),
+ : resolver_( io_context ),
+ socket_( io_context, context ),
store_( storeFile ),
progress_( progress )
{
@@ -143,8 +143,7 @@ class client
// Start an asynchronous resolve to translate the server and service names
// into a list of endpoints.
- tcp::resolver::query query( server, "https" );
- resolver_.async_resolve( query,
+ resolver_.async_resolve( server, "https",
boost::bind( &client::handle_resolve,
this,
boost::asio::placeholders::error,
@@ -154,7 +153,7 @@ class client
private:
void handle_resolve( const boost::system::error_code& err,
- tcp::resolver::iterator endpoint_iterator )
+ const tcp::resolver::results_type& endpoints )
{
if ( !err )
{
@@ -162,7 +161,7 @@ class client
socket_.set_verify_callback( boost::bind( &client::verify_certificate, this, _1, _2 ) );
boost::asio::async_connect( socket_.lowest_layer(),
- endpoint_iterator,
+ endpoints,
boost::bind( &client::handle_connect,
this,
boost::asio::placeholders::error ) );
@@ -536,9 +535,9 @@ bool TutorialsDownload::downloadTutorialsList() const
boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 );
ctx.set_default_verify_paths();
- boost::asio::io_service io_service;
- client c( io_service, ctx, server, path, storeFile, nullptr );
- io_service.run();
+ boost::asio::io_context io_context;
+ client c( io_context, ctx, server, path, storeFile, nullptr );
+ io_context.run();
doneDownload = true;
}
@@ -580,9 +579,9 @@ bool TutorialsDownload::download( const TutorialData& whichTutorial, string& tut
boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 );
ctx.set_default_verify_paths();
- boost::asio::io_service io_service;
- client c( io_service, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
- io_service.run();
+ boost::asio::io_context io_context;
+ client c( io_context, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
+ io_context.run();
}
catch ( ParaverKernelException& e )
{
--
2.49.0

View File

@@ -1,23 +0,0 @@
commit 60aa3ffa05f6b40db191a880e9e622d608744c1f
Author: Aleix Boné <aleix.boneribo@bsc.es>
Date: Sun Jul 21 12:11:30 2025 +0200
fix libxml2 deprecated macro
diff --git a/configure.ac b/configure.ac
index 7fe1876..3ce1091 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,7 +46,10 @@ AC_PROG_CPP
AC_PROG_CXXCPP
AC_PROG_SED
-AM_PATH_XML2
+PKG_PROG_PKG_CONFIG
+PKG_CHECK_MODULES([XML], [libxml-2.0])
+
+AC_SUBST(XML_CPPFLAGS, $XML_CFLAGS)
AX_BOOST_BASE(1.36)
AX_BOOST_SERIALIZATION

View File

@@ -1,32 +1,32 @@
{ {
stdenv stdenv
, fetchFromGitHub
, autoreconfHook , autoreconfHook
, boost , boost
, libxml2 , libxml2
, xml2 , xml2
, wxGTK32
, autoconf , autoconf
, automake , automake
, pkg-config , pkg-config
, zlib , zlib
}: }:
let
wx = wxGTK32;
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "paraver-kernel"; pname = "paraver-kernel";
version = "4.12.0"; version = "${src.shortRev}";
src = fetchFromGitHub { src = builtins.fetchGit {
owner = "bsc-performance-tools"; url = "https://github.com/bsc-performance-tools/paraver-kernel.git";
repo = "paraver-kernel"; rev = "2e167da3cee78ca11e31b74faefb23f12bac2b8c"; # master (missing tag)
rev = "v${version}"; ref = "master";
sha256 = "sha256-Xs7g8ITZhPt00v7o2WlTddbou8C8Rc9kBMFpl2WsCS4=";
}; };
patches = [ patches = [
# https://github.com/bsc-performance-tools/paraver-kernel/pull/11 # https://github.com/bsc-performance-tools/paraver-kernel/pull/11
# TODO: add this back if it's still relevant ./dont-expand-colors.patch
# ./dont-expand-colors.patch
./fix-libxml2-deprecation.patch
]; ];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];

View File

@@ -15,7 +15,7 @@
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "f6455db9d3124ae36e715a4874fd49720e79f20a" , gitCommit ? "a5c93bf8ab045b71ad4a8d5e2c991ce774db5cbc"
}: }:
with lib; with lib;
@@ -24,12 +24,12 @@ assert enableOvni -> (ovni != null);
let let
release = rec { release = rec {
version = "4.1"; version = "4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bsc-pm"; owner = "bsc-pm";
repo = "tampi"; repo = "tampi";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-SwfPSnwcZnRnSgNvCD5sFSUJRpWINqI5I4adj5Hh+XY="; hash = "sha256-R7ew5tsrxGReTvOeeZe1FD0oThBhOHoDGv6Mo2sbmDg=";
}; };
}; };
git = rec { git = rec {
@@ -46,16 +46,15 @@ in stdenv.mkDerivation rec {
inherit (source) src version; inherit (source) src version;
enableParallelBuilding = true; enableParallelBuilding = true;
separateDebugInfo = true; separateDebugInfo = true;
nativeBuildInputs = [ buildInputs = [
autoreconfHook autoreconfHook
automake automake
autoconf autoconf
libtool libtool
gnumake gnumake
];
buildInputs = [
boost boost
mpi mpi
gcc
] ++ optional (enableOvni) ovni; ] ++ optional (enableOvni) ovni;
configureFlags = optional (enableOvni) "--with-ovni=${ovni}"; configureFlags = optional (enableOvni) "--with-ovni=${ovni}";
dontDisableStatic = true; dontDisableStatic = true;