Archived
1
0
forked from rarias/bscpkgs

4 Commits

Author SHA1 Message Date
78c6090168 Use nixpkgs from flake.lock and support attrs when importing bscpkgs
This makes `nix-build` and friends use the current flake lock instead of
the outdated pinned version we had in `./nixpkgs.nix`

With this, `nix-build -A ovni` and `nix build .#ovni` should produce the
same result.

This will fail if the flake nixpkgs input does not come from NixOS/nixpkgs.
We could use edolstra/flake-compat instead, but it's overkill imho.

Additionally, I made default.nix behave like nixpkgs, so that we can
import bscpkgs à la nixpkgs (Apply overlays and other options that nixpkgs
accepts):

```nix
let pkgs = import bscpkgs { inherit system; }; in <...>
```
2025-06-16 11:59:38 +02:00
8e5b2dc5cc Fix C runtime objects path in OmpSs-2 LLVM
Some gcc versions append an extension to the patch version number, but
this extension is not part of the installation path. This patch removes
the extension to the patch version.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-06-02 08:58:19 +02:00
f89cd4d7e2 Remove dangling libomp.so symlink
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-06-02 08:57:23 +02:00
f962816eab Update PM gitlab URL to new server bscpm04.bsc.es
The old server has died, so we move to the new URL at bscpm04.bsc.es.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
2025-03-07 15:21:11 +01:00
13 changed files with 35 additions and 32 deletions

View File

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

View File

@@ -1,9 +0,0 @@
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

@@ -7,7 +7,7 @@
, mpi , mpi
, tampi , tampi
, gitBranch ? "master" , gitBranch ? "master"
, gitURL ? "ssh://git@bscpm03.bsc.es/rarias/bench6.git" , gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
, gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d" , gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d"
}: }:

View File

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

View File

@@ -14,7 +14,7 @@
, gcc # needed to set the rpath of libstdc++ for clang-tblgen , gcc # needed to set the rpath of libstdc++ for clang-tblgen
, enableDebug ? false , enableDebug ? false
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm03.bsc.es/llvm-ompss/llvm-mono.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "8c0d267c04d7fc3fb923078f510fcd5f4719a6cc" , gitCommit ? "8c0d267c04d7fc3fb923078f510fcd5f4719a6cc"
}: }:

View File

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

View File

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

View File

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

View File

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

View File

@@ -17,7 +17,7 @@
, cachelineBytes ? 64 , cachelineBytes ? 64
, enableGlibcxxDebug ? false , enableGlibcxxDebug ? false
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm03.bsc.es/nanos6/nanos6" , gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "9f54c988e0a8b9c011d9d526acdb8d76f18fcae4" , gitCommit ? "9f54c988e0a8b9c011d9d526acdb8d76f18fcae4"
}: }:

View File

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

View File

@@ -6,7 +6,7 @@
, fetchFromGitHub , fetchFromGitHub
, useGit ? false , useGit ? false
, gitBranch ? "master" , gitBranch ? "master"
, gitUrl ? "ssh://git@bscpm03.bsc.es/rarias/ovni.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
, gitCommit ? "a7103f8510d1ec124c3e01ceb47d1e443e98bbf4" , 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)

View File

@@ -13,7 +13,7 @@
, enableOvni ? true , enableOvni ? true
, ovni ? null , ovni ? null
, useGit ? false , useGit ? false
, gitUrl ? "ssh://git@bscpm03.bsc.es/interoperability/tampi.git" , gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git"
, gitBranch ? "master" , gitBranch ? "master"
, gitCommit ? "a5c93bf8ab045b71ad4a8d5e2c991ce774db5cbc" , gitCommit ? "a5c93bf8ab045b71ad4a8d5e2c991ce774db5cbc"
}: }: