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` will 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): `import bscpkgs { overlays = [ <...> ]; }`
The src.rev attribute is not available as it comes from source before
the recursive operator. Instead, simply get it from the function inputs.
Cc: Aleix Boné <aleix.boneribo@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
By default it is set to 64 bits. The cacheline parameter is required
when cross-compiling nOS-V, as it cannot be read from the build machine.
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Move NODES build tools to nativeBuildInputs. This is needed for
cross-compilation, given that build tools must much the build system.
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
It looks like after upgrading the compiler the build breaks. The patch
simply adds the missing cstdint include, until a new release is made.
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Allows users to see which commit (or git tag) was used in clang.
Examples for the release and git versions:
% clang --version
clang version 18.0.0 (18.0.0-ompss-2)
% clang --version
clang version 18.0.0 (0a6d6c6)
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Needed to fix the error on NixOS:
GLib-GIO-ERROR **: No GSettings schemas are installed on the system
See https://github.com/NixOS/nixpkgs/issues/16285
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Allows building OpenMP-V with ovni support, which is neccessary to run
the runtime tests of OpenMP-V in ovni.
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
The openmp derivation provides both libomp and libompv. To avoid
accidentally linking with the wrong library and to avoid the nosv
dependency on libomp, this patch separates each version in a different
derivation.
Also, it adapts the clang wrappers and stdenvs to provide an stdenv per
openmp library where each openmp will be used by default when the
compiler flag "-fopenmp" is used. This eases linking ompv with nixpkgs
libraries, such as blis, that expect openmp to be provided with stdenv.
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Add a test to verify that "clang -fopenmp=libompv" links correctly with
nOS-V even though it is not placed in the buildInputs.
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
As the OpenMP-V implementation requires to be built with nOS-V, we can
split the OpenMP package in a different derivation to prevent rebuilds
of clang. Additionally, as OpenMP-V now can be build alongside the
vanilla OpenMP runtime, we simply build a single openmp derivation with
both runtimes. Only a single build of the clang compiler is now
required.
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
By default we build TAMPI with ovni support, as it will be disabled in
runtime unless explicitly enabled by the TAMPI_INSTRUMENT=ovni
environment variable.
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
In this test we ensure that the worksharing region is running inside a
nOS-V task, so we know that we are not using the vanilla OpenMP by
accident.
We also keep the previous test test/compilers/clang-openmp.nix as-is, so
we can check that the compiler injects the nosv library dependency in
the final binary on its own.
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>