Archived
1
0
forked from rarias/bscpkgs

17 Commits

Author SHA1 Message Date
2ffd3be93d Fix nanos6 cross-compilation for riscv 2025-10-01 10:28:46 +02:00
958af15b7a Fix cross compilation for lmbench 2025-10-01 10:28:46 +02:00
f43cd5a35c Disable papi when cross compiling
Even if we do an override to papi get the proper configure flags for
cross-compiling, the memory fences are not defined for risc-v:

mb.h:67:2: error: #error Need to define rmb for this architecture!
2025-10-01 10:28:46 +02:00
85d50f346c Add riscv64 cross compilation to bsc-ci and hydra 2025-10-01 10:28:46 +02:00
63aad2bbe5 Put helper attrs of ompss2 drv to passthru 2025-10-01 10:26:56 +02:00
7b59ad8e65 Remove gcc from tampi *buildInputs 2025-09-29 12:54:24 +02:00
db60f992d2 Fix strictDeps ovni 2025-09-29 12:54:23 +02:00
907797dbf7 Fix strictDeps osu 2025-09-29 12:54:22 +02:00
c9442e9859 Fix strictDeps mercurium 2025-09-29 12:54:22 +02:00
1b4b039faf Fix strictDeps tampi 2025-09-29 12:54:22 +02:00
e3faa29477 Fix strictDeps sonar 2025-09-29 12:54:22 +02:00
4eb8e2bada Fix strictDeps nanos6 2025-09-29 12:54:22 +02:00
1462d25b9b Fix strictDeps paraver 2025-09-29 12:54:21 +02:00
61b6de195e Fix strictDeps ompss2 2025-09-29 12:54:21 +02:00
cb6d770992 Fix strictDeps intel 2023 2025-09-29 12:54:21 +02:00
6454ff6712 Fix strictDeps bench6 2025-09-29 12:54:21 +02:00
d40ce4fe79 Fix strictDeps bigotes 2025-09-29 12:54:21 +02:00
8 changed files with 86 additions and 87 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

@@ -17,7 +17,7 @@
legacyPackages.${system} = pkgs; legacyPackages.${system} = pkgs;
hydraJobs = { hydraJobs = {
inherit (self.legacyPackages.${system}.bsc-ci) tests pkgs cross; inherit (self.legacyPackages.${system}.bsc-ci) test pkgs cross;
}; };
# propagate nixpkgs lib, so we can do bscpkgs.lib # propagate nixpkgs lib, so we can do bscpkgs.lib

View File

@@ -6,6 +6,9 @@ with final.lib;
let let
callPackage = final.callPackage; callPackage = final.callPackage;
mkDeps = name: pkgs: final.runCommand name { }
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
bscPkgs = { bscPkgs = {
bench6 = callPackage ./pkgs/bench6/default.nix { }; bench6 = callPackage ./pkgs/bench6/default.nix { };
bigotes = callPackage ./pkgs/bigotes/default.nix { }; bigotes = callPackage ./pkgs/bigotes/default.nix { };
@@ -46,7 +49,13 @@ let
wxparaver = callPackage ./pkgs/paraver/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { };
}; };
tests = rec { 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 = {
test = rec {
#hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys #hwloc = callPackage ./test/bugs/hwloc.nix { }; # Broken, no /sys
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { }; #sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
hello-c = callPackage ./test/compilers/hello-c.nix { }; hello-c = callPackage ./test/compilers/hello-c.nix { };
@@ -81,39 +90,21 @@ let
pkgs = filterAttrs (_: isDerivation) bscPkgs; pkgs = filterAttrs (_: isDerivation) bscPkgs;
crossTargets = [ "riscv64" ]; pkgsList = final.runCommand "ci-pkgs" { }
cross = prev.lib.genAttrs crossTargets (target: "printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out";
tests = final.runCommand "ci-tests" { }
"printf '%s\n' ${toString (collect isDerivation final.bsc-ci.test)} > $out";
cross = prev.lib.genAttrs [ "riscv64" ] (target:
final.pkgsCross.${target}.bsc-ci.pkgs final.pkgsCross.${target}.bsc-ci.pkgs
); );
buildList = name: paths: all = final.runCommand "ci-all" { }
final.runCommandLocal name { } '' ''
printf '%s\n' ${toString paths} | tee $out deps="${toString [ final.bsc-ci.pkgsList final.bsc-ci.tests ]}"
'';
buildList' = name: paths:
final.runCommandLocal name { } ''
deps="${toString paths}"
cat $deps cat $deps
printf '%s\n' $deps >$out 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;
}; };
} }

