Merge bscpkgs into jungle #189

Manually merged
rarias merged 1013 commits from merge-bscpkgs into master 2025-10-07 16:12:34 +02:00
Owner

Kaboom

Kaboom
rarias added 1010 commits 2025-10-07 12:40:07 +02:00
It does not work yet due to a gcc compilation issue.
The bindnow hardening option is incompatible with the ifunc symbol
resolution mechanism. All hardening is disabled as well.
The -D_GNU_SOURCE define is required before mcc includes nanos6.h
This reverts commit 215b104174e7bdcf9dfe6727683261eea54d036f.
Fixes #5
Weird run times with srun: Two exceed 20%. Relative times:

0.998649        0.998936        0.999409        1.00018         1.00191
0.998684        0.998936        0.999432        1.00041         1.00222
0.998776        0.999065        0.999527        1.00126         1.0024
0.998786        0.999084        0.999558        1.00138         1.00242
0.998856        0.999102        0.999727        1.00155         1.25585
0.998895        0.9992          0.999849        1.0018          1.27138
[its default value is clangOmpss2]
Fixes issue #28
Fixes #30
Saiph changes

- nix-shell changes
- useless exports avoided

See merge request rarias/bscpkgs!1
Creams

See merge request rarias/bscpkgs!2
Was fixed in 7e1a5128b6
The verbose make flag is added to ensure the log contains the complete
compilation line.
See #37
Saiph

See merge request rarias/bscpkgs!3
Seems that gcc compilation with OpenMP throws an error. Investigate.
I think I've forgot to add an override of mpicxx compiler backend
Hpcg

See merge request rarias/bscpkgs!4
NBody Experiments

See merge request rarias/bscpkgs!5
Fixes issue #51
Also perl is a new dependency now
The experiment directory now contains symlinks to the units, keeping the
old structure. The unit results are directly placed in the garlic out
directory.
Fixes #43
Now each run is executed in a independent folder
Modify nbody to evenly distribute blocks per cpu
The configure flags are no longer required.
Is already provided in stdenv as we use llvm10, and otherwise it
will pull clang 7 as dependency.
The systemd dependency is pulled anyway
Until nanos6 release is complete, we don't want frequent large rebuilds
Introduces a intermediate derivation that can be imported into the
report derivation, which contains a string cmd that expands the fig
variable as needed.
Saiph

See merge request rarias/bscpkgs!6
The bsc attrset is now extensible: replacing a few bsc packages is very
fast. Also we allow the complete bscpkgs to be within other custom
overlays (not tested yet).
Now the options	cpusPerTask ntasksPerNode nodes and jobName are required
for the sbatch stage. Also cpuBind has been removed and is always set to
"cores,verbose" in the srun stage.
Try to avoid manually setting the hardware specs and rather use
the hw attrset.
Generate the input based on the target machine description.
Use machine agnostic specification for resources
Fixes a problem with i3 when opening a new timeline view, which caused a
rapid switch between paraver main window and the timeline.
All bash variables passed in env, pre or post are now expanded at
execution time..
It allows getExperimentStage to be called from any stage above the
experiment.
- All garlic stuff is moved into garlic/
- Group the overlay index by sections
- Add a garlic/default.nix link to the main default.nix, so we can
  build derivations at garlic/
This prevents srun from silently returning with an error, without
actually queueing the job of a run.
Fixes #82
This matches the fortran format for creams
We want to override the previous layer (super), not the last one (self).
Fixes the fallocate problem
We need exit on the first error, as otherwise we cannot track a bad
execution when no exec is done (when post is not empty).
Allow single line commands like pre="true"
Fixes #87
These targets allow one experiment to directly refer to another
experiment results, thus a dependency chain can be formed to ensure
execution order.

