Rodrigo Arias Mallo
3d8c84e17c
When the width of size_t doesn't match the width of the unsigned long long type, the number of leading zeros doesn't match, making the heap_get_move() function return incorrect values. This is the case on ARMv7 with 32 bits, where size_t is 32 bits but unsigned long long is 64 bits. We check the size of size_t to select which builtin we need. The sizeof operator cannot be used at preprocessing, so we rely on the optimizations to only leave the proper assembly instruction. Fixes: https://pm.bsc.es/gitlab/rarias/ovni/-/issues/193 |
||
---|---|---|
.gitea/workflows | ||
cfg | ||
cmake | ||
doc | ||
include | ||
src | ||
test | ||
.clang-format | ||
.gitignore | ||
.gitlab-ci.yml | ||
.readthedocs.yaml | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
COPYING | ||
flake.lock | ||
flake.nix | ||
mkdocs.yml | ||
README.md |
The ovni project is composed of a runtime library (libovni.so), which generates a fast binary trace, and post-processing tools such as the emulator ovniemu, which transform the binary trace to the PRV format, suitable to be loaded in Paraver.
The libovni.so library is licensed under MIT, while the rest of tools are GPLv3 unless otherwise stated.
For more information, read the documentation online or take a look at the
doc/ directory. You can display the documentation in HTML by running mkdocs serve
from the root directory.
To build ovni you would need a C compiler, MPI and cmake version 3.20 or newer.
To compile in build/ and install into $prefix
use:
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=$prefix ..
$ make
$ make install
To run the tests you can run (from the build directory):
$ make test
See cmake(1) and cmake-env-variables(7) to see more information about the variables affecting the generation and build process.