View File

@@ -20,6 +20,7 @@
#, python3Packages #, python3Packages
, installShellFiles , installShellFiles
, symlinkJoin , symlinkJoin
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
}: }:
let let
@@ -87,7 +88,7 @@ stdenv.mkDerivation rec {
--enable-sampling --enable-sampling
--with-unwind=${libunwind.dev} --with-unwind=${libunwind.dev}
--with-xml-prefix=${libxml2.dev} --with-xml-prefix=${libxml2.dev}
--with-papi=${papi} ${lib.optionalString enablePapi "--with-papi=${papi}"}
${if (mpi != null) then ''--with-mpi=${mpi}'' ${if (mpi != null) then ''--with-mpi=${mpi}''
else ''--without-mpi''} else ''--without-mpi''}
--without-dyninst) --without-dyninst)

View File

@@ -22,7 +22,11 @@ stdenv.mkDerivation rec {
''; '';
buildInputs = [ libtirpc ]; buildInputs = [ libtirpc ];
patches = [ ./fix-install.patch ./gcc-14.patch ]; patches = [
./fix-install.patch
./gcc-14.patch
./fix-cross.patch
];
hardeningDisable = [ "all" ]; hardeningDisable = [ "all" ];
@@ -35,6 +39,8 @@ stdenv.mkDerivation rec {
CFLAGS=-Wno-implicit-int CFLAGS=-Wno-implicit-int
CPPFLAGS=-I${libtirpc.dev}/include/tirpc CPPFLAGS=-I${libtirpc.dev}/include/tirpc
LDFLAGS=-ltirpc LDFLAGS=-ltirpc
CC=${stdenv.cc.targetPrefix}cc
AR=${stdenv.cc.targetPrefix}ar
) )
''; '';

View File

@@ -0,0 +1,13 @@
diff --git a/src/Makefile b/src/Makefile
index 2555014..356eeb3 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -36,7 +36,7 @@ SHELL=/bin/sh
CC=`../scripts/compiler`
MAKE=`../scripts/make`
-AR=ar
+AR?=ar
ARCREATE=cr
# base of installation location

View File

@@ -16,6 +16,7 @@
, jemallocNanos6 ? null , jemallocNanos6 ? null
, cachelineBytes ? 64 , cachelineBytes ? 64
, enableGlibcxxDebug ? false , enableGlibcxxDebug ? false
, 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"
@@ -47,6 +48,8 @@ let
}; };
source = if (useGit) then git else release; source = if (useGit) then git else release;
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
in in
stdenv.mkDerivation (source // { stdenv.mkDerivation (source // {
pname = "nanos6"; pname = "nanos6";
@@ -71,9 +74,11 @@ in
"--disable-all-instrumentations" "--disable-all-instrumentations"
"--enable-ovni-instrumentation" "--enable-ovni-instrumentation"
"--with-ovni=${ovni}" "--with-ovni=${ovni}"
"--with-boost=${boost.dev}"
] ++ ] ++
(optional enableJemalloc "--with-jemalloc=${jemallocNanos6}") ++ (optional enableJemalloc "--with-jemalloc=${jemallocNanos6}") ++
(optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG"); (optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG") ++
(optional isCross "--with-symbol-resolution=ifunc");
postConfigure = lib.optionalString (!enableDebug) '' postConfigure = lib.optionalString (!enableDebug) ''
# Disable debug # Disable debug
@@ -97,16 +102,14 @@ in
# TODO: papi_version is needed for configure: # TODO: papi_version is needed for configure:
# ./configure: line 27378: papi_version: command not found # ./configure: line 27378: papi_version: command not found
# This probably breaks cross-compilation # This probably breaks cross-compilation
papi ] ++ lib.optionals enablePapi [ papi ];
];
buildInputs = [ buildInputs = [
boost boost
numactl numactl
hwloc hwloc
papi
ovni ovni
]; ] ++ lib.optionals enablePapi [ papi ];
# Create a script that sets NANOS6_HOME # Create a script that sets NANOS6_HOME
postInstall = '' postInstall = ''

View File

@@ -7,7 +7,7 @@
, numactl , numactl
, hwloc , hwloc
, papi , papi
, enablePapi ? true , enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
, cacheline ? 64 # bits , cacheline ? 64 # bits
, ovni ? null , ovni ? null
, useGit ? false , useGit ? false