It also simplifies the dataset definition, as they can be automatically
fetched from the experiment directly.
Datasets are now handled directly when creating the figures, via the
timetable attribute.
Added HTML output
The garlicd is now available under garlic.garlid and it requires the
extra-sandbox-path option to be properly set.
We check the result in the next if.
The bscpkgs/default.nix is not longer read, as the garlic tool only
needs it for the fetching (-F), when it runs nix-build.
Update the garlicd usage as well.
It has now been integrated with resultTree in pp/store.nix
This change will cause a rebuild of all experiments.
We may have compressed input datasets
The callPackage function was trying to find packages in bsc.self before
the self of the input parameters.
The blocksize is now specified at runtime
We can only read one output file by now, located at:
.garlic/perf.csv
It allows an experiment to store a CTF trace in the resultTree (which is
not recommended for large traces).
It will be used to cut the CTF traces to take only the computation part
in cosideration.
Nanos6 has jemalloc enabled by default
The PREFIX must be set both at build and install time.
It seems that bash is unable to propagate the SIGINT while
reading from the FIFO. This fixes the anoying ^C^C^C problems
found when running garlicd.
Ensure only one Slurm process performs environment operations
This temporal fix allows the experiment to ignore the nanos6.toml in the
git repository, and only set version.dependencies variable.
Only the hybrid experiment is used by now
This option allows an experiment to inject commands before srun starts,
while keeping the standard srun stage options.
Large experiments have the enableExtended parameter disabled by default,
which enables more tests.
It is no longer used, as we have moved to the release library version.
The current app Heat3D_vect has a long initialization time
Remove unused environment variables as well.
Ensure cuts in a single dimension
As we would be extracting perf stats from the trace processing steps.
The awk script doesn't take in consideration the events close to the cut
points, which are significative with low parallelism.
The HWC version is not yet complete.
All branches compile with several hacks.
The fwiInput derivation must be the same used when compiled the fwi app
as the fwi-input used in the experiment.
The data reuse experiment shows the effect of poor data locality versus
task granularity.
The previous iniput size for both granularity and strong scaling tests
where too big to meet the timing constrains needed for garlic. This
patch sets a new, smaller, input size.

Also, a minor cleanup is applied to the rest of the fwi experiments
and figures.
Additional options are only active with enableExtended = true
A common.nix file contains the shared stages
The getResources function is used to assign the proper cpu binding
depending on the version. However, additional contraints are required to
ensure that we have enough points in Y.

By default the mpi+send+seq branch is disabled.
The ModelGenerator is now included in the fwi-params, so that the input
can be generated at runtime.
Also, keep the names short and consistent.
As we are using local storage, we need a copy of the input in every
node. The current method is to run the generator only in the rank which
has assigned the cpu 0 in the mask.
The enableExtended parameter control if the experiment runs with
multiple nodes or only one.
The current srun version used in MN4 returns 0 if the program crashes
after MPI_Finalize, as shown by this test.
This workaround stage prevents srun from returning 0 to the upper stages
when a signal happens after MPI_Finalize. It writes the return code to a
file named .srun.rc.$rank and later checks that exists and contains a 0.

When the program is killed, exits with non-zero and the error is
propagated to the baywatch stage, which aborts immediately without
creating the rc file.
Ensure that we can catch a sigsegv signal before and after the
MPI_Finalize call.
This check prevents a user from removing units between the
execution of the experiment and the fetch.
So we can parse the experiment configuration in JSON
Tests unit bad exits
- oss.nix runs valid hpcg layouts whereas slices.nix does not
HPCG rounds problem size axis when its value is < 16
- The file gen.nix now provides an experiment for each unit, to reduce
  the evaluation time.

- The pipeline is specified in the common.nix file only.

- The input dataset path is no longer symlinked, but is specified in the
  "--load" argument.

- The size is renamed to "sizePerTask" instead of "n".
The scaling.nix file defines both the strong and weak experiments by
using the parameter "enableStrong".
Allows easy migration of the git server for all the apps and
reduces the boiler plate in the derivations.
The input dataset is not enough to determine which script produced a
given plot.
The ISOLatin1 encoding uses /minus as char 45, while the (-) symbol used
in the paths is a /hyphen. This hack allows the paths in the generated
PDFs to be copied directly into a terminal.
The parallel build fails with high probability due to incorrect
dependencies in the Makefile, which lead to an attemp to link too soon.
libelf is now replaced by elfutils
Absolute paths are not supported and cause a silent error when
installing the clang++ and other symlinks. See:

