Compare commits

..

1 Commits

Author SHA1 Message Date
766b908923 wip 2025-02-10 17:01:43 +01:00
37 changed files with 264 additions and 581 deletions

View File

@ -1,15 +0,0 @@
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:all:
runs-on: native
steps:
- uses: https://gitea.com/ScMi1/checkout@v1.4
- run: nix build -L --no-link --print-out-paths .#bsc-ci.all

View File

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

8
flake.lock generated
View File

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

View File

@ -2,25 +2,16 @@
inputs.nixpkgs.url = "nixpkgs";
outputs = { self, nixpkgs, ...}:
let
let
pkgs = import nixpkgs {
# For now we only support x86
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [ self.overlays.default ];
};
in
overlays = [ self.overlays.default ];
};
in
{
bscOverlay = import ./overlay.nix;
overlays.default = self.bscOverlay;
# full nixpkgs with our overlay applied
legacyPackages.${system} = pkgs;
hydraJobs = {
inherit (self.legacyPackages.${system}.bsc-ci) tests pkgs cross;
};
# propagate nixpkgs lib, so we can do bscpkgs.lib
inherit (nixpkgs) lib;
legacyPackages.x86_64-linux = pkgs;
};
}

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

@ -6,6 +6,9 @@ with final.lib;
let
callPackage = final.callPackage;
mkDeps = name: pkgs: final.runCommand name { }
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
bscPkgs = {
bench6 = callPackage ./pkgs/bench6/default.nix { };
bigotes = callPackage ./pkgs/bigotes/default.nix { };
@ -18,7 +21,7 @@ let
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.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 { };
nanos6 = callPackage ./pkgs/nanos6/default.nix { };
nanos6Debug = final.nanos6.override { enableDebug = true; };
@ -43,77 +46,60 @@ let
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; };
tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
tampi = callPackage ./pkgs/tampi/default.nix { };
vivado = callPackage ./pkgs/vivado/default.nix { };
wxparaver = callPackage ./pkgs/paraver/default.nix { };
};
tests = rec {
#hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
hello-c = callPackage ./test/compilers/hello-c.nix { };
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
lto = callPackage ./test/compilers/lto.nix { };
asan = callPackage ./test/compilers/asan.nix { };
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-ifort = callPackage ./test/compilers/hello-f.nix {
stdenv = final.intelPackages_2023.stdenv-ifort;
};
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nanos6;
};
clangNodes-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
};
pkgs = filterAttrs (_: isDerivation) bscPkgs;
crossTargets = [ "riscv64" ];
cross = prev.lib.genAttrs crossTargets (target:
final.pkgsCross.${target}.bsc-ci.pkgs
);
buildList = name: paths:
final.runCommandLocal name { } ''
printf '%s\n' ${toString paths} | tee $out
'';
buildList' = name: paths:
final.runCommandLocal name { } ''
deps="${toString paths}"
cat $deps
printf '%s\n' $deps >$out
'';
crossList = builtins.mapAttrs (t: v: buildList t (builtins.attrValues v)) cross;
pkgsList = buildList "ci-pkgs" (builtins.attrValues pkgs);
testList = buildList "ci-tests" (collect isDerivation tests);
all = buildList' "ci-all" [ pkgsList testList ];
in bscPkgs // {
# Prevent accidental usage of bsc attribute
bsc = throw "the bsc attribute is deprecated, packages are now in the root";
# Internal for our CI tests
bsc-ci = {
inherit pkgs pkgsList;
inherit tests testList;
inherit cross crossList;
inherit all;
test = rec {
#hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
hello-c = callPackage ./test/compilers/hello-c.nix { };
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
lto = callPackage ./test/compilers/lto.nix { };
asan = callPackage ./test/compilers/asan.nix { };
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; };
intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; };
intel2023-ifort = callPackage ./test/compilers/hello-f.nix {
stdenv = final.intelPackages_2023.stdenv-ifort;
};
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nanos6;
};
clangNodes-task = callPackage ./test/compilers/ompss2.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix {
stdenv = final.stdenvClangOmpss2Nodes;
};
clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix {
stdenv = final.stdenvClangOmpss2NodesOmpv;
};
};
pkgs = final.runCommand "ci-pkgs" { }
"printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out";
tests = final.runCommand "ci-tests" { }
"printf '%s\n' ${toString (collect isDerivation final.bsc-ci.test)} > $out";
all = final.runCommand "ci-all" { }
''
deps="${toString [ final.bsc-ci.pkgs final.bsc-ci.tests ]}"
cat $deps
printf '%s\n' $deps > $out
'';
};
}

View File

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

View File

@ -4,7 +4,7 @@
, cmake
}:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "bigotes";
version = "9dce13";
src = fetchFromGitHub {
@ -13,5 +13,5 @@ stdenv.mkDerivation {
rev = "9dce13446a8da30bea552d569d260d54e0188518";
sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ cmake ];
}

View File

@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
] ++ optionals (enableTest) [ mpi clangOmpss2 tampi ];
src = builtins.fetchGit {
url = "ssh://git@bscpm04.bsc.es/rarias/cn6.git";
url = "ssh://git@bscpm03.bsc.es/rarias/cn6.git";
ref = "master";
rev = "c72c3b66b720c2a33950f536fc819051c8f20a69";
};

View File

@ -34,8 +34,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
patches = [ ./rdma-core.patch ./max-mem.patch ];
preConfigure = ''
patchShebangs autogen.sh
./autogen.sh

View File

@ -1,10 +0,0 @@
--- a/tests/tests/segments/max_mem.c 2025-09-12 13:30:53.449353591 +0200
+++ b/tests/tests/segments/max_mem.c 2025-09-12 13:33:49.750352401 +0200
@@ -1,5 +1,7 @@
#include <test_utils.h>
+gaspi_size_t gaspi_get_system_mem (void);
+
/* Test allocates 45% of system memory and creates a segment that
large or if several ranks per node exist, divided among that
number */

View File

@ -1,12 +0,0 @@
--- a/src/devices/ib/GPI2_IB.h 2025-09-12 13:25:31.564181121 +0200
+++ b/src/devices/ib/GPI2_IB.h 2025-09-12 13:24:49.105422150 +0200
@@ -26,6 +26,9 @@ along with GPI-2. If not, see <http://ww
#include "GPI2_Dev.h"
+/* Missing prototype as driver.h is now private */
+int ibv_read_sysfs_file(const char *dir, const char *file, char *buf, size_t size);
+
#define GASPI_GID_INDEX (0)
#define PORT_LINK_UP (5)
#define MAX_INLINE_BYTES (128)

View File

@ -1,5 +1,6 @@
{ stdenv
, fetchurl
, ncurses
, lib
, dpkg
, rsync
@ -9,9 +10,12 @@
, hwloc
, zlib
, autoPatchelfHook
, symlinkJoin
, libfabric
, gcc13
, gcc
, gcc7
, wrapCCWith
, linuxHeaders
}:
# The distribution of intel packages is a mess. We are doing the installation
@ -26,8 +30,6 @@
let
gcc = gcc13;
v = {
hpckit = "2023.1.0";
compiler = "2023.1.0";
@ -78,7 +80,7 @@ let
uncompressDebs = debs: name: stdenv.mkDerivation {
name = name;
srcs = debs;
nativeBuildInputs = [ dpkg ];
buildInputs = [ dpkg ];
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out
@ -108,17 +110,14 @@ let
"intel-oneapi-mpi-${version}"
];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
buildInputs = [
rsync
libfabric
zlib
stdenv.cc.cc.lib
];
nativeBuildInputs = [ autoPatchelfHook ];
phases = [ "installPhase" "fixupPhase" ];
dontStrip = true;
installPhase = ''
@ -157,6 +156,7 @@ let
buildInputs = [
intel-mpi
rsync
libffi_3_3
libelf
libxml2
@ -164,10 +164,7 @@ let
stdenv.cc.cc.lib
];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
nativeBuildInputs = [ autoPatchelfHook ];
phases = [ "installPhase" "fixupPhase" ];
dontStrip = true;
@ -197,6 +194,7 @@ let
buildInputs = [
intel-mpi
intel-tbb
rsync
libffi_3_3
libelf
libxml2
@ -205,10 +203,7 @@ let
stdenv.cc.cc.lib
];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
nativeBuildInputs = [ autoPatchelfHook ];
phases = [ "installPhase" "fixupPhase" ];
dontStrip = true;
@ -261,6 +256,7 @@ let
buildInputs = [
intel-mpi
intel-compiler-shared
rsync
libffi_3_3
libelf
libxml2
@ -268,10 +264,7 @@ let
stdenv.cc.cc.lib
];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
nativeBuildInputs = [ autoPatchelfHook ];
phases = [ "installPhase" "fixupPhase" ];
@ -321,7 +314,6 @@ let
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}"
"intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}"
];
dontCheckForBrokenSymlinks = true;
# From https://aur.archlinux.org/packages/intel-oneapi-compiler:
# - 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
@ -346,6 +338,7 @@ let
buildInputs = [
intel-compiler-shared
rsync
libffi_3_3
libelf
libxml2
@ -353,10 +346,7 @@ let
stdenv.cc.cc.lib
];
nativeBuildInputs = [
autoPatchelfHook
rsync
];
nativeBuildInputs = [ autoPatchelfHook ];
autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ];
phases = [ "installPhase" "fixupPhase" ];
@ -409,9 +399,7 @@ let
echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags
# Need the gcc in the path
# FIXME: We should find a better way to modify the PATH instead of using
# 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
echo 'export "PATH=${mygcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook
# Disable hardening by default
echo "" > $out/nix-support/add-hardening.sh

