forked from rarias/jungle
Compare commits
465 Commits
remove-old
...
old-master
| Author | SHA1 | Date | |
|---|---|---|---|
| 5cfd7f0858 | |||
| 9c5e22d62d | |||
| 00fe0f46a1 | |||
| 79940876c3 | |||
| 163d19bd05 | |||
| 360f67cfab | |||
| a402bc880c | |||
| c441178910 | |||
| 9c3fbc0ec9 | |||
| 3f8e6b9fcd | |||
| 08e4dda6d2 | |||
| 26a4a26ce0 | |||
| 3380ec5e05 | |||
| e934a2bc9d | |||
| 3387cbcc25 | |||
| 017e0d82f7 | |||
| ac5f4e4dca | |||
| 8835dbd764 | |||
| 84830c66e6 | |||
| cad88f92a8 | |||
| 40372cd0d9 | |||
| 4e0e96f6fe | |||
| b021789a6e | |||
| 3ab0e13960 | |||
| 0166686b6a | |||
| d3b355f651 | |||
| 2ed881cd89 | |||
| 2a07df1d30 | |||
| 52380eae59 | |||
| 2fe84c4cbc | |||
| 3b16b41be3 | |||
| ee481deffb | |||
| b1bad25008 | |||
| 85f38e17a2 | |||
| 08ab01b89c | |||
| 194a6fb7f6 | |||
| 365576778b | |||
| e7490858c6 | |||
| 7606030135 | |||
| e55590f59e | |||
| c3da39c392 | |||
| d3889b3339 | |||
| 28540d8cf3 | |||
| f847621ceb | |||
| 12fe43f95f | |||
| 0e8329eef3 | |||
| df3b21b570 | |||
|
78df61d24a
|
|||
|
8e7da73151
|
|||
|
a7e17e40dc
|
|||
| 0e8bd22347 | |||
| d948f8b752 | |||
| 8f7787e217 | |||
| 30b9b23112 | |||
| 9a056737de | |||
| ac700d34a5 | |||
| 9b681ab7ce | |||
| 9ce394bffd | |||
| 8cd7b713ca | |||
| 8eed90d2bd | |||
| aee54ef39f | |||
| 69f7ab701b | |||
| 4c9bcebcdc | |||
| 86e7c72b9b | |||
| a7dffc33b5 | |||
| 6765dba3e4 | |||
| 0acfb7a8e0 | |||
| dfbb21a5bd | |||
| 2bb3b2fc4a | |||
| 3270fe50a2 | |||
| 499112cdad | |||
| a6698e6a6b | |||
| b394c5a8f4 | |||
| 3d5b845057 | |||
| 9e83565977 | |||
| ce2cda1c41 | |||
| e6aef2cbd0 | |||
| b7603053fa | |||
| 3ca55acfdf | |||
| e505a952af | |||
| 3ad9452637 | |||
| fdd21d0dd0 | |||
| c40871bbfe | |||
| e8f5ce735e | |||
| 4a25056897 | |||
| 89e0c0df28 | |||
| 1b731a756a | |||
| 3d97fada6d | |||
| d1a2bfc90e | |||
| 44e76ce630 | |||
| adb7e0ef35 | |||
| b0875816f2 | |||
| 592da155a9 | |||
| 5376613ec4 | |||
| 74891f0784 | |||
| d66f9f21dd | |||
| cb05482b4f | |||
| e660268661 | |||
| d45b7ea717 | |||
| c205fa4e34 | |||
| 5f055388a5 | |||
| 0bc69789d9 | |||
| 09bc9d9c25 | |||
| 6b53ab4413 | |||
| 4618a149b3 | |||
| 448d85ef9d | |||
| 956b99f02a | |||
| ec2eb8c3ed | |||
| 09a5bdfbe4 | |||
| c49dd15303 | |||
| 38fd0eefa3 | |||
| e386a320ff | |||
| 5ea8d6a6dd | |||
| 7b108431dc | |||
| e80b4d7c31 | |||
| e4c22e91b2 | |||
| 27d4f4f272 | |||
| 978087e53a | |||
| ad9a5bc906 | |||
| 7aeb78426e | |||
| a0d1b31bb6 | |||
| a7775f9a8d | |||
| 7bb11611a8 | |||
| cf9bcc27e0 | |||
| 81073540b0 | |||
| a43f856b53 | |||
| be231b6d2d | |||
| 2f2381ad0f | |||
| 19e90a1ef7 | |||
| 090100f180 | |||
| 3d48d224c9 | |||
| 0317f42613 | |||
| efac36b186 | |||
| d2385ac639 | |||
| d28ed0ab69 | |||
| 1ef6f9a2bb | |||
| 86b7032bbb | |||
| 8c5f4defd7 | |||
| b802a59868 | |||
| 7247f7e665 | |||
| 1d555871a5 | |||
| a2535c996d | |||
| 37e60afb54 | |||
| 3fe138a418 | |||
| 4e7a9f7ce4 | |||
| a6a1af673a | |||
| 2a3a7b2fb2 | |||
| b4ab1c836a | |||
| fb8b4defa7 | |||
| 1bcfbf8cd6 | |||
| 9f43a0e13b | |||
| 3a3c3050ef | |||
| 4419f68948 | |||
| e51fc9ffa5 | |||
| 2ae9e9b635 | |||
| be77f6a5f5 | |||
| 6316a12a67 | |||
| db663913d8 | |||
| b4846b0f6c | |||
| 64a52801ed | |||
| 7a2f37aaa2 | |||
| aae6585f66 | |||
| 1c15e77c83 | |||
| 82fc3209de | |||
| abeab18270 | |||
| 1985b58619 | |||
| 44bd061823 | |||
| e8c309f584 | |||
| 71ae7fb585 | |||
| 8834d561d2 | |||
| 29daa3c364 | |||
| 9c503fbefb | |||
| 51b6a8b612 | |||
| 52213d388d | |||
| edf744db8d | |||
| b82894eaec | |||
| 1c47199891 | |||
| 8738bd4eeb | |||
| 7699783aac | |||
| fee1d4da7e | |||
| b77ce7fb56 | |||
| b4a12625c5 | |||
| 302106ea9a | |||
| 96877de8d9 | |||
| 8878985be6 | |||
| 737578db34 | |||
| 88555e3f8c | |||
| feb2060be7 | |||
| 00999434c2 | |||
| 29d58cc62d | |||
| 587caf262e | |||
| 2730404ca5 | |||
| 84db5e6fd6 | |||
| f4f34a3159 | |||
| 91b8b4a3c5 | |||
| 6cad205269 | |||
| c57bf76969 | |||
| ad4b615211 | |||
| b4518b59cf | |||
| 45dc4124a3 | |||
| bdfe9a48fd | |||
| 1b337d31f8 | |||
| 717cd5a21e | |||
| def5955614 | |||
| 0e3c975cb5 | |||
| 93189a575e | |||
| 36592c44eb | |||
| a34e3752a2 | |||
| 0d2dea94fb | |||
| 7f539d7e06 | |||
| f8ec090836 | |||
| 9a9161fc55 | |||
| 1a0cf96fc4 | |||
| 4bd1648074 | |||
| 15b114ffd6 | |||
| dd6d8c9735 | |||
| e15a3867d4 | |||
| 5cad208de6 | |||
| c8687f7e45 | |||
| d988ef2eff | |||
| b07929eab3 | |||
| b3e397eb4c | |||
| 5ad2c683ed | |||
| 1f06f0fa0c | |||
| 8ca1d84844 | |||
| 998f599be3 | |||
| fcfc6ac149 | |||
| 6e87130166 | |||
| 06f9e6ac6b | |||
| da07aedce2 | |||
| 61427a8bf9 | |||
| 958ad1f025 | |||
| 1c5f3a856f | |||
| 4e2b80defd | |||
| 1c8efd0877 | |||
| 4c5e85031b | |||
| 5688823fcc | |||
| 72faf8365b | |||
| 0e22d6def8 | |||
| 22cc1d33f7 | |||
| 15085c8a05 | |||
| 06748dac1d | |||
| 63851306ac | |||
| 2bdc793c8c | |||
| 85d1c5e34c | |||
| e6b7af5272 | |||
| c0ae8770bc | |||
| 5b51e8947f | |||
| db2c6f7e45 | |||
| 8e8f9e7adb | |||
| d2adc3a6d3 | |||
| 76cd9ea47f | |||
| 2f851bc216 | |||
| 834d3187e5 | |||
| 49be0f208c | |||
| fb23b41dae | |||
| 005a67deaf | |||
| f8097cb5cb | |||
| ff792f5f48 | |||
| 5c48b43ae0 | |||
| b299ead00b | |||
| a92432cf5a | |||
| 82f5d828c2 | |||
| 35a94a9b02 | |||
| b6bd31e159 | |||
| 1d4badda5b | |||
| bd5214a3b9 | |||
| c32f6dea97 | |||
| dd341902fc | |||
| 190e273112 | |||
| 268807d1d0 | |||
| 2953080fb8 | |||
| 9871517be2 | |||
| 736eacaac5 | |||
| 0e66aad099 | |||
| 67a4905a0a | |||
| d52d22e0db | |||
| 42920c2521 | |||
| 4acd35e036 | |||
| 621d20db3a | |||
| 0926f6ec1f | |||
| 61646cb3bd | |||
| c0066c4744 | |||
| ffd0593f51 | |||
| f49ae0773e | |||
| 8fa3fccecb | |||
| 9ee7111453 | |||
| 8de3d2b149 | |||
| bc62e28ca3 | |||
| d612a5453c | |||
| 653d411b9e | |||
| 51c57dbc41 | |||
| 33cd40160e | |||
| a1e8cfea47 | |||
| 5d72ee3da3 | |||
| fdc6445d47 | |||
| e88805947e | |||
| aaefddc44a | |||
| d9d249411d | |||
| c07f75c6bb | |||
| 8d449ba20c | |||
| 10ca572aec | |||
| 75b0f48715 | |||
| 19a451db77 | |||
| ec9be9bb62 | |||
| 7ddd1977f3 | |||
| 7050c505b5 | |||
| 033a1fe97b | |||
| 77cb3c494e | |||
| 6db5772ac4 | |||
| 3e347e673c | |||
| dca274d020 | |||
| c33909f32f | |||
| 64e856e8b9 | |||
| 02f40a8217 | |||
| 77d43b6da9 | |||
| ab55aac5ff | |||
| 9b5bfbb7a3 | |||
| a69a71d1b0 | |||
| 98374bd303 | |||
| 3b6be8a2fc | |||
| 2bb366b9ac | |||
| 2d16709648 | |||
| 9344daa31c | |||
| 80c98041b5 | |||
| 3418e57907 | |||
| 6848b58e39 | |||
| 13a70411aa | |||
| f9c77b433a | |||
| 9d487845f6 | |||
| 3c99c2a662 | |||
| 7d09108c9f | |||
| 0f0a861896 | |||
| beb0d5940e | |||
| 70321ce237 | |||
| 5bd1d67333 | |||
| fad9df61e1 | |||
| d2a80c8c18 | |||
| 599613d139 | |||
| ac4fa9abd4 | |||
| cb3a7b19f7 | |||
| f5d6bf627b | |||
| f1ce815edd | |||
| a2075cfd65 | |||
| 8f1f6f92a8 | |||
| 3416416864 | |||
| 815888fb07 | |||
| 029d9cb1db | |||
| 95fa67ede1 | |||
| a19347161f | |||
| 58c1cc1f7c | |||
| b06399dc70 | |||
| 077eece6b9 | |||
| b3ef53de51 | |||
| e0852ee89b | |||
| dfffc0bdce | |||
| 8257c245b1 | |||
| cd5853cf53 | |||
| b677b827d4 | |||
| b1d5185cca | |||
| a7e66e2246 | |||
| 480c97e952 | |||
| f8fb5fa4ff | |||
| acf9b71f04 | |||
| bf692e6e4e | |||
| c242b65e47 | |||
| 55d6c17776 | |||
| 14b173f67e | |||
| b9001cdf7d | |||
| f892d43b47 | |||
| d9e9ee6e3a | |||
| 79adbe76a8 | |||
| 66fb848ba8 | |||
| 40b1a8f0df | |||
| a0b9d10b14 | |||
| 4c309dea2f | |||
| b3a397eee4 | |||
| 7c1fe1455b | |||
| 2d4b178895 | |||
| 4dd25f2f89 | |||
| 6dcd9d8144 | |||
| 31be81d2b1 | |||
| 826cfdf43f | |||
| a1f258c5ce | |||
| 1c1d3f3231 | |||
| 623d46c03f | |||
| 518a4d6af3 | |||
| 60077948d6 | |||
| c76bfa7f86 | |||
| 6c10933e80 | |||
| 6402605b1f | |||
| 1724535495 | |||
| 5b41670f36 | |||
| ab04855382 | |||
| 684d5e41c5 | |||
| 316ea18e24 | |||
| c916157fcc | |||
| 4e9409db10 | |||
| 94320d9256 | |||
| 9f5941c2be | |||
| fba0f7b739 | |||
| 2e95281af5 | |||
| f4ac9f3186 | |||
| f787343f29 | |||
| 70304d26ff | |||
| 76c10ec22e | |||
| 011e8c2bf8 | |||
| c1f138a9c1 | |||
| 1552eeca12 | |||
| 8769f3d418 | |||
| a4c254fcd6 | |||
| 24fb1846d2 | |||
| 5e77d0b86c | |||
| 494fda126c | |||
| 5cfa2f9611 | |||
| 9539a24bdb | |||
| 98c4d924dd | |||
| 7aae967c65 | |||
| 49f7edddac | |||
| 2f055d9fc5 | |||
| 108abffd2a | |||
| 4c19ad66e3 | |||
| 19c01aeb1d | |||
| fc90b40310 | |||
| 81de0effb1 | |||
| 5ce93ff85a | |||
| c020b9f5d6 | |||
| f47734b524 | |||
| ca3a7d98f5 | |||
| 0d5609ecc2 | |||
| 818edccb34 | |||
| 2815f5bcfd | |||
| c1bbbd7793 | |||
| aa1dd14b62 | |||
| 399103a9b4 | |||
| 74639d3ece | |||
| 613a76ac29 | |||
| c3ea8864bb | |||
| 919f211536 | |||
| 141d77e2b6 | |||
| 44fcb97ec7 | |||
| 543983e9f3 | |||
| 95bbeeb646 | |||
| de2af79810 | |||
| b9aff1dba5 | |||
| 7da979bed2 | |||
| cfe37640ea | |||
| 096e407571 | |||
| ae31b546e7 | |||
| c3a2766bb7 | |||
| b568bb36d4 | |||
| 55f784e6b7 | |||
| dfab84b0ba | |||
| 8f66ba824a | |||
| 79bd4398f3 | |||
| b44afdaaa1 | |||
| 9528fab3ef | |||
| 7e82885d84 | |||
| 57ed0cf319 | |||
| b043ee3b1d | |||
| 9e3bdaabb6 | |||
| 77f72ac939 | |||
| fa25a68571 | |||
|
|
ea0f406849 | ||
|
|
9df6be1b6b |
@@ -1,20 +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
|
||||
build:cross:
|
||||
runs-on: native
|
||||
steps:
|
||||
- uses: https://gitea.com/ScMi1/checkout@v1.4
|
||||
- run: nix build -L --no-link --print-out-paths .#bsc.ci.cross
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,3 +1,3 @@
|
||||
**.swp
|
||||
*.swp
|
||||
/result
|
||||
/misc
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
build:bsc-ci.all:
|
||||
stage: build
|
||||
tags:
|
||||
- nix
|
||||
script:
|
||||
- nix build -L --no-link --print-out-paths .#bsc-ci.all
|
||||
21
COPYING
21
COPYING
@@ -1,21 +0,0 @@
|
||||
Copyright (c) 2020-2025 Barcelona Supercomputing Center
|
||||
Copyright (c) 2003-2020 Eelco Dolstra and the Nixpkgs/NixOS contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -1,9 +0,0 @@
|
||||
# Jungle
|
||||
|
||||
This repository provides two components that can be used independently:
|
||||
|
||||
- A Nix overlay with packages used at BSC (formerly known as bscpkgs). Access
|
||||
them directly with `nix shell .#<pkgname>`.
|
||||
|
||||
- NixOS configurations for jungle machines. Use `nixos-rebuild switch --flake .`
|
||||
to upgrade the current machine.
|
||||
19
default.nix
19
default.nix
@@ -1,19 +0,0 @@
|
||||
let
|
||||
bscOverlay = import ./overlay.nix;
|
||||
|
||||
# read flake.lock and determine revision from there
|
||||
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||
inherit (lock.nodes.nixpkgs.locked) rev narHash;
|
||||
fetchedNixpkgs = builtins.fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz";
|
||||
sha256 = narHash;
|
||||
};
|
||||
in
|
||||
{ overlays ? [ ]
|
||||
, nixpkgs ? fetchedNixpkgs
|
||||
, ...
|
||||
}@attrs:
|
||||
import nixpkgs (
|
||||
(builtins.removeAttrs attrs [ "overlays" "nixpkgs" ]) //
|
||||
{ overlays = [ bscOverlay ] ++ overlays; }
|
||||
)
|
||||
BIN
doc/Intel_Server_Board_S2600WF_TPS_2_6.pdf
Normal file
BIN
doc/Intel_Server_Board_S2600WF_TPS_2_6.pdf
Normal file
Binary file not shown.
BIN
doc/R1000WF_SystemIntegration_and_ServiceGuide_Rev2_4.pdf
Normal file
BIN
doc/R1000WF_SystemIntegration_and_ServiceGuide_Rev2_4.pdf
Normal file
Binary file not shown.
BIN
doc/SEL_TroubleshootingGuide.pdf
Normal file
BIN
doc/SEL_TroubleshootingGuide.pdf
Normal file
Binary file not shown.
BIN
doc/bsc-ssf.pdf
Normal file
BIN
doc/bsc-ssf.pdf
Normal file
Binary file not shown.
@@ -1,30 +0,0 @@
|
||||
# Maintainers
|
||||
|
||||
## Role of a maintainer
|
||||
The responsibilities of maintainers are quite lax, and similar in spirit to
|
||||
[nixpkgs' maintainers][1]:
|
||||
|
||||
The main responsibility of a maintainer is to keep the packages they
|
||||
maintain in a functioning state, and keep up with updates. In order to do
|
||||
that, they are empowered to make decisions over the packages they maintain.
|
||||
|
||||
That being said, the maintainer is not alone in proposing changes to the
|
||||
packages. Anybody (both bots and humans) can send PRs to bump or tweak the
|
||||
package.
|
||||
|
||||
In practice, this means that when updating or proposing changes to a package,
|
||||
we will notify maintainers by mentioning them in Gitea so they can test changes
|
||||
and give feedback.
|
||||
|
||||
Since we do bi-yearly release cycles, there is no expectation from maintainers
|
||||
to update packages at each upstream release. Nevertheless, on each release cycle
|
||||
we may request help from maintainers when updating or testing their packages.
|
||||
|
||||
## Becoming a maintainer
|
||||
|
||||
|
||||
You'll have to add yourself in the `maintainers.nix` list; your username should
|
||||
match your `bsc.es` email. Then you can add yourself to the `meta.maintainers`
|
||||
of any package you are interested in maintaining.
|
||||
|
||||
[1]: [https://github.com/NixOS/nixpkgs/tree/nixos-25.05/maintainers]
|
||||
21
flake.lock
generated
21
flake.lock
generated
@@ -23,6 +23,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"bscpkgs": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749650500,
|
||||
"narHash": "sha256-2MHfVPV6RA7qPSCtXh4+KK0F0UjN+J4z8//+n6NK7Xs=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "9d1944c658929b6f98b3f3803fead4d1b91c4405",
|
||||
"revCount": 961,
|
||||
"type": "git",
|
||||
"url": "https://git.sr.ht/~rodarima/bscpkgs"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.sr.ht/~rodarima/bscpkgs"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -85,6 +105,7 @@
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"bscpkgs": "bscpkgs",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
|
||||
29
flake.nix
29
flake.nix
@@ -3,22 +3,17 @@
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
agenix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
bscpkgs.url = "git+https://git.sr.ht/~rodarima/bscpkgs";
|
||||
bscpkgs.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, agenix, ... }:
|
||||
outputs = { self, nixpkgs, agenix, bscpkgs, ... }:
|
||||
let
|
||||
mkConf = name: nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit nixpkgs agenix; theFlake = self; };
|
||||
specialArgs = { inherit nixpkgs bscpkgs agenix; theFlake = self; };
|
||||
modules = [ "${self.outPath}/m/${name}/configuration.nix" ];
|
||||
};
|
||||
# For now we only support x86
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlays.default ];
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
@@ -36,19 +31,9 @@ in
|
||||
weasel = mkConf "weasel";
|
||||
};
|
||||
|
||||
bscOverlay = import ./overlay.nix;
|
||||
overlays.default = self.bscOverlay;
|
||||
|
||||
# full nixpkgs with our overlay applied
|
||||
legacyPackages.${system} = pkgs;
|
||||
|
||||
hydraJobs = self.legacyPackages.${system}.bsc.hydraJobs;
|
||||
|
||||
# propagate nixpkgs lib, so we can do bscpkgs.lib
|
||||
lib = nixpkgs.lib // {
|
||||
maintainers = nixpkgs.lib.maintainers // {
|
||||
bsc = import ./pkgs/maintainers.nix;
|
||||
};
|
||||
packages.x86_64-linux = self.nixosConfigurations.hut.pkgs // {
|
||||
bscpkgs = bscpkgs.packages.x86_64-linux;
|
||||
nixpkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
./base/hw.nix
|
||||
./base/net.nix
|
||||
./base/nix.nix
|
||||
./base/sys-devices.nix
|
||||
./base/ntp.nix
|
||||
./base/rev.nix
|
||||
./base/ssh.nix
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
{ pkgs, nixpkgs, theFlake, ... }:
|
||||
{ pkgs, nixpkgs, bscpkgs, theFlake, ... }:
|
||||
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(import ../../../overlay.nix)
|
||||
bscpkgs.bscOverlay
|
||||
(import ../../../pkgs/overlay.nix)
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
nix.settings.system-features = [ "sys-devices" ];
|
||||
|
||||
programs.nix-required-mounts.enable = true;
|
||||
programs.nix-required-mounts.allowedPatterns.sys-devices.paths = [
|
||||
"/sys/devices/system/cpu"
|
||||
"/sys/devices/system/node"
|
||||
];
|
||||
}
|
||||
10326
m/eudy/kernel/configs/defconfig
Normal file
10326
m/eudy/kernel/configs/defconfig
Normal file
File diff suppressed because it is too large
Load Diff
10333
m/eudy/kernel/configs/lockdep
Normal file
10333
m/eudy/kernel/configs/lockdep
Normal file
File diff suppressed because it is too large
Load Diff
@@ -23,11 +23,11 @@
|
||||
|
||||
peers = [
|
||||
# List of allowed peers.
|
||||
{
|
||||
{
|
||||
name = "apex";
|
||||
publicKey = "VwhcN8vSOzdJEotQTpmPHBC52x3Hbv1lkFIyKubrnUA=";
|
||||
# List of IPs assigned to this peer within the tunnel subnet. Used to configure routing.
|
||||
allowedIPs = [ "10.106.0.30/32" "10.0.40.7/32" ];
|
||||
allowedIPs = [ "10.106.0.30/32" ];
|
||||
}
|
||||
{
|
||||
name = "raccoon";
|
||||
@@ -40,7 +40,6 @@
|
||||
|
||||
networking.hosts = {
|
||||
"10.106.0.30" = [ "apex" ];
|
||||
"10.0.40.7" = [ "hut" ];
|
||||
"10.106.0.236" = [ "raccoon" ];
|
||||
"10.0.44.4" = [ "tent" ];
|
||||
};
|
||||
|
||||
156
overlay.nix
156
overlay.nix
@@ -1,156 +0,0 @@
|
||||
final: /* Future last stage */
|
||||
prev: /* Previous stage */
|
||||
|
||||
with final.lib;
|
||||
|
||||
let
|
||||
callPackage = final.callPackage;
|
||||
|
||||
bscPkgs = {
|
||||
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
|
||||
bench6 = callPackage ./pkgs/bench6/default.nix { };
|
||||
bigotes = callPackage ./pkgs/bigotes/default.nix { };
|
||||
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
|
||||
clangOmpss2Nanos6 = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nanos6; };
|
||||
clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmp; };
|
||||
clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; };
|
||||
clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { };
|
||||
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
|
||||
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
|
||||
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
|
||||
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
||||
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
||||
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
||||
# https://discourse.nixos.org/t/whats-the-right-way-to-make-a-custom-kernel-module-available/4636
|
||||
linuxPackages = prev.linuxPackages.extend (_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { };
|
||||
});
|
||||
linuxPackages_latest = prev.linuxPackages_latest.extend(_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./pkgs/amd-uprof/driver.nix { };
|
||||
});
|
||||
lmbench = callPackage ./pkgs/lmbench/default.nix { };
|
||||
mcxx = callPackage ./pkgs/mcxx/default.nix { };
|
||||
meteocat-exporter = prev.callPackage ./pkgs/meteocat-exporter/default.nix { };
|
||||
mpi = final.mpich; # Set MPICH as default
|
||||
mpich = callPackage ./pkgs/mpich/default.nix { mpich = prev.mpich; };
|
||||
nanos6 = callPackage ./pkgs/nanos6/default.nix { };
|
||||
nanos6Debug = final.nanos6.override { enableDebug = true; };
|
||||
nixtools = callPackage ./pkgs/nixtools/default.nix { };
|
||||
# Broken because of pkgsStatic.libcap
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/268791
|
||||
#nix-wrap = callPackage ./pkgs/nix-wrap/default.nix { };
|
||||
nodes = callPackage ./pkgs/nodes/default.nix { };
|
||||
nosv = callPackage ./pkgs/nosv/default.nix { };
|
||||
openmp = callPackage ./pkgs/llvm-ompss2/openmp.nix { monorepoSrc = final.clangOmpss2Unwrapped.src; version = final.clangOmpss2Unwrapped.version; };
|
||||
openmpv = final.openmp.override { enableNosv = true; enableOvni = true; };
|
||||
osumb = callPackage ./pkgs/osu/default.nix { };
|
||||
ovni = callPackage ./pkgs/ovni/default.nix { };
|
||||
ovniGit = final.ovni.override { useGit = true; };
|
||||
paraverKernel = callPackage ./pkgs/paraver/kernel.nix { };
|
||||
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
|
||||
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
|
||||
#psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned
|
||||
sonar = callPackage ./pkgs/sonar/default.nix { };
|
||||
stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; };
|
||||
stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; };
|
||||
stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; };
|
||||
stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; };
|
||||
tagaspi = callPackage ./pkgs/tagaspi/default.nix { };
|
||||
tampi = callPackage ./pkgs/tampi/default.nix { };
|
||||
upc-qaire-exporter = prev.callPackage ./pkgs/upc-qaire-exporter/default.nix { };
|
||||
wxparaver = callPackage ./pkgs/paraver/default.nix { };
|
||||
};
|
||||
|
||||
tests = rec {
|
||||
hwloc = callPackage ./test/bugs/hwloc.nix { };
|
||||
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
|
||||
hello-c = callPackage ./test/compilers/hello-c.nix { };
|
||||
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
|
||||
lto = callPackage ./test/compilers/lto.nix { };
|
||||
asan = callPackage ./test/compilers/asan.nix { };
|
||||
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
|
||||
intel2023-icc-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv-icc; };
|
||||
intel2023-icx-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv; };
|
||||
intel2023-icc-cpp = hello-cpp.override { stdenv = final.intelPackages_2023.stdenv-icc; };
|
||||
intel2023-ifort = callPackage ./test/compilers/hello-f.nix {
|
||||
stdenv = final.intelPackages_2023.stdenv-ifort;
|
||||
};
|
||||
clangOmpss2-lto = lto.override { stdenv = final.stdenvClangOmpss2Nanos6; };
|
||||
clangOmpss2-asan = asan.override { stdenv = final.stdenvClangOmpss2Nanos6; };
|
||||
clangOmpss2-task = callPackage ./test/compilers/ompss2.nix {
|
||||
stdenv = final.stdenvClangOmpss2Nanos6;
|
||||
};
|
||||
clangNodes-task = callPackage ./test/compilers/ompss2.nix {
|
||||
stdenv = final.stdenvClangOmpss2Nodes;
|
||||
};
|
||||
clangNosvOpenmp-task = callPackage ./test/compilers/clang-openmp.nix {
|
||||
stdenv = final.stdenvClangOmpss2Nodes;
|
||||
};
|
||||
clangNosvOmpv-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix {
|
||||
stdenv = final.stdenvClangOmpss2NodesOmpv;
|
||||
};
|
||||
clangNosvOmpv-ld = callPackage ./test/compilers/clang-openmp-ld.nix {
|
||||
stdenv = final.stdenvClangOmpss2NodesOmpv;
|
||||
};
|
||||
};
|
||||
|
||||
# For now, only build toplevel packages in CI/Hydra
|
||||
pkgsTopLevel = filterAttrs (_: isDerivation) bscPkgs;
|
||||
|
||||
# Native build in that platform doesn't imply cross build works
|
||||
canCrossCompile = platform: pkg:
|
||||
(isDerivation pkg) &&
|
||||
# Must be defined explicitly
|
||||
(pkg.meta.cross or false) &&
|
||||
(meta.availableOn platform pkg);
|
||||
|
||||
# For now only RISC-V
|
||||
crossSet = { riscv64 = final.pkgsCross.riscv64.bsc.pkgsTopLevel; };
|
||||
|
||||
buildList = name: paths:
|
||||
final.runCommandLocal name { } ''
|
||||
printf '%s\n' ${toString paths} | tee $out
|
||||
'';
|
||||
|
||||
buildList' = name: paths:
|
||||
final.runCommandLocal name { } ''
|
||||
deps="${toString paths}"
|
||||
cat $deps
|
||||
printf '%s\n' $deps >$out
|
||||
'';
|
||||
|
||||
pkgsList = buildList "ci-pkgs" (builtins.attrValues pkgsTopLevel);
|
||||
testsList = buildList "ci-tests" (collect isDerivation tests);
|
||||
allList = buildList' "ci-all" [ pkgsList testsList ];
|
||||
# For now only RISC-V
|
||||
crossList = buildList "ci-cross"
|
||||
(filter
|
||||
(canCrossCompile final.pkgsCross.riscv64.stdenv.hostPlatform)
|
||||
(builtins.attrValues crossSet.riscv64));
|
||||
|
||||
in bscPkgs // {
|
||||
|
||||
lib = prev.lib // {
|
||||
maintainers = prev.lib.maintainers // {
|
||||
bsc = import ./pkgs/maintainers.nix;
|
||||
};
|
||||
};
|
||||
|
||||
# Prevent accidental usage of bsc-ci attribute
|
||||
bsc-ci = throw "the bsc-ci attribute is deprecated, use bsc.ci";
|
||||
|
||||
# Internal for our CI tests
|
||||
bsc = {
|
||||
# CI targets for nix build
|
||||
ci = { pkgs = pkgsList; tests = testsList; all = allList; cross = crossList; };
|
||||
|
||||
# Direct access to package sets
|
||||
tests = tests;
|
||||
pkgs = bscPkgs;
|
||||
pkgsTopLevel = pkgsTopLevel;
|
||||
cross = crossSet;
|
||||
|
||||
# Hydra uses attribute sets of pkgs
|
||||
hydraJobs = { tests = tests; pkgs = pkgsTopLevel; cross = crossSet; };
|
||||
};
|
||||
}
|
||||
@@ -86,13 +86,4 @@ in
|
||||
patchelf --add-needed libnuma.so $out/bin/AMDuProfPcm
|
||||
set +x
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Performance analysis tool-suite for x86 based applications";
|
||||
homepage = "https://www.amd.com/es/developer/uprof.html";
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers.bsc; [ rarias varcila ];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -29,7 +29,5 @@ in stdenv.mkDerivation {
|
||||
description = "AMD Power Profiler Driver";
|
||||
homepage = "https://www.amd.com/es/developer/uprof.html";
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers.bsc; [ rarias varcila ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, bigotes
|
||||
, cmake
|
||||
, clangOmpss2
|
||||
, openmp
|
||||
, openmpv
|
||||
, nanos6
|
||||
, nodes
|
||||
, nosv
|
||||
, mpi
|
||||
, tampi
|
||||
, openblas
|
||||
, ovni
|
||||
, gitBranch ? "master"
|
||||
, gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git"
|
||||
, gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4"
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bench6";
|
||||
version = "${src.shortRev}";
|
||||
|
||||
src = builtins.fetchGit {
|
||||
url = gitURL;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
clangOmpss2
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bigotes
|
||||
openmp
|
||||
openmpv
|
||||
nanos6
|
||||
nodes
|
||||
nosv
|
||||
mpi
|
||||
tampi
|
||||
openblas
|
||||
openblas.dev
|
||||
ovni
|
||||
];
|
||||
|
||||
env = {
|
||||
NANOS6_HOME = nanos6;
|
||||
NODES_HOME = nodes;
|
||||
NOSV_HOME = nosv;
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_C_COMPILER=clang"
|
||||
"-DCMAKE_CXX_COMPILER=clang++"
|
||||
];
|
||||
hardeningDisable = [ "all" ];
|
||||
dontStrip = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.pm.bsc.es/rarias/bench6";
|
||||
description = "Set of micro-benchmarks for OmpSs-2 and several mini-apps";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "bigotes";
|
||||
version = "9dce13";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rodarima";
|
||||
repo = "bigotes";
|
||||
rev = "9dce13446a8da30bea552d569d260d54e0188518";
|
||||
sha256 = "sha256-ktxM3pXiL8YXSK+/IKWYadijhYXqGoLY6adLk36iigE=";
|
||||
};
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/rodarima/bigotes";
|
||||
description = "Versatile benchmark tool";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/merger/common/bfd_manager.c b/src/merger/common/bfd_manager.c
|
||||
index 5f9dacf9..5231e3eb 100644
|
||||
--- a/src/merger/common/bfd_manager.c
|
||||
+++ b/src/merger/common/bfd_manager.c
|
||||
@@ -225,7 +225,7 @@ asymbol **BFDmanager_getDefaultSymbols (void)
|
||||
*
|
||||
* @return No return value.
|
||||
*/
|
||||
-static void BFDmanager_findAddressInSection (bfd * abfd, asection * section, PTR data)
|
||||
+static void BFDmanager_findAddressInSection (bfd * abfd, asection * section, void * data)
|
||||
{
|
||||
#if HAVE_BFD_GET_SECTION_SIZE || HAVE_BFD_SECTION_SIZE || HAVE_BFD_GET_SECTION_SIZE_BEFORE_RELOC
|
||||
bfd_size_type size;
|
||||
@@ -1,123 +0,0 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, boost
|
||||
, libdwarf
|
||||
, libelf
|
||||
, libxml2
|
||||
, libunwind
|
||||
, papi
|
||||
, binutils-unwrapped
|
||||
, libiberty
|
||||
, gfortran
|
||||
, xml2
|
||||
, which
|
||||
, libbfd
|
||||
, mpi ? null
|
||||
, cuda ? null
|
||||
, llvmPackages
|
||||
, autoreconfHook
|
||||
#, python3Packages
|
||||
, installShellFiles
|
||||
, symlinkJoin
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
}:
|
||||
|
||||
let
|
||||
libdwarfBundle = symlinkJoin {
|
||||
name = "libdwarfBundle";
|
||||
paths = [ libdwarf.dev libdwarf.lib libdwarf.out ];
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "extrae";
|
||||
version = "4.0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-performance-tools";
|
||||
repo = "extrae";
|
||||
rev = "${version}";
|
||||
sha256 = "SlMYxNQXJ0Xg90HmpnotUR3tEPVVBXhk1NtEBJwGBR4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# FIXME: Waiting for German to merge this patch. Still not in master, merged
|
||||
# on 2023-03-01 in devel branch (after 3 years), see:
|
||||
# https://github.com/bsc-performance-tools/extrae/pull/45
|
||||
./use-command.patch
|
||||
# https://github.com/bsc-performance-tools/extrae/issues/71
|
||||
./PTR.patch
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
buildInputs = [
|
||||
autoreconfHook
|
||||
gfortran
|
||||
libunwind
|
||||
binutils-unwrapped
|
||||
boost
|
||||
boost.dev
|
||||
libiberty
|
||||
mpi
|
||||
xml2
|
||||
which
|
||||
libxml2.dev
|
||||
libbfd
|
||||
#python3Packages.sphinx
|
||||
]
|
||||
++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
|
||||
|
||||
preConfigure = ''
|
||||
configureFlagsArray=(
|
||||
--enable-posix-clock
|
||||
--with-binutils="${binutils-unwrapped} ${libiberty}"
|
||||
--with-dwarf=${libdwarfBundle}
|
||||
--with-elf=${libelf}
|
||||
--with-boost=${boost.dev}
|
||||
--enable-instrument-io
|
||||
--enable-instrument-dynamic-memory
|
||||
--without-memkind
|
||||
--enable-merge-in-trace
|
||||
--disable-online
|
||||
--without-opencl
|
||||
--enable-pebs-sampling
|
||||
--enable-sampling
|
||||
--with-unwind=${libunwind.dev}
|
||||
--with-xml-prefix=${libxml2.dev}
|
||||
${lib.optionalString enablePapi "--with-papi=${papi}"}
|
||||
${if (mpi != null) then ''--with-mpi=${mpi}''
|
||||
else ''--without-mpi''}
|
||||
--without-dyninst)
|
||||
'';
|
||||
|
||||
# Install the manuals only by hand, as we don't want to pull the complete
|
||||
# LaTeX world
|
||||
|
||||
# FIXME: sphinx is broken
|
||||
#postBuild = ''
|
||||
# make -C docs man
|
||||
#'';
|
||||
#
|
||||
#postInstall = ''
|
||||
# installManPage docs/builds/man/*/*
|
||||
#'';
|
||||
|
||||
# ++ (
|
||||
# if (openmp)
|
||||
# then [ "--enable-openmp" ]
|
||||
# else []
|
||||
# );
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-performance-tools/extrae";
|
||||
description = "Instrumentation framework to generate execution traces of the most used parallel runtimes";
|
||||
maintainers = [ ];
|
||||
broken = true;
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
diff --git a/substitute b/substitute
|
||||
index d5615606..82ca91a5 100755
|
||||
--- a/substitute
|
||||
+++ b/substitute
|
||||
@@ -16,7 +16,7 @@ UNAME=`uname`
|
||||
if [ "${UNAME}" = "Darwin" -o "${UNAME}" = "AIX" ] ; then
|
||||
TMPFILE=substitute-$$
|
||||
${SED} "s|${KEY}|${VALUE}|g" < ${FILE} >${TMPFILE}
|
||||
- /bin/mv -f ${TMPFILE} ${FILE}
|
||||
+ command mv -f ${TMPFILE} ${FILE}
|
||||
else
|
||||
${SED} "s|${KEY}|${VALUE}|g" -i ${FILE}
|
||||
fi
|
||||
diff --git a/substitute-all b/substitute-all
|
||||
index 48c6b76a..eda7a0f2 100755
|
||||
--- a/substitute-all
|
||||
+++ b/substitute-all
|
||||
@@ -23,5 +23,5 @@ fi
|
||||
|
||||
echo "Applying modification in ${PATHTOCHANGE} - Key = ${KEY} for value = ${VALUE}"
|
||||
|
||||
-/usr/bin/find ${PATHTOCHANGE} -type f -exec ${SCRIPT_LOCATION} "${SED}" "${KEY}" "${VALUE}" {} \;
|
||||
+command find ${PATHTOCHANGE} -type f -exec ${SCRIPT_LOCATION} "${SED}" "${KEY}" "${VALUE}" {} \;
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, symlinkJoin
|
||||
, slurm
|
||||
, rdma-core
|
||||
, autoconf
|
||||
, automake
|
||||
, libtool
|
||||
, mpi
|
||||
, rsync
|
||||
, gfortran
|
||||
}:
|
||||
|
||||
let
|
||||
rdma-core-all = symlinkJoin {
|
||||
name ="rdma-core-all";
|
||||
paths = [ rdma-core.dev rdma-core.out ];
|
||||
};
|
||||
mpiAll = symlinkJoin {
|
||||
name = "mpi-all";
|
||||
paths = [ mpi.all ];
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "GPI-2";
|
||||
version = "tagaspi-2021.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://pm.bsc.es/gitlab/interoperability/extern/GPI-2/-/archive/${version}/GPI-2-${version}.tar.gz";
|
||||
hash = "sha256-eY2wpyTpnOXRoAcYoAP82Jq9Q7p5WwDpMj+f1vEX5zw=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = [ ./rdma-core.patch ./max-mem.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs autogen.sh
|
||||
./autogen.sh
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-infiniband=${rdma-core-all}"
|
||||
"--with-mpi=${mpiAll}"
|
||||
"--with-slurm"
|
||||
"CFLAGS=-fPIC"
|
||||
"CXXFLAGS=-fPIC"
|
||||
];
|
||||
|
||||
buildInputs = [ slurm mpiAll rdma-core-all autoconf automake libtool rsync gfortran ];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://pm.bsc.es/gitlab/interoperability/extern/GPI-2";
|
||||
description = "GPI-2 extended for supporting Task-Aware GASPI (TAGASPI) library";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
--- a/tests/tests/segments/max_mem.c 2025-09-12 13:30:53.449353591 +0200
|
||||
+++ b/tests/tests/segments/max_mem.c 2025-09-12 13:33:49.750352401 +0200
|
||||
@@ -1,5 +1,7 @@
|
||||
#include <test_utils.h>
|
||||
|
||||
+gaspi_size_t gaspi_get_system_mem (void);
|
||||
+
|
||||
/* Test allocates 45% of system memory and creates a segment that
|
||||
large or if several ranks per node exist, divided among that
|
||||
number */
|
||||
@@ -1,12 +0,0 @@
|
||||
--- a/src/devices/ib/GPI2_IB.h 2025-09-12 13:25:31.564181121 +0200
|
||||
+++ b/src/devices/ib/GPI2_IB.h 2025-09-12 13:24:49.105422150 +0200
|
||||
@@ -26,6 +26,9 @@ along with GPI-2. If not, see <http://ww
|
||||
|
||||
#include "GPI2_Dev.h"
|
||||
|
||||
+/* Missing prototype as driver.h is now private */
|
||||
+int ibv_read_sysfs_file(const char *dir, const char *file, char *buf, size_t size);
|
||||
+
|
||||
#define GASPI_GID_INDEX (0)
|
||||
#define PORT_LINK_UP (5)
|
||||
#define MAX_INLINE_BYTES (128)
|
||||
@@ -1,511 +0,0 @@
|
||||
{ stdenv
|
||||
, fetchurl
|
||||
, lib
|
||||
, dpkg
|
||||
, rsync
|
||||
, libffi_3_3
|
||||
, libelf
|
||||
, libxml2
|
||||
, hwloc
|
||||
, zlib
|
||||
, autoPatchelfHook
|
||||
, libfabric
|
||||
, gcc13
|
||||
, wrapCCWith
|
||||
}:
|
||||
|
||||
# The distribution of intel packages is a mess. We are doing the installation
|
||||
# based on the .deb metapackage "intel-hpckit", and follow de dependencies,
|
||||
# which have mismatching versions.
|
||||
|
||||
# Bruno Bzeznik (bzizou) went through the madness of using their .sh installer,
|
||||
# pulling all the X dependencies here:
|
||||
# https://github.com/Gricad/nur-packages/blob/4b67c8ad0ce1baa1d2f53ba41ae5bca8e00a9a63/pkgs/intel/oneapi.nix
|
||||
|
||||
# But this is an attempt to install the packages from the APT repo
|
||||
|
||||
let
|
||||
|
||||
meta = {
|
||||
description = "Intel oneapi hpckit package component";
|
||||
homepage = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers.bsc; [ abonerib ];
|
||||
};
|
||||
|
||||
gcc = gcc13;
|
||||
|
||||
v = {
|
||||
hpckit = "2023.1.0";
|
||||
compiler = "2023.1.0";
|
||||
tbb = "2021.9.0";
|
||||
mpi = "2021.9.0";
|
||||
};
|
||||
|
||||
aptPackageIndex = stdenv.mkDerivation {
|
||||
name = "intel-oneapi-packages";
|
||||
srcs = [
|
||||
# Run update.sh to update the package lists
|
||||
./amd64-packages ./all-packages
|
||||
];
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
awk -F': ' '\
|
||||
BEGIN { print "[ {" } \
|
||||
NR>1 && /^Package: / { print "} {"; } \
|
||||
/: / { printf "%s = \"%s\";\n", $1, $2 } \
|
||||
END { print "} ]" }' $srcs > $out
|
||||
'';
|
||||
};
|
||||
|
||||
aptPackages = import aptPackageIndex;
|
||||
|
||||
apthost = "https://apt.repos.intel.com/oneapi/";
|
||||
|
||||
getSum = pkgList: name:
|
||||
let
|
||||
matches = lib.filter (x: name == x.Package) pkgList;
|
||||
#n = lib.length matches;
|
||||
#match = builtins.trace (name + " -- ${builtins.toString n}") (lib.elemAt matches 0);
|
||||
match = lib.elemAt matches 0;
|
||||
in
|
||||
match.SHA256;
|
||||
|
||||
getUrl = pkgList: name:
|
||||
let
|
||||
matches = lib.filter (x: name == x.Package) pkgList;
|
||||
#match = assert lib.length matches == 1; lib.elemAt matches 0;
|
||||
n = lib.length matches;
|
||||
match =
|
||||
#builtins.trace (name + " -- n=${builtins.toString n}")
|
||||
(lib.elemAt matches 0);
|
||||
in
|
||||
apthost + match.Filename;
|
||||
|
||||
uncompressDebs = debs: name: stdenv.mkDerivation {
|
||||
name = name;
|
||||
srcs = debs;
|
||||
nativeBuildInputs = [ dpkg ];
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
for src in $srcs; do
|
||||
echo "unpacking $src"
|
||||
dpkg -x $src $out
|
||||
done
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
joinDebs = name: names:
|
||||
let
|
||||
urls = builtins.map (x: getUrl aptPackages x) names;
|
||||
sums = builtins.map (x: getSum aptPackages x) names;
|
||||
getsrc = url: sha256: builtins.fetchurl { inherit url sha256; };
|
||||
debs = lib.zipListsWith getsrc urls sums;
|
||||
in
|
||||
uncompressDebs debs "${name}-source";
|
||||
|
||||
|
||||
intel-mpi = stdenv.mkDerivation rec {
|
||||
version = v.mpi;
|
||||
pname = "intel-mpi";
|
||||
|
||||
src = joinDebs pname [
|
||||
"intel-oneapi-mpi-devel-${version}"
|
||||
"intel-oneapi-mpi-${version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libfabric
|
||||
zlib
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
dontStrip = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,etc,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
cd $src
|
||||
|
||||
# MPI
|
||||
pushd opt/intel/oneapi/mpi/${version}
|
||||
rsync -a man/ $out/share/man/
|
||||
rsync -a etc/ $out/etc/
|
||||
rsync -a include/ $out/include/
|
||||
cp -a lib/lib* $out/lib/
|
||||
# Copy the actual libmpi.so from release
|
||||
cp -a lib/release/lib* $out/lib
|
||||
# Broken due missing libze_loader.so.1
|
||||
rsync -a --exclude IMB-MPI1-GPU bin/ $out/bin/
|
||||
popd
|
||||
'';
|
||||
preFixup = ''
|
||||
for i in $out/bin/mpi* ; do
|
||||
echo "Fixing paths in $i"
|
||||
sed -i "s:I_MPI_SUBSTITUTE_INSTALLDIR:$out:g" "$i"
|
||||
done
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
intel-tbb = stdenv.mkDerivation rec {
|
||||
version = v.tbb;
|
||||
pname = "intel-tbb";
|
||||
src = joinDebs pname [
|
||||
"intel-oneapi-tbb-${version}"
|
||||
"intel-oneapi-tbb-common-${version}"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
intel-mpi
|
||||
libffi_3_3
|
||||
libelf
|
||||
libxml2
|
||||
hwloc
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
dontStrip = true;
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [ "libhwloc.so.5" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
|
||||
cd $src
|
||||
|
||||
pushd opt/intel/oneapi/tbb/${version}
|
||||
# Libraries
|
||||
rsync -a lib/intel64/gcc4.8/ $out/lib/
|
||||
popd
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
intel-compiler-shared = stdenv.mkDerivation rec {
|
||||
version = v.compiler;
|
||||
pname = "intel-compiler-shared";
|
||||
src = joinDebs pname [
|
||||
"intel-oneapi-compiler-shared-${version}"
|
||||
"intel-oneapi-compiler-shared-common-${version}"
|
||||
"intel-oneapi-compiler-shared-runtime-${version}"
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
intel-mpi
|
||||
intel-tbb
|
||||
libffi_3_3
|
||||
libelf
|
||||
libxml2
|
||||
zlib
|
||||
hwloc
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
dontStrip = true;
|
||||
|
||||
autoPatchelfIgnoreMissingDeps = [ "libsycl.so.6" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
cd $src
|
||||
|
||||
# Compiler
|
||||
pushd opt/intel/oneapi/compiler/${version}
|
||||
pushd linux
|
||||
# Binaries
|
||||
rsync -a bin/ $out/bin/
|
||||
rsync -a --exclude libcilkrts.so.5 bin/intel64/ $out/bin/
|
||||
|
||||
# Libraries
|
||||
rsync -a lib/ $out/lib/
|
||||
rsync -a lib/x64/ $out/lib/
|
||||
rsync -a compiler/lib/intel64_lin/ $out/lib/
|
||||
chmod +w $out/lib
|
||||
cp bin/intel64/libcilkrts.so.5 $out/lib/
|
||||
ln -s $out/lib/libcilkrts.so.5 $out/lib/libcilkrts.so
|
||||
|
||||
# Headers
|
||||
rsync -a compiler/include/ $out/include/
|
||||
popd
|
||||
popd
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
|
||||
intel-compiler-fortran = stdenv.mkDerivation rec {
|
||||
version = v.compiler;
|
||||
pname = "intel-fortran";
|
||||
src = joinDebs pname [
|
||||
"intel-oneapi-compiler-fortran-${version}"
|
||||
"intel-oneapi-compiler-fortran-common-${version}"
|
||||
"intel-oneapi-compiler-fortran-runtime-${version}"
|
||||
|
||||
"intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}"
|
||||
#"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${version}"
|
||||
#"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}"
|
||||
];
|
||||
|
||||
langFortran = true;
|
||||
|
||||
buildInputs = [
|
||||
intel-mpi
|
||||
intel-compiler-shared
|
||||
libffi_3_3
|
||||
libelf
|
||||
libxml2
|
||||
hwloc
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,lib,include}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
cd $src
|
||||
|
||||
# Compiler
|
||||
pushd opt/intel/oneapi/compiler/${version}
|
||||
pushd linux
|
||||
# Binaries
|
||||
rsync -a bin/ $out/bin/
|
||||
rsync -a bin/intel64/ $out/bin/
|
||||
|
||||
# Libraries
|
||||
rsync -a lib/ $out/lib/
|
||||
rsync -a compiler/lib/intel64_lin/ $out/lib/
|
||||
|
||||
# Headers
|
||||
rsync -a compiler/include/ $out/include/
|
||||
popd
|
||||
|
||||
# Manuals
|
||||
rsync -a documentation/en/man/common/ $out/share/man/
|
||||
|
||||
# Fix lib_lin
|
||||
ln -s $out/lib $out/lib_lin
|
||||
popd
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
intel-compiler = stdenv.mkDerivation rec {
|
||||
version = v.compiler;
|
||||
pname = "intel-compiler";
|
||||
src = joinDebs pname [
|
||||
# C/C++
|
||||
"intel-oneapi-dpcpp-cpp-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-common-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-runtime-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}"
|
||||
"intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}"
|
||||
];
|
||||
dontCheckForBrokenSymlinks = true;
|
||||
# From https://aur.archlinux.org/packages/intel-oneapi-compiler:
|
||||
# - intel-oneapi-compiler-cpp-eclipse-cfg-2023.0.0-25370_all.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# x intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.0.0-2023.0.0-25370_amd64.deb (empty)
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.0.0-25370_amd64.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
# + intel-oneapi-compiler-dpcpp-cpp-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-dpcpp-eclipse-cfg-2023.0.0-25370_all.deb
|
||||
# - intel-oneapi-compiler-fortran-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-fortran-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-shared-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-compiler-shared-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
# - intel-oneapi-compiler-shared-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-openmp-2023.0.0-2023.0.0-25370_amd64.deb
|
||||
# - intel-oneapi-openmp-common-2023.0.0-2023.0.0-25370_all.deb
|
||||
|
||||
buildInputs = [
|
||||
intel-compiler-shared
|
||||
libffi_3_3
|
||||
libelf
|
||||
libxml2
|
||||
hwloc
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
rsync
|
||||
];
|
||||
autoPatchelfIgnoreMissingDeps = [ "libtbb.so.12" "libtbbmalloc.so.2" "libze_loader.so.1" ];
|
||||
|
||||
phases = [ "installPhase" "fixupPhase" ];
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/{bin,lib}
|
||||
mkdir -p $out/share/man
|
||||
|
||||
cd $src
|
||||
|
||||
# Compiler
|
||||
pushd opt/intel/oneapi/compiler/${version}
|
||||
pushd linux
|
||||
# Binaries
|
||||
rsync -a bin/ $out/bin/
|
||||
rsync -a bin-llvm/ $out/bin/
|
||||
rsync -a bin/intel64/ $out/bin/
|
||||
|
||||
# Libraries
|
||||
rsync -a --exclude oclfpga lib/ $out/lib/
|
||||
rsync -a compiler/lib/intel64_lin/ $out/lib/
|
||||
|
||||
# Headers
|
||||
rsync -a compiler/include/ $out/include/ # Intrinsics for icc
|
||||
rsync -a include/ $out/include/
|
||||
chmod +w $out/include
|
||||
ln -s $out/lib/clang/16.0.0/include/ $out/include/icx # For icx
|
||||
popd
|
||||
|
||||
# Manuals
|
||||
rsync -a documentation/en/man/common/ $out/share/man/
|
||||
popd
|
||||
'';
|
||||
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
wrapIntel = { cc, mygcc, extraBuild ? "", extraInstall ? "" }:
|
||||
let
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
in (wrapCCWith {
|
||||
cc = cc;
|
||||
extraBuildCommands = ''
|
||||
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
|
||||
echo "-isystem ${cc}/include/intel64" >> $out/nix-support/cc-cflags
|
||||
|
||||
echo "-L${mygcc.cc}/lib/gcc/${targetConfig}/${mygcc.version}" >> $out/nix-support/cc-ldflags
|
||||
echo "-L${mygcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
|
||||
echo "-L${intel-compiler-shared}/lib" >> $out/nix-support/cc-ldflags
|
||||
echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags
|
||||
|
||||
# Need the gcc in the path
|
||||
# FIXME: We should find a better way to modify the PATH instead of using
|
||||
# this ugly hack. See https://jungle.bsc.es/git/rarias/bscpkgs/issues/9
|
||||
echo 'path_backup="${mygcc}/bin:$path_backup"' >> $out/nix-support/cc-wrapper-hook
|
||||
|
||||
# Disable hardening by default
|
||||
echo "" > $out/nix-support/add-hardening.sh
|
||||
'' + extraBuild;
|
||||
}).overrideAttrs (old: {
|
||||
installPhase = old.installPhase + extraInstall;
|
||||
});
|
||||
|
||||
icx-wrapper = wrapIntel rec {
|
||||
cc = intel-compiler;
|
||||
mygcc = gcc;
|
||||
extraBuild = ''
|
||||
wrap icx $wrapper $ccPath/icx
|
||||
wrap icpx $wrapper $ccPath/icpx
|
||||
echo "-isystem ${cc}/include/icx" >> $out/nix-support/cc-cflags
|
||||
echo "--gcc-toolchain=${mygcc.cc}" >> $out/nix-support/cc-cflags
|
||||
'';
|
||||
extraInstall = ''
|
||||
export named_cc="icx"
|
||||
export named_cxx="icpx"
|
||||
'';
|
||||
};
|
||||
|
||||
# Legacy
|
||||
icc-wrapper = wrapIntel rec {
|
||||
cc = intel-compiler;
|
||||
# Intel icc classic compiler tries to behave like the gcc found in $PATH.
|
||||
# EVEN if it doesn't support some of the features. See:
|
||||
# https://community.intel.com/t5/Intel-C-Compiler/builtin-shuffle-GCC-compatibility-and-has-builtin/td-p/1143619
|
||||
mygcc = gcc;
|
||||
extraBuild = ''
|
||||
wrap icc $wrapper $ccPath/icc
|
||||
wrap icpc $wrapper $ccPath/icpc
|
||||
echo "-isystem ${cc}/include/icc" >> $out/nix-support/cc-cflags
|
||||
'';
|
||||
extraInstall = ''
|
||||
export named_cc="icc"
|
||||
export named_cxx="icpc"
|
||||
'';
|
||||
};
|
||||
|
||||
ifort-wrapper = wrapIntel rec {
|
||||
cc = intel-compiler-fortran;
|
||||
mygcc = gcc;
|
||||
extraBuild = ''
|
||||
wrap ifort $wrapper $ccPath/ifort
|
||||
'';
|
||||
extraInstall = ''
|
||||
export named_fc="ifort"
|
||||
'';
|
||||
};
|
||||
|
||||
stdenv-icc = stdenv.override {
|
||||
cc = icc-wrapper;
|
||||
allowedRequisites = null;
|
||||
};
|
||||
|
||||
stdenv-icx = stdenv.override {
|
||||
cc = icx-wrapper;
|
||||
allowedRequisites = null;
|
||||
};
|
||||
|
||||
stdenv-ifort = stdenv.override {
|
||||
cc = ifort-wrapper;
|
||||
allowedRequisites = null;
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
inherit intel-mpi;
|
||||
icx = icx-wrapper;
|
||||
icc = icc-wrapper;
|
||||
ifort = ifort-wrapper;
|
||||
|
||||
stdenv = stdenv-icx;
|
||||
stdenv-icc = stdenv-icc;
|
||||
stdenv-ifort = stdenv-ifort;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-amd64/Packages -o amd64-packages
|
||||
curl https://apt.repos.intel.com/oneapi/dists/all/main/binary-all/Packages -o all-packages
|
||||
@@ -1,137 +0,0 @@
|
||||
{
|
||||
llvmPackages_latest
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, bash
|
||||
, python3
|
||||
, perl
|
||||
, which
|
||||
, elfutils
|
||||
, libffi
|
||||
, zlib
|
||||
, pkg-config
|
||||
, gcc # needed to set the rpath of libstdc++ for clang-tblgen
|
||||
, enableDebug ? false
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e"
|
||||
}:
|
||||
|
||||
let
|
||||
stdenv = llvmPackages_latest.stdenv;
|
||||
|
||||
release = rec {
|
||||
version = "2025.06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "llvm";
|
||||
rev = "refs/tags/github-release-${version}";
|
||||
hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo=";
|
||||
};
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "clang-ompss2";
|
||||
inherit (source) src version;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
CC = "clang";
|
||||
CXX = "clang++";
|
||||
|
||||
isClang = true;
|
||||
isClangWithOmpss = true;
|
||||
|
||||
inherit gcc zlib;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
bash
|
||||
cmake
|
||||
elfutils
|
||||
llvmPackages_latest.lld
|
||||
pkg-config
|
||||
python3
|
||||
perl
|
||||
which
|
||||
zlib
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libffi
|
||||
zlib
|
||||
gcc.cc.lib # Required for libstdc++.so.6
|
||||
];
|
||||
|
||||
# Error with -D_FORTIFY_SOURCE=2, see https://bugs.gentoo.org/636604:
|
||||
# /build/source/compiler-rt/lib/tsan/dd/dd_interceptors.cpp:225:20:
|
||||
# error: redefinition of 'realpath'
|
||||
# Requires disabling the "fortify" set of flags, however, for performance we
|
||||
# disable all:
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
cmakeBuildType = if enableDebug then "Debug" else "Release";
|
||||
|
||||
dontStrip = enableDebug;
|
||||
|
||||
dontUseCmakeBuildDir = true;
|
||||
|
||||
# Fix the host triple, as it has changed in a newer config.guess:
|
||||
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=commitdiff;h=ca9bfb8cc75a2be1819d89c664a867785c96c9ba
|
||||
preConfigure = ''
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmakeDir="../llvm"
|
||||
cmakeFlagsArray=(
|
||||
"-DLLVM_HOST_TRIPLE=${stdenv.targetPlatform.config}"
|
||||
"-DLLVM_TARGETS_TO_BUILD=host"
|
||||
"-DLLVM_BUILD_LLVM_DYLIB=ON"
|
||||
"-DLLVM_LINK_LLVM_DYLIB=ON"
|
||||
# Required to run clang-ast-dump and clang-tblgen during build
|
||||
"-DCMAKE_BUILD_RPATH=$PWD/lib:${zlib}/lib:${gcc.cc.lib}/lib"
|
||||
"-DLLVM_ENABLE_LLD=ON"
|
||||
"-DCMAKE_CXX_FLAGS_DEBUG=-g -ggnu-pubnames"
|
||||
"-DCMAKE_EXE_LINKER_FLAGS_DEBUG=-Wl,--gdb-index"
|
||||
"-DLLVM_LIT_ARGS=-sv --xunit-xml-output=xunit.xml"
|
||||
"-DLLVM_ENABLE_PROJECTS=clang;compiler-rt;lld"
|
||||
"-DLLVM_ENABLE_ASSERTIONS=ON"
|
||||
"-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON"
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DLLVM_ENABLE_ZLIB=FORCE_ON"
|
||||
"-DLLVM_ENABLE_LIBXML2=OFF"
|
||||
# Set the rpath to include external libraries (zlib) both on build and
|
||||
# install
|
||||
"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON"
|
||||
"-DCMAKE_INSTALL_RPATH=${zlib}/lib:${gcc.cc.lib}/lib"
|
||||
"-DLLVM_APPEND_VC_REV=ON"
|
||||
"-DLLVM_FORCE_VC_REVISION=${source.version}"
|
||||
)
|
||||
'';
|
||||
|
||||
# About "-DCLANG_DEFAULT_NANOS6_HOME=${nanos6}", we could specify a default
|
||||
# nanos6 installation, but this is would require a recompilation of clang each
|
||||
# time nanos6 is changed. Better to use the environment variable NANOS6_HOME,
|
||||
# and specify nanos6 at run time.
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.pm.bsc.es/llvm-ompss/llvm-mono";
|
||||
description = "C language family frontend for LLVM (for OmpSs-2)";
|
||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = [ lib.licenses.asl20 lib.licenses.llvm-exception ];
|
||||
};
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, gcc
|
||||
, clangOmpss2Unwrapped
|
||||
, openmp ? null
|
||||
, wrapCCWith
|
||||
, llvmPackages_latest
|
||||
, ompss2rt ? null
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
|
||||
sameNosv = openmp.nosv == ompss2rt.nosv;
|
||||
in
|
||||
|
||||
assert assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V";
|
||||
|
||||
let
|
||||
homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME";
|
||||
rtname = if ompss2rt.pname == "nanos6" then "libnanos6" else "libnodes";
|
||||
ompname = if openmp.pname == "openmp-v" then "libompv" else "libomp";
|
||||
|
||||
|
||||
# We need to replace the lld linker from bintools with our linker just built,
|
||||
# otherwise we run into incompatibility issues when mixing compiler and linker
|
||||
# versions.
|
||||
bintools-unwrapped = llvmPackages_latest.tools.bintools-unwrapped.override {
|
||||
lld = clangOmpss2Unwrapped;
|
||||
};
|
||||
bintools = llvmPackages_latest.tools.bintools.override {
|
||||
bintools = bintools-unwrapped;
|
||||
};
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
inherit gcc;
|
||||
cc = clangOmpss2Unwrapped;
|
||||
gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)];
|
||||
in wrapCCWith {
|
||||
inherit cc bintools;
|
||||
# extraPackages adds packages to depsTargetTargetPropagated
|
||||
extraPackages = optional (openmp != null) openmp;
|
||||
extraBuildCommands = ''
|
||||
echo "-target ${targetConfig}" >> $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}/${gccVersion}" >> $out/nix-support/cc-ldflags
|
||||
echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags
|
||||
|
||||
for dir in ${gcc.cc}/include/c++/*; do
|
||||
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
||||
done
|
||||
for dir in ${gcc.cc}/include/c++/*/${targetConfig}; do
|
||||
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
||||
done
|
||||
|
||||
echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags
|
||||
|
||||
wrap clang++ $wrapper $ccPath/clang++
|
||||
|
||||
'' + optionalString (openmp != null) ''
|
||||
echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook
|
||||
'' + optionalString (ompss2rt != null) ''
|
||||
echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook
|
||||
echo "export ${homevar}=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook
|
||||
'' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") ''
|
||||
echo "export NOSV_HOME=${ompss2rt.nosv}" >> $out/nix-support/cc-wrapper-hook
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
{ lib
|
||||
, llvmPackages_latest
|
||||
, monorepoSrc
|
||||
, runCommand
|
||||
, cmake
|
||||
, ninja
|
||||
, llvm
|
||||
, perl
|
||||
, pkg-config
|
||||
, version
|
||||
, nosv
|
||||
, ovni
|
||||
, python3
|
||||
, enableNosv ? false
|
||||
, enableDebug ? false
|
||||
, enableOvni ? false
|
||||
}:
|
||||
|
||||
assert enableOvni -> enableNosv;
|
||||
|
||||
let
|
||||
stdenv = llvmPackages_latest.stdenv;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "openmp" + (lib.optionalString enableNosv "-v");
|
||||
inherit version;
|
||||
|
||||
src = runCommand "${pname}-src" {} ''
|
||||
mkdir -p "$out"
|
||||
cp -r ${monorepoSrc}/cmake "$out"
|
||||
cp -r ${monorepoSrc}/openmp "$out"
|
||||
'';
|
||||
|
||||
sourceRoot = "${src.name}/openmp";
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
perl
|
||||
pkg-config
|
||||
python3
|
||||
] ++ lib.optionals enableNosv [
|
||||
nosv
|
||||
] ++ lib.optionals enableOvni [
|
||||
ovni
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
cmakeBuildType = if enableDebug then "Debug" else "Release";
|
||||
|
||||
dontStrip = enableDebug;
|
||||
|
||||
separateDebugInfo = true;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DLIBOMP_OMPD_SUPPORT=OFF"
|
||||
"-DOPENMP_ENABLE_LIBOMPTARGET=OFF"
|
||||
];
|
||||
|
||||
# Remove support for GNU and Intel Openmp.
|
||||
# Also, remove libomp if building with nosv, as there is no support to build
|
||||
# only one runtime at a time.
|
||||
postInstall = ''
|
||||
rm -f $out/lib/libgomp*
|
||||
rm -f $out/lib/libiomp*
|
||||
'' + lib.optionalString enableNosv ''
|
||||
rm -f $out/lib/libomp.*
|
||||
rm -f $out/libllvmrt/libomp.*
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit nosv;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.pm.bsc.es/llvm-ompss/llvm-mono";
|
||||
description = "Support for the OpenMP language (with nOS-V)";
|
||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = [ lib.licenses.asl20 lib.licenses.llvm-exception ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
libtirpc,
|
||||
fetchFromGitHub
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lmbench";
|
||||
version = "941a0dcc";
|
||||
|
||||
# We use the intel repo as they have fixed some problems
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = pname;
|
||||
rev = "941a0dcc0e7bdd9bb0dee05d7f620e77da8c43af";
|
||||
sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
sed -i "s@/bin/rm@rm@g" $(find . -name Makefile)
|
||||
'';
|
||||
|
||||
buildInputs = [ libtirpc ];
|
||||
patches = [ ./fix-install.patch ./gcc-14.patch ];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
enableParallelBuilding = false;
|
||||
|
||||
preBuild = ''
|
||||
makeFlagsArray+=(
|
||||
-C src
|
||||
BASE=$out
|
||||
CFLAGS=-Wno-implicit-int
|
||||
CPPFLAGS=-I${libtirpc.dev}/include/tirpc
|
||||
LDFLAGS=-ltirpc
|
||||
CC=$CC
|
||||
AR=$AR
|
||||
)
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "lmbench";
|
||||
homepage = "https://github.com/intel/lmbench";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.all;
|
||||
license = lib.licenses.gpl2Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -144,6 +144,7 @@ install-target:
|
||||
if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
|
||||
if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
|
||||
cp $(EXES) $(BASE)/bin
|
||||
+ cp $(OPT_EXES) $(BASE)/bin
|
||||
cp $(INCS) $(BASE)/include
|
||||
cp $O/lmbench.a $(BASE)/lib/libmbench.a
|
||||
cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
|
||||
@@ -1,77 +0,0 @@
|
||||
From a3c6e7d303cd8368e8d4e35be7cbc1997e801257 Mon Sep 17 00:00:00 2001
|
||||
From: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
|
||||
Date: Mon, 21 Jul 2025 17:38:58 +0200
|
||||
Subject: [PATCH] Misc fixes to build with gcc 14
|
||||
|
||||
---
|
||||
src/bench.h | 2 ++
|
||||
src/lat_select.c | 2 +-
|
||||
src/lib_debug.c | 1 +
|
||||
src/lib_sched.c | 2 +-
|
||||
src/lib_timing.c | 2 +-
|
||||
5 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/bench.h b/src/bench.h
|
||||
index 8166408..4da9079 100644
|
||||
--- a/src/bench.h
|
||||
+++ b/src/bench.h
|
||||
@@ -320,4 +320,6 @@ extern int handle_scheduler(int childno, int benchproc, int nbenchprocs);
|
||||
extern char *rpc_xact_1();
|
||||
extern char *client_rpc_xact_1();
|
||||
|
||||
+void lmbench_usage(int argc, char *argv[], char* usage);
|
||||
+
|
||||
#endif /* _BENCH_H */
|
||||
diff --git a/src/lat_select.c b/src/lat_select.c
|
||||
index 583b505..39df369 100644
|
||||
--- a/src/lat_select.c
|
||||
+++ b/src/lat_select.c
|
||||
@@ -164,7 +164,7 @@ doit(iter_t iterations, void * cookie)
|
||||
state_t * state = (state_t *)cookie;
|
||||
fd_set nosave;
|
||||
static struct timeval tv;
|
||||
- static count = 0;
|
||||
+ static int count = 0;
|
||||
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 0;
|
||||
diff --git a/src/lib_debug.c b/src/lib_debug.c
|
||||
index e8347dd..cf65312 100644
|
||||
--- a/src/lib_debug.c
|
||||
+++ b/src/lib_debug.c
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "bench.h"
|
||||
#include "lib_debug.h"
|
||||
+#include <math.h>
|
||||
|
||||
/*
|
||||
* return micro-seconds / iteration at the the fraction point.
|
||||
diff --git a/src/lib_sched.c b/src/lib_sched.c
|
||||
index aa83ae0..4f16bbf 100644
|
||||
--- a/src/lib_sched.c
|
||||
+++ b/src/lib_sched.c
|
||||
@@ -91,7 +91,7 @@ handle_scheduler(int childno, int benchproc, int nbenchprocs)
|
||||
childno * (nbenchprocs + 1) + benchproc);
|
||||
} else {
|
||||
/* default action: do nothing */
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
return sched_pin(cpu % sched_ncpus());
|
||||
diff --git a/src/lib_timing.c b/src/lib_timing.c
|
||||
index af8cf68..7ec9652 100644
|
||||
--- a/src/lib_timing.c
|
||||
+++ b/src/lib_timing.c
|
||||
@@ -1623,7 +1623,7 @@ bread(void* buf, long nbytes)
|
||||
void
|
||||
touch(char *buf, int nbytes)
|
||||
{
|
||||
- static psize;
|
||||
+ static int psize;
|
||||
|
||||
if (!psize) {
|
||||
psize = getpagesize();
|
||||
--
|
||||
2.49.0
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
builtins.mapAttrs (name: value: { email = name + "@bsc.es"; } // value) {
|
||||
abonerib.name = "Aleix Boné";
|
||||
arocanon.name = "Aleix Roca";
|
||||
rarias.name = "Rodrigo Arias";
|
||||
rpenacob.name = "Raúl Peñacoba";
|
||||
varcila.name = "Vincent Arcila";
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, nanos6
|
||||
, gperf
|
||||
, python3
|
||||
, gfortran
|
||||
, pkg-config
|
||||
, sqlite
|
||||
, flex
|
||||
, bison
|
||||
, gcc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mcxx";
|
||||
version = "2023.11";
|
||||
|
||||
passthru = {
|
||||
CC = "mcc";
|
||||
CXX = "mcxx";
|
||||
};
|
||||
|
||||
# mcxx doesn't use tags, so we pick the same version of the ompss2 release
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = pname;
|
||||
rev = "github-release-${version}";
|
||||
hash = "sha256-GyBvyy/HD3t9rHSXAYZRMhn4o4Nm/HFfjuOS8J0LPu8=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
bison
|
||||
flex
|
||||
python3
|
||||
gfortran
|
||||
pkg-config
|
||||
gperf
|
||||
gcc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
nanos6
|
||||
sqlite.dev
|
||||
];
|
||||
|
||||
patches = [ ./intel.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
export ICC=icc
|
||||
export ICPC=icpc
|
||||
export IFORT=ifort
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-ompss-2"
|
||||
"--with-nanos6=${nanos6}"
|
||||
# Fails with "memory exhausted" with bison 3.7.1
|
||||
# "--enable-bison-regeneration"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/mcxx";
|
||||
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
|
||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, nanos6
|
||||
, gperf
|
||||
, python
|
||||
, gfortran
|
||||
, pkg-config
|
||||
, sqlite
|
||||
, flex
|
||||
, bison
|
||||
, gcc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mcxx";
|
||||
version = src.shortRev;
|
||||
|
||||
passthru = {
|
||||
CC = "mcc";
|
||||
CXX = "mcxx";
|
||||
};
|
||||
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@bscpm04.bsc.es/mercurium/mcxx";
|
||||
ref = "master";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [
|
||||
autoreconfHook
|
||||
nanos6
|
||||
gperf
|
||||
python
|
||||
gfortran
|
||||
pkg-config
|
||||
sqlite.dev
|
||||
bison
|
||||
flex
|
||||
gcc
|
||||
];
|
||||
|
||||
# TODO: Not sure if we need this patch anymore (?)
|
||||
#patches = [ ./intel.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
export ICC=icc
|
||||
export ICPC=icpc
|
||||
export IFORT=ifort
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-ompss-2"
|
||||
"--with-nanos6=${nanos6}"
|
||||
# Fails with "memory exhausted" with bison 3.7.1
|
||||
# "--enable-bison-regeneration"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/mcxx";
|
||||
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
|
||||
maintainers = with lib.maintainers.bsc; [ rpenacob ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
--- a/configure.ac 2020-07-10 16:15:11.431606455 +0200
|
||||
+++ b/configure.ac 2020-07-10 16:15:24.291586572 +0200
|
||||
@@ -367,16 +367,6 @@
|
||||
[ enable_intel_compilers="yes"])
|
||||
AC_MSG_RESULT([$enable_intel_compilers])
|
||||
|
||||
-
|
||||
-IFORT=
|
||||
-ICC=
|
||||
-ICPC=
|
||||
-if test x"$enable_intel_compilers" = x"yes";
|
||||
-then
|
||||
- AC_CHECK_PROG([IFORT], [ifort], [ifort])
|
||||
- AC_CHECK_PROG([ICC], [icc], [icc])
|
||||
- AC_CHECK_PROG([ICPC], [icpc], [icpc])
|
||||
-fi
|
||||
dnl --------------- END Intel Compilers ---------------------
|
||||
|
||||
mic_compilation="no"
|
||||
@@ -1,68 +0,0 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchgit
|
||||
, autoreconfHook
|
||||
, nanos6
|
||||
, gperf
|
||||
, python
|
||||
, gfortran
|
||||
, pkg-config
|
||||
, sqlite
|
||||
, flex
|
||||
, bison
|
||||
, gcc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mcxx-rarias";
|
||||
#version attribute ignored when using fetchgit:
|
||||
#version = "2.2.0-70a299cf";
|
||||
|
||||
#src = /home/Computational/rarias/mcxx;
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@bscpm04.bsc.es/rarias/mcxx";
|
||||
rev = "44129a6ac05b8f78b06e9e2eff71438b5ca4d29f";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
buildInputs = [
|
||||
autoreconfHook
|
||||
nanos6
|
||||
gperf
|
||||
python
|
||||
gfortran
|
||||
pkg-config
|
||||
sqlite.dev
|
||||
bison
|
||||
flex
|
||||
gcc
|
||||
];
|
||||
|
||||
patches = [ ./intel.patch ];
|
||||
|
||||
preConfigure = ''
|
||||
export ICC=icc
|
||||
export ICPC=icpc
|
||||
export IFORT=ifort
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--enable-ompss-2"
|
||||
"--with-nanos6=${nanos6}"
|
||||
# "--enable-bison-regeneration"
|
||||
];
|
||||
|
||||
# Regenerate ia32 builtins to add the ones for gcc9
|
||||
#preBuild = ''
|
||||
# make generate_builtins_ia32 GXX_X86_BUILTINS=${gcc}/bin/g++
|
||||
#'';
|
||||
#
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/mcxx";
|
||||
description = "C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, libfabric
|
||||
, mpich
|
||||
, pmix
|
||||
, gfortran
|
||||
, symlinkJoin
|
||||
}:
|
||||
|
||||
let
|
||||
# pmix comes with the libraries in .out and headers in .dev
|
||||
pmixAll = symlinkJoin {
|
||||
name = "pmix-all";
|
||||
paths = [ pmix.dev pmix.out ];
|
||||
};
|
||||
in mpich.overrideAttrs (old: {
|
||||
buildInput = old.buildInputs ++ [
|
||||
libfabric
|
||||
pmixAll
|
||||
];
|
||||
configureFlags = [
|
||||
"--enable-shared"
|
||||
"--enable-sharedlib"
|
||||
"--with-pm=no"
|
||||
"--with-device=ch4:ofi"
|
||||
"--with-pmi=pmix"
|
||||
"--with-pmix=${pmixAll}"
|
||||
"--with-libfabric=${libfabric}"
|
||||
"--enable-g=log"
|
||||
] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
|
||||
"FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
|
||||
"FCFLAGS=-fallow-argument-mismatch"
|
||||
];
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = old.meta // {
|
||||
maintainers = old.meta.maintainers ++ (with lib.maintainers.bsc; [ rarias ]);
|
||||
};
|
||||
})
|
||||
@@ -1,32 +0,0 @@
|
||||
From 6fc5bef066ac011d6b15a7c090f4498b0b730818 Mon Sep 17 00:00:00 2001
|
||||
From: Rodrigo Arias Mallo <rodrigo.arias@bsc.es>
|
||||
Date: Fri, 12 Apr 2024 14:44:43 +0200
|
||||
Subject: [PATCH] Add missing cstdint include
|
||||
|
||||
---
|
||||
src/dependencies/DataTrackingSupport.hpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/dependencies/DataTrackingSupport.hpp b/src/dependencies/DataTrackingSupport.hpp
|
||||
index 56226085..cdfd5e1c 100644
|
||||
--- a/src/dependencies/DataTrackingSupport.hpp
|
||||
+++ b/src/dependencies/DataTrackingSupport.hpp
|
||||
@@ -1,13 +1,14 @@
|
||||
/*
|
||||
This file is part of Nanos6 and is licensed under the terms contained in the COPYING file.
|
||||
|
||||
- Copyright (C) 2020 Barcelona Supercomputing Center (BSC)
|
||||
+ Copyright (C) 2020-2024 Barcelona Supercomputing Center (BSC)
|
||||
*/
|
||||
|
||||
#ifndef DATA_TRACKING_SUPPORT_HPP
|
||||
#define DATA_TRACKING_SUPPORT_HPP
|
||||
|
||||
#include "support/config/ConfigVariable.hpp"
|
||||
+#include <cstdint>
|
||||
|
||||
class Task;
|
||||
|
||||
--
|
||||
2.44.0
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, automake
|
||||
, autoconf
|
||||
, libtool
|
||||
, pkg-config
|
||||
, numactl
|
||||
, hwloc
|
||||
, papi
|
||||
, boost
|
||||
, ovni
|
||||
, enableDebug ? false
|
||||
, enableJemalloc ? true
|
||||
, jemallocNanos6 ? null
|
||||
, cachelineBytes ? 64
|
||||
, enableGlibcxxDebug ? false
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "f82762b66c82b5174a8eaad33f6c2f335ac759b4"
|
||||
}:
|
||||
|
||||
assert enableJemalloc -> (jemallocNanos6 != null);
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "4.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "nanos6";
|
||||
rev = "version-${version}";
|
||||
hash = "sha256-/c6WiKBsAo/01uvMRmjv0PMucbrgvaGmbxlPE6q+dfE=";
|
||||
};
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
|
||||
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||
in
|
||||
stdenv.mkDerivation (source // {
|
||||
pname = "nanos6";
|
||||
|
||||
prePatch = ''
|
||||
patchShebangs scripts/generate_config.sh
|
||||
patchShebangs autogen.sh
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
export CACHELINE_WIDTH=${toString cachelineBytes}
|
||||
./autogen.sh
|
||||
'' + lib.optionalString (useGit) ''
|
||||
export NANOS6_GIT_VERSION=${gitCommit}
|
||||
export NANOS6_GIT_BRANCH=${gitBranch}
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-hwloc=${hwloc}"
|
||||
"--disable-all-instrumentations"
|
||||
"--enable-ovni-instrumentation"
|
||||
"--with-ovni=${ovni}"
|
||||
"--with-boost=${boost.dev}"
|
||||
] ++
|
||||
(optional enableJemalloc "--with-jemalloc=${jemallocNanos6}") ++
|
||||
(optional enableGlibcxxDebug "CXXFLAGS=-D_GLIBCXX_DEBUG") ++
|
||||
# Most nanos6 api symbols are resolved at runtime, so prefer
|
||||
# ifunc by default
|
||||
(optional isCross "--with-symbol-resolution=ifunc");
|
||||
|
||||
postConfigure = lib.optionalString (!enableDebug) ''
|
||||
# Disable debug
|
||||
sed -i 's/\([a-zA-Z0-9_]*nanos6_debug[a-zA-Z0-9_]*\)\s*[+]\?=.*/\1 =/g' Makefile.am
|
||||
'';
|
||||
|
||||
# The "bindnow" flags are incompatible with ifunc resolution mechanism. We
|
||||
# disable all by default, which includes bindnow.
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
# Keep debug symbols in the debug variant of the library
|
||||
dontStrip = enableDebug;
|
||||
separateDebugInfo = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
pkg-config
|
||||
|
||||
# TODO: papi_version is needed for configure:
|
||||
# ./configure: line 27378: papi_version: command not found
|
||||
# This probably breaks cross-compilation
|
||||
] ++ lib.optionals enablePapi [ papi ];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
numactl
|
||||
hwloc
|
||||
ovni
|
||||
] ++ lib.optionals enablePapi [ papi ];
|
||||
|
||||
# Create a script that sets NANOS6_HOME
|
||||
postInstall = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo "export NANOS6_HOME=$out" >> $out/nix-support/setup-hook
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/nanos6";
|
||||
description = "Nanos6 runtime for OmpSs-2" +
|
||||
optionalString (enableDebug) " (with debug symbols)";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
})
|
||||
@@ -1,13 +0,0 @@
|
||||
{ jemalloc, lib }:
|
||||
|
||||
jemalloc.overrideAttrs (old: {
|
||||
configureFlags = old.configureFlags ++ [
|
||||
"--with-jemalloc-prefix=nanos6_je_"
|
||||
"--enable-stats"
|
||||
];
|
||||
hardeningDisable = [ "all" ];
|
||||
meta = old.meta // {
|
||||
description = old.meta.description + " (for Nanos6)";
|
||||
maintainers = (old.meta.maintainers or []) ++ (with lib.maintainers.bsc; [ rarias ]);
|
||||
};
|
||||
})
|
||||
@@ -1,100 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, bashInteractive
|
||||
, busybox
|
||||
, nix
|
||||
, writeText
|
||||
, pkgsStatic
|
||||
}:
|
||||
|
||||
let
|
||||
bubblewrap = pkgsStatic.bubblewrap;
|
||||
nixPrefix = "/gpfs/projects/bsc15/nix";
|
||||
nixConfDir = "share";
|
||||
nix_wrap_sh = writeText "nix-wrap.sh" ''
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
busybox_bin="${nixPrefix}${busybox}/bin"
|
||||
bubblewrap_bin="${nixPrefix}/${bubblewrap}/bin"
|
||||
|
||||
bashInteractive_bin="${bashInteractive}/bin"
|
||||
nix_bin="${nix}/bin"
|
||||
|
||||
rootdir=$(mktemp -d)
|
||||
tmpdir=$(mktemp -d)
|
||||
|
||||
args=(
|
||||
--bind "$rootdir/" /
|
||||
--bind "${nixPrefix}/nix" /nix
|
||||
--bind "$busybox_bin" /bin
|
||||
--dev-bind /dev /dev
|
||||
--bind /boot /boot
|
||||
--proc /proc
|
||||
--bind /run /run
|
||||
--bind /sys /sys
|
||||
--bind "$tmpdir" /tmp
|
||||
--bind "$PWD" "$PWD"
|
||||
--bind /etc/host.conf /etc/host.conf
|
||||
--bind /etc/hosts /etc/hosts
|
||||
--bind /etc/networks /etc/networks
|
||||
--bind /etc/passwd /etc/passwd
|
||||
--bind /etc/group /etc/group
|
||||
--bind /etc/nsswitch.conf /etc/nsswitch.conf
|
||||
--bind /etc/resolv.conf /etc/resolv.conf
|
||||
)
|
||||
|
||||
export PATH="/bin:$bashInteractive_bin"
|
||||
export PATH="$nix_bin:$PATH"
|
||||
export TMPDIR=/tmp
|
||||
export PS1="[nix-wrap] \u@\h \W $ "
|
||||
export NIX_CONF_DIR=@out@/share
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
"$bubblewrap_bin/bwrap" ''${args[@]} /bin/sh
|
||||
else
|
||||
"$bubblewrap_bin/bwrap" ''${args[@]} "''${@}"
|
||||
fi
|
||||
|
||||
'';
|
||||
nix_conf = writeText "nix.conf" ''
|
||||
experimental-features = nix-command flakes
|
||||
sandbox-fallback = false
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "nix-wrap";
|
||||
buildInputs = [
|
||||
bashInteractive
|
||||
busybox
|
||||
nix
|
||||
];
|
||||
src = null;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontPatchShebangs = true;
|
||||
NIX_DEBUG = 0;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
substituteAll ${nix_wrap_sh} $out/bin/nix-wrap
|
||||
chmod +x $out/bin/nix-wrap
|
||||
|
||||
mkdir -p $out/share
|
||||
cp ${nix_conf} $out/share/nix.conf
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = null;
|
||||
description = "nix bubblewrap wrapper";
|
||||
maintainers = [ ];
|
||||
broken = true;
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, glibc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nixtools";
|
||||
version = "${src.shortRev}";
|
||||
src = builtins.fetchGit {
|
||||
url = "ssh://git@bscpm04.bsc.es/rarias/nixtools";
|
||||
ref = "master";
|
||||
rev = "a103e392048ace3ed88ce74648b32c9e6ed094da";
|
||||
};
|
||||
buildInputs = [ glibc.static ];
|
||||
makeFlags = [ "DESTDIR=$(out)" ];
|
||||
preBuild = "env";
|
||||
dontPatchShebangs = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.pm.bsc.es/rarias/nixtools";
|
||||
description = "nix bubblewrap wrapper";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, perl
|
||||
, numactl
|
||||
, hwloc
|
||||
, boost
|
||||
, autoreconfHook
|
||||
, ovni
|
||||
, nosv
|
||||
, clangOmpss2
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@gitlab-internal.bsc.es/nos-v/nodes.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "6002ec9ae6eb876d962cc34366952a3b26599ba6"
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "1.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "nodes";
|
||||
rev = "version-${version}";
|
||||
hash = "sha256-cFb9pxcjtkMmH0CsGgUO9LTdXDNh7MCqicgGWawLrsU=";
|
||||
};
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nodes";
|
||||
inherit (source) src version;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
dontStrip = true;
|
||||
separateDebugInfo = true;
|
||||
|
||||
configureFlags = [
|
||||
"--with-nosv=${nosv}"
|
||||
"--with-ovni=${ovni}"
|
||||
] ++ lib.optionals doCheck [
|
||||
"--with-nodes-clang=${clangOmpss2}"
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
nativeCheckInputs = [
|
||||
clangOmpss2
|
||||
];
|
||||
|
||||
# The "bindnow" flags are incompatible with ifunc resolution mechanism. We
|
||||
# disable all by default, which includes bindnow.
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
numactl
|
||||
hwloc
|
||||
nosv
|
||||
ovni
|
||||
];
|
||||
|
||||
passthru = {
|
||||
inherit nosv;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.bsc.es/nos-v/nodes";
|
||||
description = "Runtime library designed to work on top of the nOS-V runtime";
|
||||
maintainers = with lib.maintainers.bsc; [ abonerib rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, autoreconfHook
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, numactl
|
||||
, hwloc
|
||||
, papi
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
, cacheline ? 64 # bits
|
||||
, ovni ? null
|
||||
, useGit ? false
|
||||
, gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8"
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "3.2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "nos-v";
|
||||
rev = "${version}";
|
||||
hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw=";
|
||||
};
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nosv";
|
||||
inherit (source) src version;
|
||||
hardeningDisable = [ "all" ];
|
||||
dontStrip = true;
|
||||
separateDebugInfo = true;
|
||||
configureFlags = [
|
||||
"--with-ovni=${ovni}"
|
||||
"CACHELINE_WIDTH=${toString cacheline}"
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
numactl
|
||||
hwloc
|
||||
ovni
|
||||
] ++ lib.optionals enablePapi [ papi ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://gitlab.bsc.es/nos-v/nos-v";
|
||||
description = "Tasking library enables the co-execution of multiple applications with system-wide scheduling and a centralized management of resources";
|
||||
maintainers = with lib.maintainers.bsc; [ abonerib rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, fetchurl
|
||||
, mpi
|
||||
, lib
|
||||
, symlinkJoin
|
||||
}:
|
||||
|
||||
let
|
||||
mpiAll = symlinkJoin {
|
||||
name = "mpi-all";
|
||||
paths = [ mpi.all ];
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "7.1-1";
|
||||
name = "osu-micro-benchmarks-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-${version}.tar.gz";
|
||||
sha256 = "sha256-hfTdi+HfMSVeIyhSdprluC6HpfsUvi+Ouhrp3o/+ORo=";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
enableParallelBuilding = true;
|
||||
nativeBuildInputs = [ mpiAll ];
|
||||
buildInputs = [ mpiAll ];
|
||||
hardeningDisable = [ "all" ];
|
||||
configureFlags = [
|
||||
"CC=mpicc"
|
||||
"CXX=mpicxx"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
for f in $(find $out -executable -type f); do
|
||||
ln -s "$f" $out/bin/$(basename "$f")
|
||||
done
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "OSU Micro-Benchmarks";
|
||||
homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/";
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
67
pkgs/overlay.nix
Normal file
67
pkgs/overlay.nix
Normal file
@@ -0,0 +1,67 @@
|
||||
final: prev:
|
||||
{
|
||||
# Set MPICH as default
|
||||
mpi = final.mpich;
|
||||
|
||||
# Configure the network for MPICH
|
||||
mpich = with final; let
|
||||
# pmix comes with the libraries in .out and headers in .dev
|
||||
pmixAll = symlinkJoin {
|
||||
name = "pmix-all";
|
||||
paths = [ pmix.dev pmix.out ];
|
||||
};
|
||||
in prev.mpich.overrideAttrs (old: {
|
||||
buildInput = old.buildInputs ++ [
|
||||
libfabric
|
||||
pmixAll
|
||||
];
|
||||
configureFlags = [
|
||||
"--enable-shared"
|
||||
"--enable-sharedlib"
|
||||
"--with-pm=no"
|
||||
"--with-device=ch4:ofi"
|
||||
"--with-pmi=pmix"
|
||||
"--with-pmix=${pmixAll}"
|
||||
"--with-libfabric=${libfabric}"
|
||||
"--enable-g=log"
|
||||
] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
|
||||
"FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
|
||||
"FCFLAGS=-fallow-argument-mismatch"
|
||||
];
|
||||
});
|
||||
|
||||
slurm = prev.slurm.overrideAttrs (old: {
|
||||
patches = (old.patches or []) ++ [
|
||||
# See https://bugs.schedmd.com/show_bug.cgi?id=19324
|
||||
./slurm-rank-expansion.patch
|
||||
];
|
||||
# Install also the pam_slurm_adopt library to restrict users from accessing
|
||||
# nodes with no job allocated.
|
||||
postBuild = (old.postBuild or "") + ''
|
||||
pushd contribs/pam_slurm_adopt
|
||||
make "PAM_DIR=$out/lib/security"
|
||||
popd
|
||||
'';
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
pushd contribs/pam_slurm_adopt
|
||||
make "PAM_DIR=$out/lib/security" install
|
||||
popd
|
||||
'';
|
||||
});
|
||||
|
||||
prometheus-slurm-exporter = prev.callPackage ./slurm-exporter.nix { };
|
||||
meteocat-exporter = prev.callPackage ./meteocat-exporter/default.nix { };
|
||||
upc-qaire-exporter = prev.callPackage ./upc-qaire-exporter/default.nix { };
|
||||
cudainfo = prev.callPackage ./cudainfo/default.nix { };
|
||||
|
||||
amd-uprof = prev.callPackage ./amd-uprof/default.nix { };
|
||||
|
||||
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
||||
# https://discourse.nixos.org/t/whats-the-right-way-to-make-a-custom-kernel-module-available/4636
|
||||
linuxPackages = prev.linuxPackages.extend (_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./amd-uprof/driver.nix { };
|
||||
});
|
||||
linuxPackages_latest = prev.linuxPackages_latest.extend(_final: _prev: {
|
||||
amd-uprof-driver = _prev.callPackage ./amd-uprof/driver.nix { };
|
||||
});
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, cmake
|
||||
, mpi
|
||||
, fetchFromGitHub
|
||||
, useGit ? false
|
||||
, gitBranch ? "master"
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git"
|
||||
, gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61"
|
||||
, enableDebug ? false
|
||||
# Only enable MPI if the build is native (fails on cross-compilation)
|
||||
, useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
|
||||
}:
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "1.12.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "ovni";
|
||||
rev = "${version}";
|
||||
hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E=";
|
||||
} // { shortRev = "a73afcf"; };
|
||||
};
|
||||
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ovni";
|
||||
inherit (source) src version;
|
||||
dontStrip = true;
|
||||
separateDebugInfo = true;
|
||||
postPatch = ''
|
||||
patchShebangs --build test/
|
||||
'';
|
||||
nativeBuildInputs = [ cmake ] ++ lib.optionals (useMpi) [ mpi ];
|
||||
buildInputs = lib.optionals (useMpi) [ mpi ];
|
||||
cmakeBuildType = if (enableDebug) then "Debug" else "Release";
|
||||
cmakeFlags = [
|
||||
"-DOVNI_GIT_COMMIT=${src.shortRev}"
|
||||
] ++ lib.optionals (!useMpi) [ "-DUSE_MPI=OFF" ];
|
||||
preCheck = ''
|
||||
export CTEST_OUTPUT_ON_FAILURE=1
|
||||
'';
|
||||
doCheck = true;
|
||||
checkTarget = "test";
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://ovni.readthedocs.io";
|
||||
description = "Obtuse but Versatile Nanoscale Instrumentation";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
cross = true;
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{ stdenv
|
||||
, popt
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pscom";
|
||||
version = "5.4.6-1";
|
||||
|
||||
src = builtins.fetchTarball {
|
||||
url = "https://github.com/ParaStation/${pname}/archive/${version}.tar.gz";
|
||||
sha256 = "1n9ic0j94iy09j287cfpfy0dd2bk17qakf1ml669jkibxbc5fqk8";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./
|
||||
'';
|
||||
|
||||
buildInputs = [ popt ];
|
||||
preferLocalBuild = true;
|
||||
|
||||
enableParallelBuilding = false;
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{ stdenv
|
||||
, pscom
|
||||
, perl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "psmpi";
|
||||
version = "5.4.6-1";
|
||||
|
||||
src = builtins.fetchTarball {
|
||||
url = "https://github.com/ParaStation/${pname}/archive/${version}.tar.gz";
|
||||
sha256 = "1kr624216fz8pmfgbwdb3ks77pr6zhrssmn16j3pwaq5mkf3i9wc";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs ./
|
||||
echo "${version}" > VERSION
|
||||
'';
|
||||
|
||||
preferLocalBuild = true;
|
||||
buildInputs = [ pscom ];
|
||||
nativeBuildInputs = [ perl ];
|
||||
#makeFlags = [ "V=1" ];
|
||||
|
||||
configureFlags = [
|
||||
"--with-confset=default"
|
||||
"--with-threading"
|
||||
"--disable-fortran"
|
||||
"MPICH2_LDFLAGS=-lpsco"
|
||||
];
|
||||
|
||||
enableParallelBuilding = false;
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, boost
|
||||
, libxml2
|
||||
, xml2
|
||||
, wxGTK32
|
||||
, autoconf
|
||||
, automake
|
||||
, paraverKernel
|
||||
, openssl
|
||||
, glibcLocales
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
let
|
||||
wx = wxGTK32;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxparaver";
|
||||
version = "4.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-performance-tools";
|
||||
repo = "wxparaver";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-YsO5gsuEFQdki3lQudEqgo5WXOt/fPdvNw5OxZQ86Zo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./do-not-steal-focus-on-redraw.patch
|
||||
|
||||
# Fix for boost >=1.87 (thanks to gamezelda)
|
||||
# https://aur.archlinux.org/cgit/aur.git/commit/?h=wxparaver&id=b0dcd08c472536e0a1a3cc1dfbc4c77d9f5e0d47
|
||||
./fix-boost-87.patch
|
||||
];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
# Fix the PARAVER_HOME variable
|
||||
postPatch = ''
|
||||
sed -i 's@^PARAVER_HOME=.*$@PARAVER_HOME='$out'@g' docs/wxparaver
|
||||
sed -i '1aexport LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"' docs/wxparaver
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
export CFLAGS="-O3"
|
||||
export CXXFLAGS="-O3"
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost=${boost}"
|
||||
"--with-wx-config=${wx}/bin/wx-config"
|
||||
"--with-paraver=${paraverKernel}"
|
||||
"--with-openssl=${openssl.dev}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
autoreconfHook
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
libxml2.dev
|
||||
xml2
|
||||
wx
|
||||
paraverKernel
|
||||
openssl.dev
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/include
|
||||
mkdir -p $out/lib/paraver-kernel
|
||||
mkdir -p $out/share/filters-config
|
||||
cp -p ${paraverKernel}/bin/* $out/bin
|
||||
# cp -p ${paraverKernel}/include/* $out/include
|
||||
cp -a ${paraverKernel}/lib/paraver-kernel $out/lib/paraver-kernel
|
||||
cp -p ${paraverKernel}/share/filters-config/* $out/share/filters-config
|
||||
|
||||
# Move man files to proper location
|
||||
mkdir -p $out/share/man
|
||||
mv $out/share/doc/wxparaver_help_contents/man $out/share/man/man1
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://tools.bsc.es/paraver";
|
||||
downloadPage = "https://github.com/bsc-performance-tools/wxparaver";
|
||||
description = "Performance analyzer based on event traces";
|
||||
longDescription = ''
|
||||
Trace-based visualization and analysis tool designed to study quantitative
|
||||
detailed metrics and obtain qualitative knowledge of the performance of
|
||||
applications, libraries, processors and whole architectures
|
||||
'';
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
From 2b185e1b5ce52808b3026334851dbcd5a640ed4d Mon Sep 17 00:00:00 2001
|
||||
From: aleixbonerib <aleix.boneribo@bsc.es>
|
||||
Date: Mon, 10 Jun 2024 20:59:45 +0200
|
||||
Subject: [PATCH] fix: do not set focus on redraw
|
||||
|
||||
Some wm can change the window size without focusing. Right now, when the
|
||||
plot is resized it takes back focus.
|
||||
---
|
||||
src/gtimeline.cpp | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/src/gtimeline.cpp b/src/gtimeline.cpp
|
||||
index 23ebef2..a896066 100644
|
||||
--- a/src/gtimeline.cpp
|
||||
+++ b/src/gtimeline.cpp
|
||||
@@ -899,7 +899,6 @@ void gTimeline::redraw()
|
||||
|
||||
drawZone->Refresh();
|
||||
|
||||
- SetFocus();
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.44.1
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
commit c2fa29f7f1bbde86f41417b198610253fff93667
|
||||
Author: Rodrigo Arias <rodarima@gmail.com>
|
||||
Date: Thu Mar 2 13:14:56 2023 +0100
|
||||
|
||||
Add the PCF option DONT_EXPAND_COLORS
|
||||
|
||||
Allows the user to specify the complete palette in the PCF, preventing
|
||||
Paraver from expanding the colors.
|
||||
|
||||
diff --git a/api/semanticcolor.cpp b/api/semanticcolor.cpp
|
||||
index 9f86960..22859eb 100644
|
||||
--- a/api/semanticcolor.cpp
|
||||
+++ b/api/semanticcolor.cpp
|
||||
@@ -295,8 +295,9 @@ rgb SemanticColor::getColor( PRV_UINT32 pos ) const
|
||||
{
|
||||
if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() )
|
||||
return ParaverConfig::getInstance()->getColorsTimelineColorZero();
|
||||
- pos = pos % colors.size();
|
||||
- return colors[ pos ];
|
||||
+ // Skip the black at 0
|
||||
+ pos = pos % (colors.size() - 1);
|
||||
+ return colors[ pos + 1 ];
|
||||
}
|
||||
|
||||
void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
|
||||
@@ -314,6 +315,12 @@ void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
|
||||
colors[ whichPos ] = whichColor;
|
||||
}
|
||||
|
||||
+void SemanticColor::cutAfter( PRV_UINT32 pos )
|
||||
+{
|
||||
+ if ( pos < colors.size() )
|
||||
+ colors.erase( colors.begin() + pos, colors.end() );
|
||||
+}
|
||||
+
|
||||
void SemanticColor::setCustomColor( TSemanticValue whichValue, rgb color )
|
||||
{
|
||||
customPalette[ whichValue ] = color;
|
||||
diff --git a/api/semanticcolor.h b/api/semanticcolor.h
|
||||
index a079556..bddf3d8 100644
|
||||
--- a/api/semanticcolor.h
|
||||
+++ b/api/semanticcolor.h
|
||||
@@ -114,6 +114,7 @@ class SemanticColor
|
||||
// Code Color methods
|
||||
PRV_UINT32 getNumColors() const;
|
||||
void setColor( PRV_UINT32 pos, rgb color );
|
||||
+ void cutAfter( PRV_UINT32 pos );
|
||||
void setCustomColor( TSemanticValue whichValue, rgb color );
|
||||
bool existCustomColors() const;
|
||||
const std::map<TSemanticValue, rgb>& getCustomPalette() const;
|
||||
diff --git a/api/trace.cpp b/api/trace.cpp
|
||||
index b0d2050..ee2ab69 100644
|
||||
--- a/api/trace.cpp
|
||||
+++ b/api/trace.cpp
|
||||
@@ -461,12 +461,21 @@ void TraceProxy::parsePCF( const string& whichFile )
|
||||
|
||||
rgb tmpColor;
|
||||
const std::map< uint32_t, PCFFileParser<>::rgb >& semanticColors = pcfParser.getSemanticColors();
|
||||
+ uint32_t maxValue = 0;
|
||||
+
|
||||
for ( auto it : semanticColors )
|
||||
{
|
||||
std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second;
|
||||
mySemanticColor.setColor( it.first, tmpColor );
|
||||
+ if (it.first > maxValue)
|
||||
+ maxValue = it.first;
|
||||
}
|
||||
|
||||
+ // Cut the palette after the highest defined value, so there are no
|
||||
+ // extra expanded values
|
||||
+ if ( !pcfParser.expandColors )
|
||||
+ mySemanticColor.cutAfter(maxValue);
|
||||
+
|
||||
myEventLabels = EventLabels( pcfParser );
|
||||
myStateLabels = StateLabels( pcfParser );
|
||||
|
||||
diff --git a/utils/traceparser/pcffileparser.cpp b/utils/traceparser/pcffileparser.cpp
|
||||
index 9245955..3a1aecb 100644
|
||||
--- a/utils/traceparser/pcffileparser.cpp
|
||||
+++ b/utils/traceparser/pcffileparser.cpp
|
||||
@@ -286,6 +286,7 @@ constexpr char PCF_LABEL_SPEED[] = "SPEED";
|
||||
constexpr char PCF_LABEL_FLAG_ICONS[] = "FLAG_ICONS";
|
||||
constexpr char PCF_LABEL_NUM_OF_STATE_COLORS[] = "NUM_OF_STATE_COLORS";
|
||||
constexpr char PCF_LABEL_YMAX_SCALE[] = "YMAX_SCALE";
|
||||
+constexpr char PCF_LABEL_DONT_EXPAND_COLORS[] = "DONT_EXPAND_COLORS";
|
||||
|
||||
template< typename dummyParser = std::nullptr_t >
|
||||
class DefaultOptionsParser : public PCFFileParser<>::SectionParser<>
|
||||
@@ -293,12 +294,13 @@ class DefaultOptionsParser : public PCFFileParser<>::SectionParser<>
|
||||
public:
|
||||
DefaultOptionsParser( PCFFileParser<> *whichMainParser ) : PCFFileParser<>::SectionParser<>( whichMainParser )
|
||||
{
|
||||
- parameterSetter[ PCF_LABEL_LEVEL ] = [this]( std::string line ) { mainParser->level = line; };
|
||||
- parameterSetter[ PCF_LABEL_UNITS ] = [this]( std::string line ) { mainParser->units = line; };
|
||||
- parameterSetter[ PCF_LABEL_LOOK_BACK ] = [this]( std::string line ) { mainParser->lookBack = line; };
|
||||
- parameterSetter[ PCF_LABEL_SPEED ] = [this]( std::string line ) { mainParser->speed = line; };
|
||||
- parameterSetter[ PCF_LABEL_FLAG_ICONS ] = [this]( std::string line ) { mainParser->flagIcons = line; };
|
||||
- parameterSetter[ PCF_LABEL_YMAX_SCALE ] = [this]( std::string line ) { mainParser->ymaxScale = line; };
|
||||
+ parameterSetter[ PCF_LABEL_LEVEL ] = [this]( std::string line ) { mainParser->level = line; };
|
||||
+ parameterSetter[ PCF_LABEL_UNITS ] = [this]( std::string line ) { mainParser->units = line; };
|
||||
+ parameterSetter[ PCF_LABEL_LOOK_BACK ] = [this]( std::string line ) { mainParser->lookBack = line; };
|
||||
+ parameterSetter[ PCF_LABEL_SPEED ] = [this]( std::string line ) { mainParser->speed = line; };
|
||||
+ parameterSetter[ PCF_LABEL_FLAG_ICONS ] = [this]( std::string line ) { mainParser->flagIcons = line; };
|
||||
+ parameterSetter[ PCF_LABEL_YMAX_SCALE ] = [this]( std::string line ) { mainParser->ymaxScale = line; };
|
||||
+ parameterSetter[ PCF_LABEL_DONT_EXPAND_COLORS ] = [this]( std::string line ) { mainParser->expandColors = false; };
|
||||
}
|
||||
|
||||
virtual ~DefaultOptionsParser() = default;
|
||||
diff --git a/utils/traceparser/pcffileparser.h b/utils/traceparser/pcffileparser.h
|
||||
index 5fe2634..c12ecc8 100644
|
||||
--- a/utils/traceparser/pcffileparser.h
|
||||
+++ b/utils/traceparser/pcffileparser.h
|
||||
@@ -100,6 +100,7 @@ class PCFFileParser
|
||||
void setEventLabel( TEventType eventType, const std::string& label );
|
||||
void setEventValues( TEventType eventType, const std::map< TEventValue, std::string >& values );
|
||||
void setEventValueLabel( TEventType eventType, TEventValue eventValue, const std::string& label );
|
||||
+ bool expandColors = true;
|
||||
|
||||
private:
|
||||
struct EventTypeData
|
||||
@@ -1,87 +0,0 @@
|
||||
From 7ecd888e2ebb9e8c5582851d3c50bff61022708e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com>
|
||||
Date: Sat, 29 Mar 2025 18:14:25 +0000
|
||||
Subject: [PATCH] tutorialsdownload: Fix Boost ASIO 1.87.0 removals
|
||||
|
||||
---
|
||||
src/tutorialsdownload.cpp | 25 ++++++++++++-------------
|
||||
1 file changed, 12 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/tutorialsdownload.cpp b/src/tutorialsdownload.cpp
|
||||
index a1921fd..6ce9dc2 100644
|
||||
--- a/src/tutorialsdownload.cpp
|
||||
+++ b/src/tutorialsdownload.cpp
|
||||
@@ -121,13 +121,13 @@ void TutorialsProgress::updateInstall( int whichValue )
|
||||
class client
|
||||
{
|
||||
public:
|
||||
- client( boost::asio::io_service& io_service,
|
||||
+ client( boost::asio::io_context& io_context,
|
||||
boost::asio::ssl::context& context,
|
||||
const std::string& server, const std::string& path,
|
||||
ofstream& storeFile,
|
||||
TutorialsProgress *progress )
|
||||
- : resolver_( io_service ),
|
||||
- socket_( io_service, context ),
|
||||
+ : resolver_( io_context ),
|
||||
+ socket_( io_context, context ),
|
||||
store_( storeFile ),
|
||||
progress_( progress )
|
||||
{
|
||||
@@ -143,8 +143,7 @@ class client
|
||||
|
||||
// Start an asynchronous resolve to translate the server and service names
|
||||
// into a list of endpoints.
|
||||
- tcp::resolver::query query( server, "https" );
|
||||
- resolver_.async_resolve( query,
|
||||
+ resolver_.async_resolve( server, "https",
|
||||
boost::bind( &client::handle_resolve,
|
||||
this,
|
||||
boost::asio::placeholders::error,
|
||||
@@ -154,7 +153,7 @@ class client
|
||||
private:
|
||||
|
||||
void handle_resolve( const boost::system::error_code& err,
|
||||
- tcp::resolver::iterator endpoint_iterator )
|
||||
+ const tcp::resolver::results_type& endpoints )
|
||||
{
|
||||
if ( !err )
|
||||
{
|
||||
@@ -162,7 +161,7 @@ class client
|
||||
socket_.set_verify_callback( boost::bind( &client::verify_certificate, this, _1, _2 ) );
|
||||
|
||||
boost::asio::async_connect( socket_.lowest_layer(),
|
||||
- endpoint_iterator,
|
||||
+ endpoints,
|
||||
boost::bind( &client::handle_connect,
|
||||
this,
|
||||
boost::asio::placeholders::error ) );
|
||||
@@ -536,9 +535,9 @@ bool TutorialsDownload::downloadTutorialsList() const
|
||||
boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 );
|
||||
ctx.set_default_verify_paths();
|
||||
|
||||
- boost::asio::io_service io_service;
|
||||
- client c( io_service, ctx, server, path, storeFile, nullptr );
|
||||
- io_service.run();
|
||||
+ boost::asio::io_context io_context;
|
||||
+ client c( io_context, ctx, server, path, storeFile, nullptr );
|
||||
+ io_context.run();
|
||||
|
||||
doneDownload = true;
|
||||
}
|
||||
@@ -580,9 +579,9 @@ bool TutorialsDownload::download( const TutorialData& whichTutorial, string& tut
|
||||
boost::asio::ssl::context ctx( boost::asio::ssl::context::sslv23 );
|
||||
ctx.set_default_verify_paths();
|
||||
|
||||
- boost::asio::io_service io_service;
|
||||
- client c( io_service, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
|
||||
- io_service.run();
|
||||
+ boost::asio::io_context io_context;
|
||||
+ client c( io_context, ctx, std::string( server.mb_str() ), std::string( path.mb_str() ), storeFile, &progress );
|
||||
+ io_context.run();
|
||||
}
|
||||
catch ( ParaverKernelException& e )
|
||||
{
|
||||
--
|
||||
2.49.0
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
commit 60aa3ffa05f6b40db191a880e9e622d608744c1f
|
||||
Author: Aleix Boné <aleix.boneribo@bsc.es>
|
||||
Date: Sun Jul 21 12:11:30 2025 +0200
|
||||
|
||||
fix libxml2 deprecated macro
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7fe1876..3ce1091 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -46,7 +46,10 @@ AC_PROG_CPP
|
||||
AC_PROG_CXXCPP
|
||||
AC_PROG_SED
|
||||
|
||||
-AM_PATH_XML2
|
||||
+PKG_PROG_PKG_CONFIG
|
||||
+PKG_CHECK_MODULES([XML], [libxml-2.0])
|
||||
+
|
||||
+AC_SUBST(XML_CPPFLAGS, $XML_CFLAGS)
|
||||
|
||||
AX_BOOST_BASE(1.36)
|
||||
AX_BOOST_SERIALIZATION
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, boost
|
||||
, libxml2
|
||||
, xml2
|
||||
, autoconf
|
||||
, automake
|
||||
, pkg-config
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "paraver-kernel";
|
||||
version = "4.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-performance-tools";
|
||||
repo = "paraver-kernel";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Xs7g8ITZhPt00v7o2WlTddbou8C8Rc9kBMFpl2WsCS4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/bsc-performance-tools/paraver-kernel/pull/11
|
||||
# TODO: add this back if it's still relevant
|
||||
# ./dont-expand-colors.patch
|
||||
./fix-libxml2-deprecation.patch
|
||||
];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
preConfigure = ''
|
||||
export CFLAGS="-O3 -DPARALLEL_ENABLED"
|
||||
export CXXFLAGS="-O3 -DPARALLEL_ENABLED"
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost=${boost}"
|
||||
"--enable-openmp"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
autoconf
|
||||
automake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
libxml2.dev
|
||||
xml2
|
||||
zlib
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://tools.bsc.es/paraver";
|
||||
downloadPage = "https://github.com/bsc-performance-tools/paraver-kernel";
|
||||
description = "Kernel library used by wxparaver";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,286 +0,0 @@
|
||||
--- a/src/wxparaver/src/gtimeline.cpp 2019-09-13 13:18:03.000000000 +0200
|
||||
+++ b/src/wxparaver/src/gtimeline.cpp 2020-11-30 13:18:50.121429888 +0100
|
||||
@@ -607,8 +607,8 @@
|
||||
// Paint blank image while redrawing
|
||||
wxClientDC dc( drawZone );
|
||||
#ifdef __WXGTK__
|
||||
- dc.DrawBitmap( bufferImage, 0, 0, false );
|
||||
- drawZone->Update();
|
||||
+// dc.DrawBitmap( bufferImage, 0, 0, false );
|
||||
+// drawZone->Update();
|
||||
#endif
|
||||
|
||||
if( !drawAxis( bufferDraw, selectedSet ) )
|
||||
@@ -1365,13 +1365,66 @@
|
||||
|
||||
void gTimeline::drawRowEvents( wxDC& eventdc, wxDC& eventmaskdc, TObjectOrder rowPos, hash_set< PRV_INT32 >& eventsToDraw )
|
||||
{
|
||||
+ int last_x = -100, x, xx;
|
||||
+ int i, neigh, max_x;
|
||||
+
|
||||
+ /* Keep track of other events in nearby pixels */
|
||||
+ max_x = myWindow->getWidth();
|
||||
+ int *table = new int[max_x];
|
||||
+
|
||||
+ for(i=0; i<max_x; i++)
|
||||
+ {
|
||||
+ table[i] = 0;
|
||||
+ }
|
||||
+
|
||||
for( hash_set< PRV_INT32 >::iterator it = eventsToDraw.begin(); it != eventsToDraw.end(); ++it )
|
||||
{
|
||||
+ /* Add a new event in the x position in the table */
|
||||
+ x = *it;
|
||||
+ assert(0 <= x);
|
||||
+ assert(x < max_x);
|
||||
+ table[*it]++;
|
||||
+ }
|
||||
+
|
||||
+ for( hash_set< PRV_INT32 >::iterator it = eventsToDraw.begin(); it != eventsToDraw.end(); ++it )
|
||||
+ {
|
||||
+ /*
|
||||
+ * Draws an event with 4 segments: AE, BF, CG and DH
|
||||
+ *
|
||||
+ * A B C D
|
||||
+ * * * * *
|
||||
+ * * * * *
|
||||
+ * * * * *
|
||||
+ * * F G H
|
||||
+ * *
|
||||
+ * *
|
||||
+ * E
|
||||
+ */
|
||||
+
|
||||
+ /* If the event is very close to another one, we paint it red, so we
|
||||
+ * now that we may need to zoom to see more closely how many events
|
||||
+ * are there. Otherwise we paint it green. */
|
||||
+ x = *it;
|
||||
+
|
||||
+ /* Count neighbour events */
|
||||
+ neigh = 0;
|
||||
+ for(xx=x-5; xx<=x+5; xx++)
|
||||
+ {
|
||||
+ if(0 <= xx && xx < max_x)
|
||||
+ neigh += table[xx];
|
||||
+ }
|
||||
+
|
||||
+ /* Paint the event red if there are more events close */
|
||||
+ if(neigh > 1)
|
||||
+ eventdc.SetPen( *wxRED_PEN );
|
||||
+ else
|
||||
+ eventdc.SetPen( *wxGREEN_PEN );
|
||||
+
|
||||
eventdc.DrawLine( *it, rowPos - 6, *it, rowPos );
|
||||
- eventdc.DrawLine( *it+1, rowPos - 6, *it+1, rowPos-3 );
|
||||
- eventdc.DrawLine( *it+2, rowPos - 6, *it+2, rowPos-3 );
|
||||
- eventdc.DrawLine( *it+3, rowPos - 6, *it+3, rowPos-3 );
|
||||
- eventdc.DrawLine( *it+4, rowPos - 6, *it+4, rowPos-3 );
|
||||
+// eventdc.DrawLine( *it+1, rowPos - 6, *it+1, rowPos-3 );
|
||||
+// eventdc.DrawLine( *it+2, rowPos - 6, *it+2, rowPos-3 );
|
||||
+// eventdc.DrawLine( *it+3, rowPos - 6, *it+3, rowPos-3 );
|
||||
+// eventdc.DrawLine( *it+4, rowPos - 6, *it+4, rowPos-3 );
|
||||
#ifndef __WXMAC__
|
||||
eventmaskdc.DrawLine( *it, rowPos - 6, *it, rowPos );
|
||||
eventmaskdc.DrawLine( *it+1, rowPos - 6, *it+1, rowPos-3 );
|
||||
@@ -1379,8 +1432,12 @@
|
||||
eventmaskdc.DrawLine( *it+3, rowPos - 6, *it+3, rowPos-3 );
|
||||
eventmaskdc.DrawLine( *it+4, rowPos - 6, *it+4, rowPos-3 );
|
||||
#endif
|
||||
+
|
||||
+ last_x = x;
|
||||
}
|
||||
|
||||
+ delete table;
|
||||
+
|
||||
}
|
||||
|
||||
|
||||
@@ -2427,7 +2484,7 @@
|
||||
|
||||
motionEvent = event;
|
||||
if( !event.ShiftDown() )
|
||||
- timerMotion->Start( 20, true );
|
||||
+ timerMotion->Start( 2, true );
|
||||
|
||||
wxMemoryDC dc( bufferImage );
|
||||
// PRV_UINT32 precision = ParaverConfig::getInstance()->getTimelinePrecision();
|
||||
@@ -4651,12 +4708,18 @@
|
||||
|
||||
void gTimeline::OnTimerMotion( wxTimerEvent& event )
|
||||
{
|
||||
+ int mx, my;
|
||||
+
|
||||
+ mx = motionEvent.GetX();
|
||||
+ my = motionEvent.GetY();
|
||||
+
|
||||
if( motionEvent.GetX() < objectAxisPos + 1 || motionEvent.GetX() > bufferImage.GetWidth() - drawBorder ||
|
||||
motionEvent.GetY() < drawBorder || motionEvent.GetY() > timeAxisPos - 1 )
|
||||
return;
|
||||
|
||||
wxMemoryDC dc( bufferImage );
|
||||
wxColour tmpColor;
|
||||
+ wxClientDC paintDC( drawZone );
|
||||
|
||||
wxString label;
|
||||
if( zooming || timing || wxGetApp().GetGlobalTiming() )
|
||||
@@ -4704,7 +4767,11 @@
|
||||
#endif
|
||||
|
||||
if( tmpColor == backgroundColour )
|
||||
+ {
|
||||
+ /* Just clean and exit */
|
||||
+ paintDC.DrawBitmap( drawImage, 0, 0 );
|
||||
return;
|
||||
+ }
|
||||
|
||||
rgb color = { (ParaverColor)tmpColor.Red(), (ParaverColor)tmpColor.Green(), (ParaverColor)tmpColor.Blue() };
|
||||
TSemanticValue firstValue, secondValue;
|
||||
@@ -4762,38 +4829,109 @@
|
||||
}
|
||||
}
|
||||
|
||||
-#ifndef __WXGTK__
|
||||
- wxClientDC paintDC( drawZone );
|
||||
- #ifdef __WXMAC__
|
||||
- drawStackedImages( paintDC );
|
||||
- #else
|
||||
- paintDC.DrawBitmap( drawImage, 0, 0 );
|
||||
- #endif
|
||||
-#else
|
||||
- #if wxMAJOR_VERSION<3
|
||||
- wxPaintDC paintDC( drawZone );
|
||||
- #else
|
||||
- wxClientDC paintDC( drawZone );
|
||||
- #endif
|
||||
- paintDC.DrawBitmap( drawImage, 0, 0 );
|
||||
-#endif
|
||||
-
|
||||
paintDC.SetFont( semanticFont );
|
||||
+ paintDC.SetPen( backgroundColour );
|
||||
+ paintDC.SetBrush( backgroundColour );
|
||||
+ paintDC.SetTextForeground( foregroundColour );
|
||||
+
|
||||
+ /* Draw the label close to the mouse, so it's easier to follow */
|
||||
+ int label_x0, label_y0;
|
||||
+ label_x0 = mx + 20;
|
||||
+ label_y0 = my + 20;
|
||||
+ paintDC.SetPen( *wxBLACK_PEN );
|
||||
+ paintDC.SetBrush( *wxBLACK_BRUSH );
|
||||
+
|
||||
+ /* Draw a filled black rectangle behind the label, so is easy to read
|
||||
+ * when placed over multiple colors from the trace */
|
||||
+ int rect_x0, rect_y0, rect_w, rect_h;
|
||||
+ rect_x0 = label_x0 - 5;
|
||||
+ rect_y0 = label_y0 - 5;
|
||||
+
|
||||
+ TObjectOrder row;
|
||||
+ TTime time;
|
||||
+
|
||||
+ /* Fills "row" and "time" objects if is over a TimeObject (?) */
|
||||
+ bool print_duration = true;
|
||||
+ double tp, tn;
|
||||
+
|
||||
+ /* This whole thing to get the event is completely crap. We may get a
|
||||
+ * pixel here that belong to a different event, probably due to
|
||||
+ * rounding operations when dealing with time.
|
||||
+ *
|
||||
+ * To avoid giving misleading information, we only print the time when
|
||||
+ * both neighbour pixels are also from the same event */
|
||||
+ print_duration &= pixelToTimeObject(mx, my, time, row);
|
||||
+ print_duration &= pixelToTimeObject(mx-2, my, tp, row);
|
||||
+ print_duration &= pixelToTimeObject(mx+2, my, tn, row);
|
||||
+
|
||||
+ if(time <= tp) print_duration = false;
|
||||
+ if(tn <= time) print_duration = false;
|
||||
+
|
||||
+ //computeWhatWhere(time, row, 0.0, false, false);
|
||||
+
|
||||
+ //printf("time = %e\n", time);
|
||||
+ //printf("begin time = %e\n", myWindow->getBeginTime(row));
|
||||
+
|
||||
+ if(print_duration)
|
||||
+ {
|
||||
+ double t0, t1, t, dt;
|
||||
+ t = time;
|
||||
+
|
||||
+ myWindow->init(t, CREATEEVENTS + CREATECOMMS, false );
|
||||
+ myWindow->initRow(row, t, CREATEEVENTS + CREATECOMMS, false );
|
||||
+
|
||||
+ t0 = myWindow->getBeginTime(row);
|
||||
+ t1 = myWindow->getEndTime(row);
|
||||
+
|
||||
+ //printf("t0=%e t=%e t1=%e\n", t0, t, t1);
|
||||
+ while(!(t0 <= t && t <= t1))
|
||||
+ {
|
||||
+ myWindow->calcNext(row);
|
||||
+ t0 = myWindow->getBeginTime(row);
|
||||
+ t1 = myWindow->getEndTime(row);
|
||||
+ //printf("t0=%e t=%e t1=%e\n", t0, t, t1);
|
||||
+ if(t0 > t)
|
||||
+ {
|
||||
+ //printf("we are out\n");
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* Only add the duration if we are more than one pixel away from the
|
||||
+ * border */
|
||||
+ if(t0 < tp && tn < t1)
|
||||
+ {
|
||||
+ if(t0 > t)
|
||||
+ dt = 0;
|
||||
+ else
|
||||
+ dt = t1 - t0;
|
||||
+
|
||||
+ assert(t0 <= time);
|
||||
+ assert(time <= t1);
|
||||
+
|
||||
+ wxString duration = wxString::FromAscii( LabelConstructor::timeLabel(
|
||||
+ myWindow->traceUnitsToWindowUnits( dt ),
|
||||
+ myWindow->getTimeUnit(),
|
||||
+ ParaverConfig::getInstance()->getTimelinePrecision() ).c_str() );
|
||||
+
|
||||
+ label << wxT( " (" ) << duration << wxT(")");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
wxSize objectExt = paintDC.GetTextExtent( label );
|
||||
+ rect_w = objectExt.GetWidth() + 10;
|
||||
+ rect_h = objectExt.GetHeight() + 10;
|
||||
+
|
||||
+ /* Erase previous bitmap */
|
||||
+ paintDC.DrawBitmap( drawImage, 0, 0 );
|
||||
+
|
||||
+ /* Draw black rectangle */
|
||||
+ paintDC.DrawRectangle( rect_x0, rect_y0, rect_w, rect_h );
|
||||
|
||||
+ /* Then place the label */
|
||||
+ paintDC.DrawText( label, label_x0, label_y0);
|
||||
paintDC.SetPen( backgroundColour );
|
||||
paintDC.SetBrush( backgroundColour );
|
||||
-// paintDC.DrawRectangle( ( bufferImage.GetWidth() - objectAxisPos ) / 2, timeAxisPos + 1, objectExt.GetWidth() + 30, bufferImage.GetHeight() - timeAxisPos );
|
||||
- if( !( zooming || timing || wxGetApp().GetGlobalTiming() ) )
|
||||
- {
|
||||
- paintDC.SetBrush( tmpColor );
|
||||
- paintDC.DrawRectangle( ( bufferImage.GetWidth() - objectAxisPos ) / 2, timeAxisPos + 2, 10, bufferImage.GetHeight() - timeAxisPos - 3 );
|
||||
- }
|
||||
- paintDC.SetTextForeground( foregroundColour );
|
||||
- if( zooming )
|
||||
- paintDC.DrawText( label, ( bufferImage.GetWidth() - objectAxisPos ) / 2 + objectAxisPos - ( objectExt.GetWidth() / 2 ), timeAxisPos + 3 );
|
||||
- else
|
||||
- paintDC.DrawText( label, ( bufferImage.GetWidth() - objectAxisPos ) / 2 + 12, timeAxisPos + 3 );
|
||||
}
|
||||
|
||||
void gTimeline::OnTimerWheel( wxTimerEvent& event )
|
||||
@@ -5075,7 +5213,11 @@
|
||||
endRow = TObjectOrder( floor( ( y - drawBorder - 1 ) / heightPerRow ) );
|
||||
|
||||
if( endRow >= numObjects )
|
||||
+ {
|
||||
endRow = numObjects - 1;
|
||||
+ printf("endRow exceeds numObjects, capped to %d\n", endRow);
|
||||
+ }
|
||||
+ //printf("endRow = %d\n", endRow);
|
||||
onObject = selected[ endRow ];
|
||||
|
||||
return true;
|
||||
@@ -1,77 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, boost
|
||||
, libxml2
|
||||
, xml2
|
||||
, fetchurl
|
||||
, wxGTK32
|
||||
, autoconf
|
||||
, automake
|
||||
, openssl # For boost
|
||||
# Custom patches :)
|
||||
, enableMouseLabel ? false
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
wx = wxGTK32;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxparaver";
|
||||
version = "4.10.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-${version}-src.tar.bz2";
|
||||
sha256 = "a7L15viCXtQS9vAsdFzCFlUavUzl4Y0yOYmVSCrdWBU=";
|
||||
};
|
||||
|
||||
patches = []
|
||||
++ optional (enableMouseLabel) ./mouse-label.patch;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# What would we do without the great gamezelda:
|
||||
# https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=wxparaver
|
||||
postPatch = ''
|
||||
pushd src/wxparaver
|
||||
sed -i \
|
||||
-e 's|-lparaver-api -lparaver-kernel|-L../../paraver-kernel/src/.libs -L../../paraver-kernel/api/.libs -lparaver-api -lparaver-kernel -lssl -lcrypto -ldl|g' \
|
||||
-e '$awxparaver_bin_CXXFLAGS = @CXXFLAGS@ -I../../paraver-kernel -I../../paraver-kernel/api' \
|
||||
src/Makefile.am
|
||||
|
||||
sed -i 's| -L$PARAVER_LIBDIR||g' configure.ac
|
||||
popd
|
||||
|
||||
# Patch shebang as /usr/bin/env is missing in nix
|
||||
sed -i '1c#!/bin/sh' src/paraver-cfgs/install.sh
|
||||
'';
|
||||
#TODO: Move the sed commands to proper patches (and maybe send them upstream?)
|
||||
|
||||
preConfigure = ''
|
||||
pushd src/wxparaver
|
||||
autoreconf -i -f
|
||||
popd
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost=${boost}"
|
||||
"--with-wx-config=${wx}/bin/wx-config"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
xml2
|
||||
libxml2.dev
|
||||
wx
|
||||
openssl.dev
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, fetchFromGitHub
|
||||
, boost
|
||||
, libxml2
|
||||
, xml2
|
||||
, fetchurl
|
||||
, wxGTK30-gtk3
|
||||
, paraver-kernel
|
||||
}:
|
||||
|
||||
let
|
||||
wx = wxGTK30-gtk3;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wxparaver";
|
||||
version = "4.8.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://ftp.tools.bsc.es/wxparaver/wxparaver-${version}-src.tar.bz2";
|
||||
sha256 = "0b8rrhnf7h8j72pj6nrxkrbskgg9b5w60nxi47nxg6275qvfq8hd";
|
||||
};
|
||||
|
||||
postUnpack = "sourceRoot=$sourceRoot/src/wxparaver";
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
configureFlagsArray=(
|
||||
"--with-boost=${boost}"
|
||||
"--with-wx-config=${wx}/bin/wx-config"
|
||||
--with-wxpropgrid-dir=
|
||||
"--with-paraver=${paraver-kernel}"
|
||||
"--enable-debug=yes"
|
||||
"CXXFLAGS=-g"
|
||||
"CFLAGS=-g"
|
||||
)
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
xml2
|
||||
libxml2.dev
|
||||
wx
|
||||
paraver-kernel
|
||||
];
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/common/env.c b/src/common/env.c
|
||||
index 987846d..73d3b3b 100644
|
||||
--- a/src/common/env.c
|
||||
+++ b/src/common/env.c
|
||||
@@ -1941,7 +1941,7 @@ char **env_array_user_default(const char *username, int timeout, int mode,
|
||||
char **env = NULL;
|
||||
char *starttoken = "XXXXSLURMSTARTPARSINGHEREXXXX";
|
||||
char *stoptoken = "XXXXSLURMSTOPPARSINGHEREXXXXX";
|
||||
- char cmdstr[256], *env_loc = NULL;
|
||||
+ char cmdstr[MAXPATHLEN], *env_loc = NULL;
|
||||
char *stepd_path = NULL;
|
||||
int fd1, fd2, fildes[2], found, fval, len, rc, timeleft;
|
||||
int buf_read, buf_rem, config_timeout;
|
||||
@@ -1,87 +0,0 @@
|
||||
{ stdenv, lib, fetchFromGitHub, pkg-config, libtool, curl
|
||||
, python3, munge, perl, pam, zlib, shadow, coreutils
|
||||
, ncurses, libmysqlclient, lua, hwloc, numactl
|
||||
, readline, freeipmi, xorg, lz4, rdma-core, nixosTests
|
||||
, pmix, enableX11 ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "slurm";
|
||||
version = "16.05.8.1";
|
||||
|
||||
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
|
||||
# because the latter does not keep older releases.
|
||||
src = fetchFromGitHub {
|
||||
owner = "SchedMD";
|
||||
repo = "slurm";
|
||||
# The release tags use - instead of .
|
||||
rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
|
||||
sha256 = "1fkrbi4f22jb2pq19sv3j2yyvac4nh25fk8mzw6ic24swxp8wq9s";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
patches = [
|
||||
./major.patch
|
||||
./mvwprintw.patch
|
||||
# increase string length to allow for full
|
||||
# path of 'echo' in nix store
|
||||
#./common-env-echo.patch
|
||||
# Required for configure to pick up the right dlopen path
|
||||
#./pmix-configure.patch
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace src/common/env.c \
|
||||
--replace "/bin/echo" "${coreutils}/bin/echo"
|
||||
'';
|
||||
|
||||
# nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode'
|
||||
# https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es
|
||||
# this doesn't fix tests completely at least makes slurmd to launch
|
||||
hardeningDisable = [ "fortify" "bindnow" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config libtool python3 ];
|
||||
buildInputs = [
|
||||
curl python3 munge perl pam zlib
|
||||
libmysqlclient ncurses lz4 rdma-core
|
||||
lua hwloc numactl readline freeipmi shadow.su
|
||||
pmix
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"CFLAGS=-fcommon"
|
||||
"--with-freeipmi=${freeipmi}"
|
||||
"--with-hwloc=${hwloc}"
|
||||
"--with-lz4=${lz4.dev}"
|
||||
"--with-munge=${munge}"
|
||||
"--with-zlib=${zlib}"
|
||||
"--with-ofed=${rdma-core}"
|
||||
"--sysconfdir=/etc/slurm"
|
||||
"--with-pmix=${pmix}"
|
||||
"--disable-gtktest"
|
||||
"--disable-x11"
|
||||
];
|
||||
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs ./doc/html/shtml2html.py
|
||||
patchShebangs ./doc/man/man2html.py
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
rm -f $out/lib/*.la $out/lib/slurm/*.la
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru.tests.slurm = nixosTests.slurm;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.schedmd.com/";
|
||||
description = "Simple Linux Utility for Resource Management";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ jagajaga markuskowa ];
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
--- a/src/plugins/task/cgroup/task_cgroup_devices.c 1970-01-01 01:00:01.000000000 +0100
|
||||
+++ b/src/plugins/task/cgroup/task_cgroup_devices.c 1970-01-01 01:00:01.000000000 +0100
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <glob.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <slurm/slurm.h>
|
||||
#include <slurm/slurm_errno.h>
|
||||
#include "src/common/xstring.h"
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/src/smap/partition_functions.c 2023-04-02 21:07:54.505816546 +0200
|
||||
+++ b/src/smap/partition_functions.c 2023-04-02 21:07:43.512816197 +0200
|
||||
@@ -588,7 +588,7 @@
|
||||
else
|
||||
tmp_state = "unk";
|
||||
mvwprintw(text_win, main_ycord, main_xcord,
|
||||
- tmp_state);
|
||||
+ "%s", tmp_state);
|
||||
main_xcord += 7;
|
||||
|
||||
if (part_ptr->max_time == INFINITE)
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, slurm
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pmi2-${version}";
|
||||
|
||||
inherit (slurm) src version prePatch nativeBuildInputs buildInputs
|
||||
configureFlags preConfigure;
|
||||
|
||||
# Only build the pmi2 library
|
||||
preBuild = ''cd contribs/pmi2'';
|
||||
|
||||
# Include also the pmi.h header
|
||||
postInstall = ''
|
||||
mkdir -p $out/include
|
||||
cp ../../slurm/pmi.h $out/include
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/configure b/configure
|
||||
index 1cf53bc..ab68441 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -21207,7 +21207,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext
|
||||
as_fn_error $? "error processing $x_ac_cv_pmix_libdir: PMIx v3.x was already found in one of the previous paths" "$LINENO" 5
|
||||
fi
|
||||
_x_ac_pmix_v3_found="1"
|
||||
- PMIX_V3_CPPFLAGS="-I$x_ac_cv_pmix_dir/include"
|
||||
+ PMIX_V3_CPPFLAGS="-I$x_ac_cv_pmix_dir/include -DPMIXP_V3_LIBPATH=\\\"$x_ac_cv_pmix_libdir\\\""
|
||||
if test "$ac_with_rpath" = "yes"; then
|
||||
PMIX_V3_LDFLAGS="-Wl,-rpath -Wl,$x_ac_cv_pmix_libdir -L$x_ac_cv_pmix_libdir"
|
||||
else
|
||||
@@ -1,22 +0,0 @@
|
||||
{ slurm }:
|
||||
|
||||
slurm.overrideAttrs (old: {
|
||||
patches = (old.patches or []) ++ [
|
||||
# See https://bugs.schedmd.com/show_bug.cgi?id=19324
|
||||
# Still unmerged as of 2025-10-03, another corpo-cancer.
|
||||
./slurm-rank-expansion.patch
|
||||
];
|
||||
# Install also the pam_slurm_adopt library to restrict users from accessing
|
||||
# nodes with no job allocated.
|
||||
# TODO: Review pam_slurm_adopt, I don't trust their code much.
|
||||
postBuild = (old.postBuild or "") + ''
|
||||
pushd contribs/pam_slurm_adopt
|
||||
make "PAM_DIR=$out/lib/security"
|
||||
popd
|
||||
'';
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
pushd contribs/pam_slurm_adopt
|
||||
make "PAM_DIR=$out/lib/security" install
|
||||
popd
|
||||
'';
|
||||
})
|
||||
@@ -1,82 +0,0 @@
|
||||
{ stdenv, lib, fetchFromGitHub, pkg-config, libtool, curl
|
||||
, python3, munge, perl, pam, openssl
|
||||
, ncurses, libmysqlclient, gtk2, lua, hwloc, numactl
|
||||
, readline, freeipmi, libssh2, xorg
|
||||
, pmix
|
||||
# enable internal X11 support via libssh2
|
||||
, enableX11 ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "slurm-libpmi2-${version}";
|
||||
version = "17.11.9-2";
|
||||
|
||||
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
|
||||
# because the latter does not keep older releases.
|
||||
src = fetchFromGitHub {
|
||||
owner = "SchedMD";
|
||||
repo = "slurm";
|
||||
# The release tags use - instead of .
|
||||
rev = "${builtins.replaceStrings ["."] ["-"] name}";
|
||||
sha256 = "1lq4ac6yjai6wh979dciw8v3d99zbd3w36rfh0vpncqm672fg1qy";
|
||||
};
|
||||
|
||||
outputs = [ "out" ];
|
||||
|
||||
prePatch = lib.optional enableX11 ''
|
||||
substituteInPlace src/common/x11_util.c \
|
||||
--replace '"/usr/bin/xauth"' '"${xorg.xauth}/bin/xauth"'
|
||||
'';
|
||||
|
||||
# nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode'
|
||||
# https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es
|
||||
# this doesn't fix tests completely at least makes slurmd to launch
|
||||
hardeningDisable = [ "bindnow" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config libtool ];
|
||||
buildInputs = [
|
||||
curl python3 munge perl pam openssl
|
||||
libmysqlclient ncurses gtk2
|
||||
lua hwloc numactl readline freeipmi
|
||||
pmix
|
||||
] ++ lib.optionals enableX11 [ libssh2 xorg.xauth ];
|
||||
|
||||
configureFlags = with lib;
|
||||
[ "--with-munge=${munge}"
|
||||
"--with-ssl=${openssl.dev}"
|
||||
"--with-hwloc=${hwloc.dev}"
|
||||
"--with-freeipmi=${freeipmi}"
|
||||
"--sysconfdir=/etc/slurm"
|
||||
"--with-pmix=${pmix}"
|
||||
] ++ (optional (gtk2 == null) "--disable-gtktest")
|
||||
++ (optional enableX11 "--with-libssh2=${libssh2.dev}");
|
||||
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs ./doc/html/shtml2html.py
|
||||
patchShebangs ./doc/man/man2html.py
|
||||
patchShebangs ./configure
|
||||
'';
|
||||
|
||||
preBuild = ''cd contribs/pmi2'';
|
||||
|
||||
#buildPhase = ''
|
||||
# pushd contrib/pmi2
|
||||
# make -j install SHELL=${SHELL}
|
||||
# popd
|
||||
#'';
|
||||
|
||||
postInstall = ''
|
||||
rm -f $out/lib/*.la $out/lib/slurm/*.la
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = http://www.schedmd.com/;
|
||||
description = "Simple Linux Utility for Resource Management";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ jagajaga markuskowa ];
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, autoreconfHook
|
||||
, fetchFromGitHub
|
||||
, ovni
|
||||
, mpi
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sonar";
|
||||
version = "1.0.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "sonar";
|
||||
rev = "${version}";
|
||||
sha256 = "sha256-DazOEaiMfJLrZNtmQEEHdBkm/m4hq5e0mPEfMtzYqWk=";
|
||||
};
|
||||
hardeningDisable = [ "all" ];
|
||||
dontStrip = true;
|
||||
configureFlags = [ "--with-ovni=${ovni}" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
ovni
|
||||
mpi
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/sonar";
|
||||
description = "Set of runtime libraries which instrument parallel programming models through the ovni instrumentation library";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, automake
|
||||
, autoconf
|
||||
, libtool
|
||||
, mpi
|
||||
, autoreconfHook
|
||||
, gpi-2
|
||||
, boost
|
||||
, numactl
|
||||
, rdma-core
|
||||
, gfortran
|
||||
, symlinkJoin
|
||||
}:
|
||||
|
||||
let
|
||||
mpiAll = symlinkJoin {
|
||||
name = "mpi-all";
|
||||
paths = [ mpi.all ];
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tagaspi";
|
||||
enableParallelBuilding = true;
|
||||
separateDebugInfo = true;
|
||||
|
||||
version = "2.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "tagaspi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RGG/Re2uM293HduZfGzKUWioDtwnSYYdfeG9pVrX9EM=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
autoreconfHook
|
||||
automake
|
||||
autoconf
|
||||
libtool
|
||||
boost
|
||||
numactl
|
||||
rdma-core
|
||||
gfortran
|
||||
mpiAll
|
||||
];
|
||||
|
||||
dontDisableStatic = true;
|
||||
|
||||
configureFlags = [
|
||||
"--with-gaspi=${gpi-2}"
|
||||
"CFLAGS=-fPIC"
|
||||
"CXXFLAGS=-fPIC"
|
||||
];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/tagaspi";
|
||||
description = "Task-Aware GASPI";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, automake
|
||||
, autoconf
|
||||
, libtool
|
||||
, gnumake
|
||||
, boost
|
||||
, mpi
|
||||
, autoreconfHook
|
||||
, enableOvni ? true
|
||||
, ovni ? null
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git"
|
||||
, gitBranch ? "master"
|
||||
, gitCommit ? "f6455db9d3124ae36e715a4874fd49720e79f20a"
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
assert enableOvni -> (ovni != null);
|
||||
|
||||
let
|
||||
release = rec {
|
||||
version = "4.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bsc-pm";
|
||||
repo = "tampi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SwfPSnwcZnRnSgNvCD5sFSUJRpWINqI5I4adj5Hh+XY=";
|
||||
};
|
||||
};
|
||||
git = rec {
|
||||
version = src.shortRev;
|
||||
src = builtins.fetchGit {
|
||||
url = gitUrl;
|
||||
ref = gitBranch;
|
||||
rev = gitCommit;
|
||||
};
|
||||
};
|
||||
source = if (useGit) then git else release;
|
||||
in stdenv.mkDerivation {
|
||||
pname = "tampi";
|
||||
inherit (source) src version;
|
||||
enableParallelBuilding = true;
|
||||
separateDebugInfo = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
autoreconfHook
|
||||
gnumake
|
||||
libtool
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
mpi
|
||||
] ++ optional (enableOvni) ovni;
|
||||
configureFlags = optional (enableOvni) "--with-ovni=${ovni}";
|
||||
dontDisableStatic = true;
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/bsc-pm/tampi";
|
||||
description = "Task-Aware MPI";
|
||||
maintainers = with lib.maintainers.bsc; [ rarias ];
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <hwloc.h>
|
||||
#include <assert.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
size_t i, coreCount;
|
||||
hwloc_topology_t topology;
|
||||
hwloc_obj_t obj;
|
||||
|
||||
if(hwloc_topology_init(&topology))
|
||||
{
|
||||
fprintf(stderr, "hwloc_topology_init failed\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(hwloc_topology_load(topology))
|
||||
{
|
||||
fprintf(stderr, "hwloc_topology_load failed\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
coreCount = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_CORE);
|
||||
printf("coreCount = %zu\n", coreCount);
|
||||
|
||||
for(i = 0; i < coreCount; i++)
|
||||
{
|
||||
obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_PU, i);
|
||||
assert(obj != NULL);
|
||||
assert(obj->parent != NULL);
|
||||
printf("obj->parent->type = %d, i = %zu\n", obj->parent->type, i);
|
||||
assert(obj->parent->type == HWLOC_OBJ_CORE);
|
||||
}
|
||||
|
||||
printf("hwloc test OK\n");
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, hwloc
|
||||
, strace
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "hwloc-test";
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
src = ./.;
|
||||
|
||||
buildInputs = [ hwloc strace ];
|
||||
|
||||
buildPhase = ''
|
||||
ls -l /sys
|
||||
gcc -lhwloc hwloc.c -o hwloc
|
||||
strace ./hwloc > $out
|
||||
'';
|
||||
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{stdenv}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "chroot-checker";
|
||||
src = ./chroot.nix;
|
||||
dontUnpack = true;
|
||||
buildPhase = ''
|
||||
if [ -e /boot ]; then
|
||||
echo Build is NOT under chroot
|
||||
echo This is the content of / :
|
||||
ls -l /
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "OK: Build is under chroot"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
'';
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "asan-c";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
cp ${hello_c} hello.c
|
||||
$CC -v -fsanitize=address hello.c -o hello
|
||||
./hello
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{stdenv, clang-ompss2, nanos6}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "test-clang-ompss2";
|
||||
src = ./.;
|
||||
buildInputs = [ clang-ompss2 nanos6 ];
|
||||
NIX_DEBUG = 1;
|
||||
|
||||
buildPhase = ''
|
||||
clang -fompss-2 hello.c -o hello
|
||||
./hello
|
||||
clang++ -fompss-2 hello.cc -o hello
|
||||
./hello
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
'';
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, writeText
|
||||
, openmp
|
||||
}:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
#pragma omp parallel
|
||||
{
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "openmp-test-ld";
|
||||
version = "1.0.0";
|
||||
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
# nOS-V requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildInputs = [ openmp ];
|
||||
|
||||
buildPhase = ''
|
||||
set -x
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
clang -fopenmp=libompv ./hello.c -o hello
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, nosv
|
||||
, writeText
|
||||
}:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
#include <nosv.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int test = 1;
|
||||
#pragma omp parallel
|
||||
#pragma omp single
|
||||
#pragma omp task
|
||||
{
|
||||
if (nosv_self() == NULL) {
|
||||
printf("nosv_self() returned NULL\n");
|
||||
exit(1);
|
||||
} else {
|
||||
printf("nosv_self() INSIDE TASK OK\n");
|
||||
}
|
||||
test = 0;
|
||||
}
|
||||
|
||||
return test;
|
||||
}
|
||||
'';
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "openmp-test-nosv";
|
||||
version = "1.0.0";
|
||||
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
# nOS-V requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildInputs = [ nosv ];
|
||||
|
||||
buildPhase = ''
|
||||
set -x
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
clang -fopenmp=libompv ./hello.c -lnosv -o hello
|
||||
./hello | grep "INSIDE TASK OK"
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, writeText
|
||||
}:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int test = 1;
|
||||
#pragma omp parallel
|
||||
#pragma omp single
|
||||
#pragma omp task
|
||||
test = 0;
|
||||
|
||||
return test;
|
||||
}
|
||||
'';
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "openmp-test";
|
||||
version = "1.0.0";
|
||||
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
# nOS-V requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildPhase = ''
|
||||
set -x
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
clang -fopenmp ./hello.c -o hello
|
||||
./hello
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <xmmintrin.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
shuffle_c = writeText "shuffle.c" ''
|
||||
#include <stdio.h>
|
||||
|
||||
typedef int v4si __attribute__ ((vector_size (16)));
|
||||
|
||||
int main(void) {
|
||||
v4si a = {1,2,3,4};
|
||||
v4si b = {5,6,7,8};
|
||||
v4si mask1 = {0,1,1,3};
|
||||
v4si mask2 = {0,4,2,5};
|
||||
v4si res;
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 7)
|
||||
res = __builtin_shuffle (a, mask1); /* res is {1,2,2,4} */
|
||||
res = __builtin_shuffle (a, b, mask2); /* res is {1,5,3,6} */
|
||||
|
||||
printf("%d %d %d %d\n", res[0], res[1], res[2], res[3]);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "hello-c";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
set -x
|
||||
echo CC=$CC
|
||||
which $CC
|
||||
$CC -v
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
$CC -v hello.c -o hello
|
||||
./hello
|
||||
|
||||
# Only gcc
|
||||
#cp ${shuffle_c} shuffle.c
|
||||
#$CC shuffle.c -o shuffle
|
||||
#./shuffle
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_cpp = writeText "hello.cpp" ''
|
||||
#include <cstdio>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "hello-cpp";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_cpp;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
cp $src hello.cpp
|
||||
set -x
|
||||
echo CXX=$CXX
|
||||
which $CXX
|
||||
$CXX hello.cpp -o hello
|
||||
./hello
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_f90 = writeText "hello.f90" ''
|
||||
program hello
|
||||
print *, 'Hello, World!'
|
||||
end program hello
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "hello-f90";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_f90;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
set -x
|
||||
echo FC=$FC
|
||||
which $FC
|
||||
$FC -v
|
||||
|
||||
cp ${hello_f90} hello.f90
|
||||
$FC hello.f90 -o hello
|
||||
./hello
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, flangOmpss2Git
|
||||
, runCommand
|
||||
, writeText
|
||||
, strace
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "flang-ompss2-test";
|
||||
buildInputs = [ strace flangOmpss2Git ];
|
||||
file = writeText "hi.f90"
|
||||
''
|
||||
program hello
|
||||
print *, 'Hello, World!'
|
||||
end program hello
|
||||
'';
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
set -x
|
||||
flang "$file" -c -o hi.o
|
||||
flang hi.o -o hi
|
||||
install -Dm555 hi "$out"
|
||||
'';
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
hello_c = writeText "hello.c" ''
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <xmmintrin.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello world!\n");
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "lto-c";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
set -x
|
||||
echo CC=$CC
|
||||
echo LD=$LD
|
||||
echo -------------------------------------------
|
||||
env
|
||||
echo -------------------------------------------
|
||||
|
||||
cp ${hello_c} hello.c
|
||||
$CC -v -flto hello.c -o hello
|
||||
./hello
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
{ stdenv, writeText, which, strace, gdb }:
|
||||
|
||||
let
|
||||
task_c = writeText "task.c" ''
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
for (int i = 0; i < 10; i++) {
|
||||
#pragma oss task
|
||||
printf("Hello world!\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "task_c";
|
||||
src = task_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
hardeningDisable = [ "all" ];
|
||||
#NIX_DEBUG = 1;
|
||||
buildInputs = [ ]; #strace gdb;
|
||||
|
||||
# NODES requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildPhase = ''
|
||||
set -x
|
||||
#$CC -v
|
||||
|
||||
cp ${task_c} task.c
|
||||
|
||||
echo CC=$CC
|
||||
echo NANOS6_HOME=$NANOS6_HOME
|
||||
echo NODES_HOME=$NODES_HOME
|
||||
cat task.c
|
||||
$CC -fompss-2 task.c -o task
|
||||
#strace -ff -e trace=open,openat -s9999999 ./task
|
||||
LD_DEBUG=libs ./task
|
||||
#gdb -batch -ex "run" -ex "bt" ./task
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
{ stdenv, writeText, which, strace }:
|
||||
|
||||
let
|
||||
shuffle_c = writeText "shuffle.c" ''
|
||||
#include <stdio.h>
|
||||
|
||||
typedef int v4si __attribute__ ((vector_size (16)));
|
||||
|
||||
int main(void) {
|
||||
v4si a = {1,2,3,4};
|
||||
v4si b = {5,6,7,8};
|
||||
v4si mask1 = {0,1,1,3};
|
||||
v4si mask2 = {0,4,2,5};
|
||||
v4si res;
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 7)
|
||||
res = __builtin_shuffle (a, mask1); /* res is {1,2,2,4} */
|
||||
res = __builtin_shuffle (a, b, mask2); /* res is {1,5,3,6} */
|
||||
|
||||
printf("%d %d %d %d\n", res[0], res[1], res[2], res[3]);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "hello-c";
|
||||
buildInputs = [ stdenv which strace ];
|
||||
src = hello_c;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
NIX_DEBUG = 0;
|
||||
buildPhase = ''
|
||||
cp $src hello.c
|
||||
set -x
|
||||
echo CC=$CC
|
||||
which $CC
|
||||
#strace -ff -e trace=execve -s99999999 $CC hello.c -o hello
|
||||
$CC hello.c -o hello
|
||||
./hello
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
touch $out
|
||||
'';
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
#include <mpi.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
void sigsegv(int rank)
|
||||
{
|
||||
if (rank == 2) raise(SIGSEGV);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int rank;
|
||||
char where;
|
||||
|
||||
MPI_Init(&argc, &argv);
|
||||
|
||||
if(!argv[1])
|
||||
{
|
||||
fprintf(stderr, "missing \"before\" or \"after\" argument\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
|
||||
|
||||
where = argv[1][0];
|
||||
|
||||
if(where == 'b') sigsegv(rank);
|
||||
|
||||
MPI_Finalize();
|
||||
|
||||
if(where == 'a') sigsegv(rank);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
stdenv
|
||||
, mpi
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "sigsegv";
|
||||
|
||||
src = ./.;
|
||||
|
||||
buildInputs = [ mpi ];
|
||||
|
||||
buildPhase = ''
|
||||
mpicc sigsegv.c -o sigsegv
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp sigsegv $out
|
||||
'';
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{stdenv, curl, coreutils}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.0.1";
|
||||
name = "internet-test";
|
||||
src = ./internet.nix;
|
||||
dontUnpack = true;
|
||||
buildInputs = [ curl coreutils ];
|
||||
buildPhase = ''
|
||||
cat /proc/self/mounts
|
||||
ls -l /proc
|
||||
ls -l /
|
||||
ip addr
|
||||
${curl}/bin/curl https://www.bsc.es/
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
'';
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user