d93a11c138
58580e922a
Add clangOmpss2Git to the overlay overriding the src attribute of the
release nix derivation, so we only keep one derivation for both
variants.
Dropping wxpropgrid. Now it needs to link with openssl.
Older LLVM 11 version produces a broken compiler, see:
https://pm.bsc.es/gitlab/llvm-ompss/llvm-mono/-/issues/183
The zlib is required by the lld linker to work with zlib compressed
sections in the ELF header. We also set the LD_LIBRARY_PATH during the
build, as otherwise the llvm-tblgen binary is unable to find the zlib
library, as its missing the directory in the rpath.
Instead of using LD_LIBRARY_PATH we provide the rpath from cmake, as
otherwise the clang compiler is also missing the dependency.
Fixes the problem where the triple used by newer versions of
config.guess don't match due to a change in x86 from
x86_64-unknown-linux-gnu to x86_64-pc-linux-gnu.
It dramatically reduces the size of the installation to 250 MiB. We also
need to inject the rpath of the libraries during the build phase with
CMAKE_BUILD_RPATH as well as zlib. The CMAKE_BUILD_WITH_INSTALL_PATH
option is disabled, as it contradicts the former.
This reverts commit a3e1047f515e90292eadbe9dbc5f3aa00ba87730.
Reviewed-By: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
This is needed since nosv must appear as a 1rst level dependency on the
final executable. Clang will add the dependency as long as it knows
where to find nosv (and nodes is used).

Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
There are important assertions for OmpSs-2 to catch early bugs. Building
without asserts enabled causes warnings due to unused variables.

Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Some llvm versions do not generate the intel and gomp support libraries
and the post install script fails because it cannot remove them. This
patch makes removal optional.

Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
callPackage was overriding the inner callPackage override, which made
overriding the clang derivation through the override function impossible.

Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
For now, we keep dontStrip for packages that already had it for systems
without the separatedebuginfo support.

Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Flake lock file updates:

• Updated input 'nixpkgs':
    'path:/nix/store/s4jqyj35hii03rs7j5n6vn7gpgp6ja81-source?lastModified=1692447944&narHash=sha256-fkJGNjEmTPvqBs215EQU4r9ivecV5Qge5cF/QDLVn3U%3D&rev=d680ded26da5cf104dd2735a51e88d2d8f487b4d' (2023-08-19)
  → 'path:/nix/store/z7y28qzhk7driiwcw78k0mb24laknm0f-source?lastModified=1700390070&narHash=sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0%3D&rev=e4ad989506ec7d71f7302cc3067abd82730a4beb' (2023-11-19)

Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
The alias pkgconfig has been removed.

Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
The pkgsStatic.libcap dependency fails to build.

Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
The libraries and includes are no longer in the default output, so we
merge them in a single directory using symlinkJoin.

Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
The binaries generated during the build process of clang are missing the
RPATH of the libstdc++.so library, which is provided by gcc libs.
Similarly, the clang binary itself also needs the rpath to the
libstdc++.so library path.

Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
The build is broken and the official Paraver already merged support
for fast trace loading.

Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
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>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Clang nos-v-merge branch has been merged into master.

Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-By: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
In order to reduce duplicate information we just place the two sources
in the same file.

Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@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>
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>
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>
Reviewed-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>
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>
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 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>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-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>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested with:

hut% nix build .#bsc-ci.all
hut% nix build .#pkgsCross.riscv64.ovni

Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Aleix Boné <aleix.boneribo@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
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>
The autoreconfHook helper already provides autotools binaries. Also NODES
no longer uses papi.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@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>
Flake lock file updates:

• Updated input 'nixpkgs':
    'path:/nix/store/z7y28qzhk7driiwcw78k0mb24laknm0f-source?lastModified=1700390070&narHash=sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0%3D&rev=e4ad989506ec7d71f7302cc3067abd82730a4beb' (2023-11-19)
  → 'path:/nix/store/2csx2kkb2hxyxhhmg2xs9jfyypikwwk6-source?lastModified=1736867362&narHash=sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8%3D&rev=9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc' (2025-01-14)

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Some MPI implementations now have their headers in the dev output as
well as the mpicc wrappers.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
The stdenv no longer provides it by default.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
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>
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>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
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>
Now it needs libtirpc to provide rpc/rpc.h, as it seems it is gone from
libc. We also fix the install target so it installs the additional
benchmarks.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Tested-by: Aleix Boné <abonerib@bsc.es>
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 <...>
```

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Flake lock file updates:

• Updated input 'nixpkgs':
    'path:/nix/store/2csx2kkb2hxyxhhmg2xs9jfyypikwwk6-source?lastModified=1736867362&narHash=sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8%3D&rev=9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc' (2025-01-14)
  → 'path:/nix/store/zk8v61cpk1wprp9ld5ayc1g5fq4pdkwv-source?lastModified=1752436162&narHash=sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw%3D&rev=dfcd5b901dbab46c9c6e80b265648481aafb01f8' (2025-07-13)

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
In the future, we may want to look if those symlinks are needed.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
GPI-2 fails to build, which is needed for TAGASPI.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
We need to add the gcc in the PATH, but adding it directly to $PATH
doesn't work, as it will be restored to $path_backup before icc runs. So
for now we simply inject it to path_backup, but ideally we should find a
more robust solution.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Intel compiler for C++ (icpc) is not able to parse the location of C++
headers from the output of gcc 14, but works fine for gcc 13.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Adds a new patch to fix libxml2: the m4 AM_PATH_XML2 macro has been
deprecated and is no longer included in the latest nixpkgs unstable.
Upstream recommends using `PKG_CHECK_MODULES` instead.

Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
See: https://github.com/bsc-performance-tools/wxparaver/issues/18
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
To support the new instrumentation for HWC it would be useful to already
build nOS-V with PAPI support enabled. The enablePapi switch allows it
to be disabled with `nosv.override { enablePapi = false; }`.

Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
The rdma-core driver.h include is no longer installed:

 56dd87acd2

So ibv_read_sysfs_file() is not defined. As the symbols is still
distributed, we simply add the missing prototype manually.

Similarly, the gaspi_get_system_mem() function is not available from the
gaspi public headers, so we define it in the max_mem.c test.

Fixes: rarias/bscpkgs#7
Reviewed-by: Aleix Boné <abonerib@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Currently, we can use bscpkgs similarly to nixpkgs either through
the flake outputs or with import bscpkgs:

```nix
# currently supported:
bscpkgs.legacyPackages.x86_64-linux.hello
let pkgs = import bscpkgs { system = "x86_64-linux"; }; in pkgs.hello
```
The missing piece is nixpkgs.lib (not pkgs.lib, the system agnostic
one). The workaround is to do bscpkgs.inputs.nixpkgs.lib instead. We can
simplify this by forwarding the lib to our outputs.

This enables us to use bscpkgs as a drop-in
replacing the inputs to our flake from nixpkgs to bscpkgs.
(inputs.nixpkgs.url = "<*BSC*pkgs url>").


Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Aleix Boné <abonerib@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Builds the .#bsc-ci.all target on each PR. Causes all packages to be
built in hut, populating the nix cache.

Reviewed-by: Aleix Boné <abonerib@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Reviewed-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
Tested-by: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
rarias force-pushed merge-bscpkgs from 5ce931db42 to 5d99acc02e 2025-10-07 12:41:24 +02:00 Compare
rarias added 2 commits 2025-10-07 14:34:40 +02:00
Update gitlab CI after merge
All checks were successful
CI / build:all (pull_request) Successful in 15s
240a705fa7
rarias added 1 commit 2025-10-07 14:39:25 +02:00
Update license year range to 2025
All checks were successful
CI / build:all (pull_request) Successful in 18s
9f3bbfe606
rarias changed title from WIP: Merge bscpkgs into jungle to Merge bscpkgs into jungle 2025-10-07 14:41:09 +02:00
rarias requested review from abonerib 2025-10-07 14:41:21 +02:00
rarias requested review from arocanon 2025-10-07 14:41:22 +02:00
abonerib approved these changes 2025-10-07 14:51:45 +02:00
rarias force-pushed merge-bscpkgs from 9f3bbfe606 to 44cc60fcd8 2025-10-07 16:10:52 +02:00 Compare
rarias manually merged commit 44cc60fcd8 into master 2025-10-07 16:12:34 +02:00
rarias removed review request for arocanon 2025-10-10 14:41:30 +02:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rarias/jungle#189
No description provided.