View File

@ -14,21 +14,21 @@
, gcc # needed to set the rpath of libstdc++ for clang-tblgen
, enableDebug ? false
, useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
, gitUrl ? "ssh://git@bscpm03.bsc.es/llvm-ompss/llvm-mono.git"
, gitBranch ? "master"
, gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e"
, gitCommit ? "8c0d267c04d7fc3fb923078f510fcd5f4719a6cc"
}:
let
stdenv = llvmPackages_latest.stdenv;
release = rec {
version = "2025.06";
version = "2024.11";
src = fetchFromGitHub {
owner = "bsc-pm";
repo = "llvm";
rev = "refs/tags/github-release-${version}";
hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo=";
hash = "sha256-pF0qa987nLkIJPUrXh1srzBkLPfb31skIegD0bl34Kg=";
};
};
@ -43,36 +43,32 @@ let
source = if (useGit) then git else release;
in stdenv.mkDerivation {
in stdenv.mkDerivation rec {
pname = "clang-ompss2";
inherit (source) src version;
enableParallelBuilding = true;
isClang = true;
passthru = {
CC = "clang";
CXX = "clang++";
isClang = true;
isClangWithOmpss = true;
inherit gcc zlib;
};
nativeBuildInputs = [
bash
cmake
elfutils
llvmPackages_latest.lld
pkg-config
python3
perl
which
zlib
];
isClangWithOmpss = true;
nativeBuildInputs = [ zlib ];
buildInputs = [
which
bash
python3
perl
cmake
llvmPackages_latest.lld
elfutils
libffi
pkg-config
zlib
gcc.cc.lib # Required for libstdc++.so.6
];

View File

@ -9,14 +9,12 @@
, ompss2rt ? null
}:
with lib;
let
usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
sameNosv = openmp.nosv == ompss2rt.nosv;
in
assert assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V";
assert lib.assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V";
let
homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME";
@ -36,15 +34,14 @@ let
targetConfig = stdenv.targetPlatform.config;
inherit gcc;
cc = clangOmpss2Unwrapped;
gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)];
in wrapCCWith {
inherit cc bintools;
# extraPackages adds packages to depsTargetTargetPropagated
extraPackages = optional (openmp != null) openmp;
extraPackages = lib.optional (openmp != null) openmp;
extraBuildCommands = ''
echo "-target ${targetConfig}" >> $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 "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
for dir in ${gcc.cc}/include/c++/*; do
@ -58,12 +55,12 @@ in wrapCCWith {
wrap clang++ $wrapper $ccPath/clang++
'' + optionalString (openmp != null) ''
'' + lib.optionalString (openmp != null) ''
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 ${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.nosv}" >> $out/nix-support/cc-wrapper-hook
'';
}

View File

@ -68,7 +68,6 @@ stdenv.mkDerivation rec {
rm -f $out/lib/libiomp*
'' + lib.optionalString enableNosv ''
rm -f $out/lib/libomp.*
rm -f $out/libllvmrt/libomp.*
'';
passthru = {

View File

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

@ -32,20 +32,17 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
nativeBuildInputs = [
buildInputs = [
autoreconfHook
bison
flex
nanos6
gperf
python3
gfortran
pkg-config
gperf
gcc
];
buildInputs = [
nanos6
sqlite.dev
bison
flex
gcc
];
patches = [ ./intel.patch ];

View File

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
};
src = builtins.fetchGit {
url = "ssh://git@bscpm04.bsc.es/mercurium/mcxx";
url = "ssh://git@bscpm03.bsc.es/mercurium/mcxx";
ref = "master";
};

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
#src = /home/Computational/rarias/mcxx;
src = builtins.fetchGit {
url = "ssh://git@bscpm04.bsc.es/rarias/mcxx";
url = "ssh://git@bscpm03.bsc.es/rarias/mcxx";
rev = "44129a6ac05b8f78b06e9e2eff71438b5ca4d29f";
};

View File

@ -17,9 +17,9 @@
, cachelineBytes ? 64
, enableGlibcxxDebug ? false
, useGit ? false
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
, gitUrl ? "ssh://git@bscpm03.bsc.es/nanos6/nanos6"
, gitBranch ? "master"
, gitCommit ? "f82762b66c82b5174a8eaad33f6c2f335ac759b4"
, gitCommit ? "9f54c988e0a8b9c011d9d526acdb8d76f18fcae4"
}:
assert enableJemalloc -> (jemallocNanos6 != null);
@ -28,12 +28,12 @@ with lib;
let
release = rec {
version = "4.3";
version = "4.2";
src = fetchFromGitHub {
owner = "bsc-pm";
repo = "nanos6";
rev = "version-${version}";
hash = "sha256-/c6WiKBsAo/01uvMRmjv0PMucbrgvaGmbxlPE6q+dfE=";
hash = "sha256-tBrRGLCjSFYdmVGPAC2DzYY6HJyZGUOMeykujafn7+4=";
};
};
@ -48,7 +48,7 @@ let
source = if (useGit) then git else release;
in
stdenv.mkDerivation (source // {
stdenv.mkDerivation (source // rec {
pname = "nanos6";
prePatch = ''
@ -62,7 +62,7 @@ in
export CACHELINE_WIDTH=${toString cachelineBytes}
./autogen.sh
'' + lib.optionalString (useGit) ''
export NANOS6_GIT_VERSION=${gitCommit}
export NANOS6_GIT_VERSION=${src.rev}
export NANOS6_GIT_BRANCH=${gitBranch}
'';
@ -88,19 +88,11 @@ in
dontStrip = enableDebug;
separateDebugInfo = true;
nativeBuildInputs = [
buildInputs = [
autoconf
automake
libtool
pkg-config
# TODO: papi_version is needed for configure:
# ./configure: line 27378: papi_version: command not found
# This probably breaks cross-compilation
papi
];
buildInputs = [
boost
numactl
hwloc

View File

@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
pname = "nixtools";
version = "${src.shortRev}";
src = builtins.fetchGit {
url = "ssh://git@bscpm04.bsc.es/rarias/nixtools";
url = "ssh://git@bscpm03.bsc.es/rarias/nixtools";
ref = "master";
rev = "a103e392048ace3ed88ce74648b32c9e6ed094da";
};

View File

@ -6,26 +6,24 @@
, pkg-config
, numactl
, hwloc
, papi
, enablePapi ? true
, cacheline ? 64 # bits
, ovni ? null
, useGit ? false
, gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git"
, gitBranch ? "master"
, gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8"
, gitCommit ? "cfd361bd1dd30c96da405e6bbaa7e78f5f93dfda"
}:
with lib;
let
release = rec {
version = "3.2.0";
version = "3.1.0";
src = fetchFromGitHub {
owner = "bsc-pm";
repo = "nos-v";
rev = "${version}";
hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw=";
hash = "sha256-Pkre+ZZsREDxJLCoIoPN1HQDuUa2H1IQyKB3omg6qaU=";
};
};
@ -58,5 +56,5 @@ in
numactl
hwloc
ovni
] ++ lib.optionals enablePapi [ papi ];
];
}

View File

@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
doCheck = true;
enableParallelBuilding = true;
nativeBuildInputs = [ mpiAll ];
buildInputs = [ mpiAll ];
hardeningDisable = [ "all" ];
configureFlags = [
@ -41,7 +40,7 @@ stdenv.mkDerivation rec {
meta = {
description = "OSU Micro-Benchmarks";
homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/";
homepage = http://mvapich.cse.ohio-state.edu/benchmarks/;
maintainers = [ ];
platforms = lib.platforms.all;
};

View File

@ -6,22 +6,24 @@
, fetchFromGitHub
, useGit ? false
, gitBranch ? "master"
, gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
, gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61"
, gitUrl ? "ssh://git@bscpm03.bsc.es/rarias/ovni.git"
, gitCommit ? "a7103f8510d1ec124c3e01ceb47d1e443e98bbf4"
, enableDebug ? false
# Only enable MPI if the build is native (fails on cross-compilation)
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
}:
with lib;
let
release = rec {
version = "1.12.0";
version = "1.11.0";
src = fetchFromGitHub {
owner = "bsc-pm";
repo = "ovni";
rev = "${version}";
hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E=";
} // { shortRev = "a73afcf"; };
hash = "sha256-DEZUK1dvbPGH5WYkZ2hpP5PShkMxXkHOqMwgYUHHxeM=";
} // { shortRev = "a7103f8"; };
};
git = rec {
@ -43,7 +45,7 @@ in
postPatch = ''
patchShebangs --build test/
'';
nativeBuildInputs = [ cmake ] ++ lib.optionals (useMpi) [ mpi ];
nativeBuildInputs = [ cmake ];
buildInputs = lib.optionals (useMpi) [ mpi ];
cmakeBuildType = if (enableDebug) then "Debug" else "Release";
cmakeFlags = [

View File

@ -1,6 +1,5 @@
{
stdenv
, fetchFromGitHub
, autoreconfHook
, boost
, libxml2
@ -19,23 +18,14 @@ let
in
stdenv.mkDerivation rec {
pname = "wxparaver";
version = "4.12.0";
version = "4.11.2";
src = fetchFromGitHub {
owner = "bsc-performance-tools";
repo = "wxparaver";
rev = "v${version}";
sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo=";
src = builtins.fetchGit {
url = "https://github.com/bsc-performance-tools/wxparaver.git";
rev = "129e6b4a4f061e5a319049db8db1620f5de3bd70"; # v4.11.2 (missing tag)
ref = "master";
};
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" ];
# Fix the PARAVER_HOME variable
@ -60,17 +50,17 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [
autoconf
automake
autoreconfHook
wrapGAppsHook
];
buildInputs = [
autoreconfHook
boost
libxml2.dev
xml2
wx
autoconf
automake
paraverKernel
openssl.dev
];

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
--- a/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() )
return ParaverConfig::getInstance()->getColorsTimelineColorZero();
@ -22,26 +22,26 @@ index 9f86960..22859eb 100644
+ return colors[ pos + 1 ];
}
void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
@@ -314,6 +315,12 @@ void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
@@ -250,6 +251,12 @@ void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
colors[ whichPos ] = whichColor;
}
+void SemanticColor::cutAfter( PRV_UINT32 pos )
+void CodeColor::cutAfter( PRV_UINT32 pos )
+{
+ if ( pos < colors.size() )
+ colors.erase( colors.begin() + pos, colors.end() );
+}
+
void SemanticColor::setCustomColor( TSemanticValue whichValue, rgb color )
void CodeColor::setCustomColor( TSemanticValue whichValue, rgb color )
{
customPalette[ whichValue ] = color;
diff --git a/api/semanticcolor.h b/api/semanticcolor.h
index a079556..bddf3d8 100644
--- a/api/semanticcolor.h
+++ b/api/semanticcolor.h
@@ -114,6 +114,7 @@ class SemanticColor
// Code Color methods
@@ -98,6 +98,7 @@ class CodeColor: public SemanticColor
PRV_UINT32 getNumColors() const;
void setColor( PRV_UINT32 pos, rgb color );
+ void cutAfter( PRV_UINT32 pos );
@ -61,7 +61,7 @@ index b0d2050..ee2ab69 100644
for ( auto it : semanticColors )
{
std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second;
mySemanticColor.setColor( it.first, tmpColor );
myCodeColor.setColor( it.first, tmpColor );
+ if (it.first > maxValue)
+ maxValue = it.first;
}
@ -69,7 +69,7 @@ index b0d2050..ee2ab69 100644
+ // Cut the palette after the highest defined value, so there are no
+ // extra expanded values
+ if ( !pcfParser.expandColors )
+ mySemanticColor.cutAfter(maxValue);
+ myCodeColor.cutAfter(maxValue);
+
myEventLabels = EventLabels( 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
, fetchFromGitHub
, autoreconfHook
, boost
, libxml2
, xml2
, wxGTK32
, autoconf
, automake
, pkg-config
, zlib
}:
let
wx = wxGTK32;
in
stdenv.mkDerivation rec {
pname = "paraver-kernel";
version = "4.12.0";
version = "${src.shortRev}";
src = fetchFromGitHub {
owner = "bsc-performance-tools";
repo = "paraver-kernel";
rev = "v${version}";
sha256 = "sha256-Xs7g8ITZhPt00v7o2WlTddbou8C8Rc9kBMFpl2WsCS4=";
src = builtins.fetchGit {
url = "https://github.com/bsc-performance-tools/paraver-kernel.git";
rev = "2e167da3cee78ca11e31b74faefb23f12bac2b8c"; # master (missing tag)
ref = "master";
};
patches = [
# https://github.com/bsc-performance-tools/paraver-kernel/pull/11
# TODO: add this back if it's still relevant
# ./dont-expand-colors.patch
./fix-libxml2-deprecation.patch
./dont-expand-colors.patch
];
hardeningDisable = [ "all" ];
@ -44,17 +44,14 @@ stdenv.mkDerivation rec {
"--enable-openmp"
];
nativeBuildInputs = [
autoreconfHook
autoconf
automake
pkg-config
];
buildInputs = [
autoreconfHook
boost
libxml2.dev
xml2
autoconf
automake
pkg-config
zlib
];
}

View File

@ -61,16 +61,13 @@ stdenv.mkDerivation rec {
"--with-wx-config=${wx}/bin/wx-config"
];
nativeBuildInputs = [
autoconf
automake
];
buildInputs = [
boost
xml2
libxml2.dev
wx
autoconf
automake
openssl.dev
];

View File

@ -18,12 +18,8 @@ stdenv.mkDerivation rec {
hardeningDisable = [ "all" ];
dontStrip = true;
configureFlags = [ "--with-ovni=${ovni}" ];
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [
autoreconfHook
ovni
mpi
];

View File

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

55
pkgs/vivado/default.nix Normal file
View File

@ -0,0 +1,55 @@
# Thanks to MLabs to made the switch.
{
stdenv
, lib
, ncurses5
, libxcrypt-legacy
, zlib
, libuuid
, xorg
, freetype
, fontconfig
, buildFHSEnv
}:
with lib;
let
vivadoDeps = pkgs:
let
# Apply patch from https://github.com/nix-community/nix-environments/pull/54
# to fix ncurses libtinfo.so's soname issue
ncurses' = ncurses5.overrideAttrs (old: {
configureFlags = old.configureFlags ++ ["--with-termlib"];
postFixup = "";
});
in [
libxcrypt-legacy
(ncurses'.override {unicodeSupport = false;})
zlib
libuuid
xorg.libSM
xorg.libICE
xorg.libXrender
xorg.libX11
xorg.libXext
xorg.libXtst
xorg.libXi
freetype
fontconfig
];
vivadoEnv = buildFHSEnv {
name = "vivado-env";
targetPkgs = vivadoDeps;
};
vivado = buildFHSEnv {
name = "vivado";
targetPkgs = vivadoDeps;
profile = "set -e; source /opt/Xilinx/Vivado/2024.2/settings64.sh";
runScript = "vivado";
};
in
vivadoEnv