forked from rarias/bscpkgs
		
	Compare commits
	
		
			32 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 6e5e572ddb | |||
| 439242f669 | |||
| 551b1b9e45 | |||
| 49ac6e6468 | |||
| 9db82cee49 | |||
| 109f4c8374 | |||
| ac559aa7d7 | |||
| f74a92ebd8 | |||
| 1f09f8cac2 | |||
| 1666c14a35 | |||
| b29f03ba6e | |||
| ae2ef1d2df | |||
| 9a48ae45bb | |||
| 974bb56dc3 | |||
| 88d4d8e317 | |||
| 885e04e446 | |||
| 26f52aa27d | |||
| 52fe43bfe1 | |||
| f0637b4569 | |||
| 6ddfea0a3a | |||
| e7adef1ffa | |||
| e82d3c3b9f | |||
| 4442b6a706 | |||
| 2d0b014dc7 | |||
| 867ba3ec5a | |||
| 2cacc2b265 | |||
| e4abd8d8f6 | |||
| a87b99d0a4 | |||
| 43d32ac16d | |||
| 9d1944c658 | |||
| 8e5b2dc5cc | |||
| f89cd4d7e2 | 
							
								
								
									
										22
									
								
								default.nix
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								default.nix
									
									
									
									
									
								
							| @ -1,11 +1,19 @@ | |||||||
| let | let | ||||||
|   bscOverlay = import ./overlay.nix; |   bscOverlay = import ./overlay.nix; | ||||||
| 
 | 
 | ||||||
|   # Pin the nixpkgs |   # read flake.lock and determine revision from there | ||||||
|   nixpkgsPath = import ./nixpkgs.nix; |   lock = builtins.fromJSON (builtins.readFile ./flake.lock); | ||||||
| 
 |   inherit (lock.nodes.nixpkgs.locked) rev narHash; | ||||||
|   pkgs = import nixpkgsPath { |   fetchedNixpkgs = builtins.fetchTarball { | ||||||
|     overlays = [ bscOverlay ]; |     url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz"; | ||||||
|  |     sha256 = narHash; | ||||||
|   }; |   }; | ||||||
| 
 | in | ||||||
| in pkgs | { overlays ? [ ] | ||||||
|  | , nixpkgs ? fetchedNixpkgs | ||||||
|  | , ... | ||||||
|  | }@attrs: | ||||||
|  | import nixpkgs ( | ||||||
|  |   (builtins.removeAttrs attrs [ "overlays" "nixpkgs" ]) // | ||||||
|  |   { overlays = [ bscOverlay ] ++ overlays; } | ||||||
|  | ) | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @ -2,10 +2,10 @@ | |||||||
|   "nodes": { |   "nodes": { | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1736867362, |         "lastModified": 1752436162, | ||||||
|         "narHash": "sha256-i/UJ5I7HoqmFMwZEH6vAvBxOrjjOJNU739lnZnhUln8=", |         "narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=", | ||||||
|         "path": "/nix/store/2csx2kkb2hxyxhhmg2xs9jfyypikwwk6-source", |         "path": "/nix/store/zk8v61cpk1wprp9ld5ayc1g5fq4pdkwv-source", | ||||||
|         "rev": "9c6b49aeac36e2ed73a8c472f1546f6d9cf1addc", |         "rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8", | ||||||
|         "type": "path" |         "type": "path" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|  | |||||||
| @ -1,9 +0,0 @@ | |||||||
| let |  | ||||||
|   commit = "e4ad989506ec7d71f7302cc3067abd82730a4beb"; |  | ||||||
| in builtins.fetchTarball { |  | ||||||
|     # Descriptive name to make the store path easier to identify |  | ||||||
|     name = "nixpkgs-${commit}"; |  | ||||||
|     url = "https://github.com/nixos/nixpkgs/archive/${commit}.tar.gz"; |  | ||||||
|     # Hash obtained using `nix-prefetch-url --unpack <url>` |  | ||||||
|     sha256 = "sha256-de9KYi8rSJpqvBfNwscWdalIJXPo8NjdIZcEJum1mH0="; |  | ||||||
| } |  | ||||||
							
								
								
									
										21
									
								
								overlay.nix
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								overlay.nix
									
									
									
									
									
								
							| @ -13,15 +13,16 @@ let | |||||||
|     bench6 = callPackage ./pkgs/bench6/default.nix { }; |     bench6 = callPackage ./pkgs/bench6/default.nix { }; | ||||||
|     bigotes = callPackage ./pkgs/bigotes/default.nix { }; |     bigotes = callPackage ./pkgs/bigotes/default.nix { }; | ||||||
|     clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { }; |     clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { }; | ||||||
|     clangOmpss2Nanos6 = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nanos6; }; |     clangOmpss2Nanos6 = callPackage ./pkgs/llvm-ompss2/default.nix { useNanos6 = true; }; | ||||||
|     clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmp; }; |     clangOmpss2Nodes = callPackage ./pkgs/llvm-ompss2/default.nix { useNodes = true; useOpenmp = true; }; | ||||||
|     clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; }; |     clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { useNodes = true; useOpenmpV = true; }; | ||||||
|     clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { }; |     clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { }; | ||||||
|  | 
 | ||||||
|     #extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated |     #extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated | ||||||
|     gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; |     #gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; # Broken: https://jungle.bsc.es/git/rarias/bscpkgs/issues/7 | ||||||
|     intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; |     intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; | ||||||
|     jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; |     jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; | ||||||
|     #lmbench = callPackage ./pkgs/lmbench/default.nix { }; # Broken |     lmbench = callPackage ./pkgs/lmbench/default.nix { }; | ||||||
|     mcxx = callPackage ./pkgs/mcxx/default.nix { }; |     mcxx = callPackage ./pkgs/mcxx/default.nix { }; | ||||||
|     nanos6 = callPackage ./pkgs/nanos6/default.nix { }; |     nanos6 = callPackage ./pkgs/nanos6/default.nix { }; | ||||||
|     nanos6Debug = final.nanos6.override { enableDebug = true; }; |     nanos6Debug = final.nanos6.override { enableDebug = true; }; | ||||||
| @ -40,11 +41,11 @@ let | |||||||
|     #pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned |     #pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned | ||||||
|     #psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned |     #psmpi = callPackage ./pkgs/parastation/psmpi.nix { }; # Unmaintaned | ||||||
|     sonar = callPackage ./pkgs/sonar/default.nix { }; |     sonar = callPackage ./pkgs/sonar/default.nix { }; | ||||||
|     stdenvClangOmpss2 = final.stdenv.override { cc = final.clangOmpss2; allowedRequisites = null; }; |     stdenvClangOmpss2 = final.stdenv.override { cc = final.buildPackages.clangOmpss2; allowedRequisites = null; }; | ||||||
|     stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.clangOmpss2Nanos6; allowedRequisites = null; }; |     stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.buildPackages.clangOmpss2Nanos6; allowedRequisites = null; }; | ||||||
|     stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.clangOmpss2Nodes; allowedRequisites = null; }; |     stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.buildPackages.clangOmpss2Nodes; allowedRequisites = null; }; | ||||||
|     stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.clangOmpss2NodesOmpv; allowedRequisites = null; }; |     stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.buildPackages.clangOmpss2NodesOmpv; allowedRequisites = null; }; | ||||||
|     tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; |     #tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; # Broken due gpi-2 | ||||||
|     tampi = callPackage ./pkgs/tampi/default.nix { }; |     tampi = callPackage ./pkgs/tampi/default.nix { }; | ||||||
|     wxparaver = callPackage ./pkgs/paraver/default.nix { }; |     wxparaver = callPackage ./pkgs/paraver/default.nix { }; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,14 +1,20 @@ | |||||||
| { | { | ||||||
|   stdenv |   stdenv | ||||||
|  | , bigotes | ||||||
| , cmake | , cmake | ||||||
| , clangOmpss2 | , clangOmpss2 | ||||||
|  | , openmp | ||||||
|  | , openmpv | ||||||
| , nanos6 | , nanos6 | ||||||
| , nodes | , nodes | ||||||
|  | , nosv | ||||||
| , mpi | , mpi | ||||||
| , tampi | , tampi | ||||||
|  | , openblas | ||||||
|  | , ovni | ||||||
| , gitBranch ? "master" | , gitBranch ? "master" | ||||||
| , gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git" | , gitURL ? "ssh://git@bscpm04.bsc.es/rarias/bench6.git" | ||||||
| , gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d" | , gitCommit ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4" | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| stdenv.mkDerivation rec { | stdenv.mkDerivation rec { | ||||||
| @ -21,9 +27,28 @@ stdenv.mkDerivation rec { | |||||||
|     rev = gitCommit; |     rev = gitCommit; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   buildInputs = [ cmake clangOmpss2 nanos6 nodes mpi tampi ]; |   buildInputs = [ | ||||||
|  |     bigotes | ||||||
|  |     cmake | ||||||
|  |     clangOmpss2 | ||||||
|  |     openmp | ||||||
|  |     openmpv | ||||||
|  |     nanos6 | ||||||
|  |     nodes | ||||||
|  |     nosv | ||||||
|  |     mpi | ||||||
|  |     tampi | ||||||
|  |     openblas | ||||||
|  |     openblas.dev | ||||||
|  |     ovni | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   env = { | ||||||
|  |     NANOS6_HOME = nanos6; | ||||||
|  |     NODES_HOME = nodes; | ||||||
|  |     NOSV_HOME = nosv; | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   enableParallelBuilding = false; |  | ||||||
|   cmakeFlags = [ |   cmakeFlags = [ | ||||||
|     "-DCMAKE_C_COMPILER=clang" |     "-DCMAKE_C_COMPILER=clang" | ||||||
|     "-DCMAKE_CXX_COMPILER=clang++" |     "-DCMAKE_CXX_COMPILER=clang++" | ||||||
|  | |||||||
| @ -1,6 +1,5 @@ | |||||||
| { stdenv | { stdenv | ||||||
| , fetchurl | , fetchurl | ||||||
| , ncurses |  | ||||||
| , lib | , lib | ||||||
| , dpkg | , dpkg | ||||||
| , rsync | , rsync | ||||||
| @ -10,12 +9,9 @@ | |||||||
| , hwloc | , hwloc | ||||||
| , zlib | , zlib | ||||||
| , autoPatchelfHook | , autoPatchelfHook | ||||||
| , symlinkJoin |  | ||||||
| , libfabric | , libfabric | ||||||
| , gcc | , gcc13 | ||||||
| , gcc7 |  | ||||||
| , wrapCCWith | , wrapCCWith | ||||||
| , linuxHeaders |  | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| # The distribution of intel packages is a mess. We are doing the installation | # The distribution of intel packages is a mess. We are doing the installation | ||||||
| @ -30,6 +26,8 @@ | |||||||
| 
 | 
 | ||||||
| let | let | ||||||
| 
 | 
 | ||||||
|  |   gcc = gcc13; | ||||||
|  | 
 | ||||||
|   v = { |   v = { | ||||||
|     hpckit   = "2023.1.0"; |     hpckit   = "2023.1.0"; | ||||||
|     compiler = "2023.1.0"; |     compiler = "2023.1.0"; | ||||||
| @ -314,6 +312,7 @@ let | |||||||
|       "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}" |       "intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-runtime-${version}" | ||||||
|       "intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}" |       "intel-oneapi-compiler-dpcpp-cpp-classic-fortran-shared-runtime-${version}" | ||||||
|     ]; |     ]; | ||||||
|  |     dontCheckForBrokenSymlinks = true; | ||||||
|     # From https://aur.archlinux.org/packages/intel-oneapi-compiler: |     # From https://aur.archlinux.org/packages/intel-oneapi-compiler: | ||||||
|     # - intel-oneapi-compiler-cpp-eclipse-cfg-2023.0.0-25370_all.deb |     # - 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 |     # + intel-oneapi-compiler-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb | ||||||
| @ -399,7 +398,9 @@ let | |||||||
|         echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags |         echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags | ||||||
| 
 | 
 | ||||||
|         # Need the gcc in the path |         # Need the gcc in the path | ||||||
|         echo 'export "PATH=${mygcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook |         # 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 |         # Disable hardening by default | ||||||
|         echo "" > $out/nix-support/add-hardening.sh |         echo "" > $out/nix-support/add-hardening.sh | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| { | { | ||||||
|   llvmPackages_latest |   stdenv | ||||||
|  | , llvmPackages_latest | ||||||
| , lib | , lib | ||||||
| , fetchFromGitHub | , fetchFromGitHub | ||||||
| , cmake | , cmake | ||||||
| @ -11,24 +12,26 @@ | |||||||
| , libffi | , libffi | ||||||
| , zlib | , zlib | ||||||
| , pkg-config | , pkg-config | ||||||
| , gcc # needed to set the rpath of libstdc++ for clang-tblgen |  | ||||||
| , enableDebug ? false | , enableDebug ? false | ||||||
| , useGit ? false | , useGit ? false | ||||||
| , gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git" | , gitUrl ? "ssh://git@bscpm04.bsc.es/llvm-ompss/llvm-mono.git" | ||||||
| , gitBranch ? "master" | , gitBranch ? "master" | ||||||
| , gitCommit ? "8c0d267c04d7fc3fb923078f510fcd5f4719a6cc" | , gitCommit ? "880e2341c56bad1dc14e8c369fb3356bec19018e" | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   stdenv = llvmPackages_latest.stdenv; |   llvmPackages = llvmPackages_latest; | ||||||
|  |   llvmStdenv = llvmPackages.stdenv; | ||||||
|  |   # needed to set the rpath of libstdc++ for clang-tblgen | ||||||
|  |   gcc = stdenv.cc; | ||||||
| 
 | 
 | ||||||
|   release = rec { |   release = rec { | ||||||
|     version = "2024.11"; |     version = "2025.06"; | ||||||
|     src = fetchFromGitHub { |     src = fetchFromGitHub { | ||||||
|       owner = "bsc-pm"; |       owner = "bsc-pm"; | ||||||
|       repo = "llvm"; |       repo = "llvm"; | ||||||
|       rev = "refs/tags/github-release-${version}"; |       rev = "refs/tags/github-release-${version}"; | ||||||
|       hash = "sha256-pF0qa987nLkIJPUrXh1srzBkLPfb31skIegD0bl34Kg="; |       hash = "sha256-ww9PpRmtz/M9IyLiZ8rAehx2UW4VpQt+svf4XfKBzKo="; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
| @ -43,7 +46,7 @@ let | |||||||
| 
 | 
 | ||||||
|   source = if (useGit) then git else release; |   source = if (useGit) then git else release; | ||||||
| 
 | 
 | ||||||
| in stdenv.mkDerivation rec { | in llvmStdenv.mkDerivation rec { | ||||||
|   pname = "clang-ompss2"; |   pname = "clang-ompss2"; | ||||||
|   inherit (source) src version; |   inherit (source) src version; | ||||||
| 
 | 
 | ||||||
| @ -57,20 +60,23 @@ in stdenv.mkDerivation rec { | |||||||
| 
 | 
 | ||||||
|   isClangWithOmpss = true; |   isClangWithOmpss = true; | ||||||
| 
 | 
 | ||||||
|   nativeBuildInputs = [ zlib ]; |   nativeBuildInputs = [ | ||||||
|  |     zlib | ||||||
|  |     gcc.cc.lib # Required for libstdc++.so.6 | ||||||
|  |     cmake | ||||||
|  |     python3 | ||||||
|  |     llvmPackages.lld | ||||||
|  |   ]; | ||||||
| 
 | 
 | ||||||
|   buildInputs = [ |   buildInputs = [ | ||||||
|     which |     which | ||||||
|     bash |     bash | ||||||
|     python3 |  | ||||||
|     perl |     perl | ||||||
|     cmake |     llvmPackages.lld | ||||||
|     llvmPackages_latest.lld |  | ||||||
|     elfutils |     elfutils | ||||||
|     libffi |     libffi | ||||||
|     pkg-config |     pkg-config | ||||||
|     zlib |     zlib | ||||||
|     gcc.cc.lib # Required for libstdc++.so.6 |  | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   # Error with -D_FORTIFY_SOURCE=2, see https://bugs.gentoo.org/636604: |   # Error with -D_FORTIFY_SOURCE=2, see https://bugs.gentoo.org/636604: | ||||||
| @ -86,6 +92,7 @@ in stdenv.mkDerivation rec { | |||||||
| 
 | 
 | ||||||
|   dontUseCmakeBuildDir = true; |   dontUseCmakeBuildDir = true; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|   # Fix the host triple, as it has changed in a newer config.guess: |   # 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 |   # https://git.savannah.gnu.org/gitweb/?p=config.git;a=commitdiff;h=ca9bfb8cc75a2be1819d89c664a867785c96c9ba | ||||||
|   preConfigure = '' |   preConfigure = '' | ||||||
| @ -93,8 +100,13 @@ in stdenv.mkDerivation rec { | |||||||
|     cd build |     cd build | ||||||
|     cmakeDir="../llvm" |     cmakeDir="../llvm" | ||||||
|     cmakeFlagsArray=( |     cmakeFlagsArray=( | ||||||
|       "-DLLVM_HOST_TRIPLE=${stdenv.targetPlatform.config}" |       "-DLLVM_HOST_TRIPLE=${llvmStdenv.targetPlatform.config}" | ||||||
|  |     '' + (if "${llvmStdenv.targetPlatform.config}" == "riscv64-unknown-linux-gnu" then '' | ||||||
|  |       "-DLLVM_DEFAULT_TARGET_TRIPLE=riscv64-unknown-linux-gnu" | ||||||
|  |       "-DLLVM_TARGETS_TO_BUILD=RISCV" | ||||||
|  |     '' else '' | ||||||
|       "-DLLVM_TARGETS_TO_BUILD=host" |       "-DLLVM_TARGETS_TO_BUILD=host" | ||||||
|  |     '') + '' | ||||||
|       "-DLLVM_BUILD_LLVM_DYLIB=ON" |       "-DLLVM_BUILD_LLVM_DYLIB=ON" | ||||||
|       "-DLLVM_LINK_LLVM_DYLIB=ON" |       "-DLLVM_LINK_LLVM_DYLIB=ON" | ||||||
|       # Required to run clang-ast-dump and clang-tblgen during build |       # Required to run clang-ast-dump and clang-tblgen during build | ||||||
| @ -103,7 +115,8 @@ in stdenv.mkDerivation rec { | |||||||
|       "-DCMAKE_CXX_FLAGS_DEBUG=-g -ggnu-pubnames" |       "-DCMAKE_CXX_FLAGS_DEBUG=-g -ggnu-pubnames" | ||||||
|       "-DCMAKE_EXE_LINKER_FLAGS_DEBUG=-Wl,--gdb-index" |       "-DCMAKE_EXE_LINKER_FLAGS_DEBUG=-Wl,--gdb-index" | ||||||
|       "-DLLVM_LIT_ARGS=-sv --xunit-xml-output=xunit.xml" |       "-DLLVM_LIT_ARGS=-sv --xunit-xml-output=xunit.xml" | ||||||
|       "-DLLVM_ENABLE_PROJECTS=clang;compiler-rt;lld" |       "-DLLVM_ENABLE_PROJECTS=clang;lld" | ||||||
|  |       #"-DLLVM_ENABLE_PROJECTS=clang;compiler-rt;lld" | ||||||
|       "-DLLVM_ENABLE_ASSERTIONS=ON" |       "-DLLVM_ENABLE_ASSERTIONS=ON" | ||||||
|       "-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON" |       "-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON" | ||||||
|       "-DCMAKE_INSTALL_BINDIR=bin" |       "-DCMAKE_INSTALL_BINDIR=bin" | ||||||
| @ -113,8 +126,8 @@ in stdenv.mkDerivation rec { | |||||||
|       # install |       # install | ||||||
|       "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON" |       "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON" | ||||||
|       "-DCMAKE_INSTALL_RPATH=${zlib}/lib:${gcc.cc.lib}/lib" |       "-DCMAKE_INSTALL_RPATH=${zlib}/lib:${gcc.cc.lib}/lib" | ||||||
|       "-DLLVM_APPEND_VC_REV=ON" |       #"-DLLVM_APPEND_VC_REV=ON" | ||||||
|       "-DLLVM_FORCE_VC_REVISION=${source.version}" |       #"-DLLVM_FORCE_VC_REVISION=${source.version}" | ||||||
|     ) |     ) | ||||||
|   ''; |   ''; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3,23 +3,43 @@ | |||||||
| , lib | , lib | ||||||
| , gcc | , gcc | ||||||
| , clangOmpss2Unwrapped | , clangOmpss2Unwrapped | ||||||
| , openmp ? null | 
 | ||||||
|  | , openmp | ||||||
|  | , useOpenmp  ? false | ||||||
|  | , openmpv | ||||||
|  | , useOpenmpV ? false | ||||||
|  | , nanos6 | ||||||
|  | , useNanos6 ? false | ||||||
|  | , nodes | ||||||
|  | , useNodes ? false | ||||||
|  | 
 | ||||||
| , wrapCCWith | , wrapCCWith | ||||||
| , llvmPackages_latest | , llvmPackages_latest | ||||||
| , ompss2rt ? null |  | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
|  | with lib; | ||||||
|  | 
 | ||||||
| let | let | ||||||
|   usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes"); |   getSplice = target: pkg: if pkg ? "__spliced" && pkg.__spliced ? target then pkg.__spliced."${target}" else pkg; | ||||||
|   sameNosv = openmp.nosv == ompss2rt.nosv; |   #getSpliceTargetTarget = pkg: if pkg ? "__spliced" && pkg.__spliced ? "targetTarget" then pkg.__spliced.targetTarget else pkg; | ||||||
|  |   getSpliceTargetTarget = getSplice "targetTarget"; | ||||||
|  |   omp = if useOpenmp then openmp else if useOpenmpV then openmpv else null; | ||||||
|  |   ompss2rtUnspliced = if useNanos6 then nanos6 else if useNodes then nodes else null; | ||||||
|  |   ompss2rt = getSpliceTargetTarget ompss2rtUnspliced; | ||||||
|  |   usingNodesAndOmpv = (omp.pname == "openmp-v" && ompss2rt.pname == "nodes"); | ||||||
|  |   sameNosvUnspliced = omp.nosv == ompss2rtUnspliced.nosv; | ||||||
|  |   sameNosvSpliced = (getSpliceTargetTarget omp.nosv) == ompss2rt.nosv; | ||||||
| in | in | ||||||
| 
 | 
 | ||||||
| assert lib.assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V"; | assert assertMsg (usingNodesAndOmpv -> sameNosvUnspliced) "OpenMP-V and NODES must share the same nOS-V before splice"; | ||||||
|  | assert assertMsg (usingNodesAndOmpv -> sameNosvSpliced) "OpenMP-V and NODES must share the same nOS-V after splice"; | ||||||
|  | assert assertMsg (useOpenmp -> !useOpenmpV) "Either OpenMP or OpenMP-V may be enabled, but not both"; | ||||||
|  | assert assertMsg (useNanos6 -> !useNodes) "Either Nanos6 or NODES may be enabled, but not both"; | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME"; |   homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME"; | ||||||
|   rtname  = if ompss2rt.pname == "nanos6" then "libnanos6" else "libnodes"; |   rtname  = if ompss2rt.pname == "nanos6" then "libnanos6" else "libnodes"; | ||||||
|   ompname = if openmp.pname == "openmp-v" then  "libompv" else "libomp"; |   ompname = if omp.pname == "openmp-v" then  "libompv" else "libomp"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|   # We need to replace the lld linker from bintools with our linker just built, |   # We need to replace the lld linker from bintools with our linker just built, | ||||||
| @ -34,14 +54,16 @@ let | |||||||
|   targetConfig = stdenv.targetPlatform.config; |   targetConfig = stdenv.targetPlatform.config; | ||||||
|   inherit gcc; |   inherit gcc; | ||||||
|   cc = clangOmpss2Unwrapped; |   cc = clangOmpss2Unwrapped; | ||||||
| in wrapCCWith { |   gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)]; | ||||||
|  | in (wrapCCWith { | ||||||
|   inherit cc bintools; |   inherit cc bintools; | ||||||
|   # extraPackages adds packages to depsTargetTargetPropagated |   # extraPackages adds packages to depsTargetTargetPropagated | ||||||
|   extraPackages = lib.optional (openmp != null) openmp; |   extraPackages = optional (omp != null) omp; | ||||||
|   extraBuildCommands = '' |   extraBuildCommands = '' | ||||||
|     echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags |     echo "-target ${targetConfig}" >> $out/nix-support/cc-cflags | ||||||
|     echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-cflags |     #echo "-fuse-ld=lld" >> $out/nix-support/cc-cflags | ||||||
|     echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags |     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 |     echo "-L${gcc.cc.lib}/lib" >> $out/nix-support/cc-ldflags | ||||||
| 
 | 
 | ||||||
|     for dir in ${gcc.cc}/include/c++/*; do |     for dir in ${gcc.cc}/include/c++/*; do | ||||||
| @ -53,15 +75,17 @@ in wrapCCWith { | |||||||
| 
 | 
 | ||||||
|     echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags |     echo "--gcc-toolchain=${gcc}" >> $out/nix-support/cc-cflags | ||||||
| 
 | 
 | ||||||
|     wrap clang++  $wrapper $ccPath/clang++ |     wrap ${targetConfig}clang++  $wrapper $ccPath/clang++ | ||||||
|  |     wrap ${targetConfig}clang    $wrapper $ccPath/clang | ||||||
| 
 | 
 | ||||||
|   '' + lib.optionalString (openmp != null) '' |   '' + optionalString (omp != null) '' | ||||||
|     echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook |     echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook | ||||||
|   '' + lib.optionalString (ompss2rt != null) '' |   '' + optionalString (ompss2rt != null) '' | ||||||
|     echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook |     echo "export OMPSS2_RUNTIME=${rtname}" >> $out/nix-support/cc-wrapper-hook | ||||||
|     echo "export ${homevar}=${ompss2rt}"   >> $out/nix-support/cc-wrapper-hook |     echo "export ${homevar}=${ompss2rt}"   >> $out/nix-support/cc-wrapper-hook | ||||||
|   '' + lib.optionalString (ompss2rt != null && ompss2rt.pname == "nodes") '' |   '' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") '' | ||||||
|     echo "export NOSV_HOME=${ompss2rt.nosv}" >> $out/nix-support/cc-wrapper-hook |     echo "export NOSV_HOME=${ompss2rt}" >> $out/nix-support/cc-wrapper-hook | ||||||
|   ''; |   ''; | ||||||
| } | }) // { inherit ompss2rt; } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -39,6 +39,9 @@ stdenv.mkDerivation rec { | |||||||
|     perl |     perl | ||||||
|     pkg-config |     pkg-config | ||||||
|     python3 |     python3 | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   buildInputs = [ | ||||||
|   ] ++ lib.optionals enableNosv [ |   ] ++ lib.optionals enableNosv [ | ||||||
|     nosv |     nosv | ||||||
|   ] ++ lib.optionals enableOvni [ |   ] ++ lib.optionals enableOvni [ | ||||||
| @ -68,6 +71,7 @@ stdenv.mkDerivation rec { | |||||||
|     rm -f $out/lib/libiomp* |     rm -f $out/lib/libiomp* | ||||||
|   '' + lib.optionalString enableNosv '' |   '' + lib.optionalString enableNosv '' | ||||||
|     rm -f $out/lib/libomp.* |     rm -f $out/lib/libomp.* | ||||||
|  |     rm -f $out/libllvmrt/libomp.* | ||||||
|   ''; |   ''; | ||||||
| 
 | 
 | ||||||
|   passthru = { |   passthru = { | ||||||
|  | |||||||
| @ -1,35 +1,41 @@ | |||||||
| { | { | ||||||
|   lib, |   lib, | ||||||
|   stdenv, |   stdenv, | ||||||
|  |   libtirpc, | ||||||
|   fetchFromGitHub |   fetchFromGitHub | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| stdenv.mkDerivation rec { | stdenv.mkDerivation rec { | ||||||
|   pname = "lmbench"; |   pname = "lmbench"; | ||||||
|   version = "701c6c35"; |   version = "941a0dcc"; | ||||||
| 
 | 
 | ||||||
|   # We use the intel repo as they have fixed some problems |   # We use the intel repo as they have fixed some problems | ||||||
|   src = fetchFromGitHub { |   src = fetchFromGitHub { | ||||||
|     owner = "intel"; |     owner = "intel"; | ||||||
|     repo = pname; |     repo = pname; | ||||||
|     rev = "701c6c35b0270d4634fb1dc5272721340322b8ed"; |     rev = "941a0dcc0e7bdd9bb0dee05d7f620e77da8c43af"; | ||||||
|     sha256 = "0sf6zk03knkardsfd6qx7drpm56nhg53n885cylkggk83r38idyr"; |     sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk="; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   postUnpack = '' |  | ||||||
|     export sourceRoot="$sourceRoot/src" |  | ||||||
|   ''; |  | ||||||
| 
 |  | ||||||
|   postPatch = '' |   postPatch = '' | ||||||
|     sed -i "s@/bin/rm@rm@g" $(find . -name Makefile) |     sed -i "s@/bin/rm@rm@g" $(find . -name Makefile) | ||||||
|   ''; |   ''; | ||||||
| 
 | 
 | ||||||
|  |   buildInputs = [ libtirpc ]; | ||||||
|  |   patches = [ ./fix-install.patch ./gcc-14.patch ]; | ||||||
|  | 
 | ||||||
|   hardeningDisable = [ "all" ]; |   hardeningDisable = [ "all" ]; | ||||||
| 
 | 
 | ||||||
|   enableParallelBuilding = false; |   enableParallelBuilding = false; | ||||||
| 
 | 
 | ||||||
|   preBuild = '' |   preBuild = '' | ||||||
|     makeFlagsArray+=(BASE=$out) |     makeFlagsArray+=( | ||||||
|  |       -C src | ||||||
|  |       BASE=$out | ||||||
|  |       CFLAGS=-Wno-implicit-int | ||||||
|  |       CPPFLAGS=-I${libtirpc.dev}/include/tirpc | ||||||
|  |       LDFLAGS=-ltirpc | ||||||
|  |     ) | ||||||
|   ''; |   ''; | ||||||
| 
 | 
 | ||||||
|   meta = { |   meta = { | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								pkgs/lmbench/fix-install.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								pkgs/lmbench/fix-install.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | --- 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 | ||||||
							
								
								
									
										77
									
								
								pkgs/lmbench/gcc-14.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								pkgs/lmbench/gcc-14.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | |||||||
|  | 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 | ||||||
|  | 
 | ||||||
| @ -19,7 +19,7 @@ | |||||||
| , useGit ? false | , useGit ? false | ||||||
| , gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6" | , gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6" | ||||||
| , gitBranch ? "master" | , gitBranch ? "master" | ||||||
| , gitCommit ? "9f54c988e0a8b9c011d9d526acdb8d76f18fcae4" | , gitCommit ? "f82762b66c82b5174a8eaad33f6c2f335ac759b4" | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| assert enableJemalloc -> (jemallocNanos6 != null); | assert enableJemalloc -> (jemallocNanos6 != null); | ||||||
| @ -28,12 +28,12 @@ with lib; | |||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   release = rec { |   release = rec { | ||||||
|     version = "4.2"; |     version = "4.3"; | ||||||
|     src = fetchFromGitHub { |     src = fetchFromGitHub { | ||||||
|       owner = "bsc-pm"; |       owner = "bsc-pm"; | ||||||
|       repo = "nanos6"; |       repo = "nanos6"; | ||||||
|       rev = "version-${version}"; |       rev = "version-${version}"; | ||||||
|       hash = "sha256-tBrRGLCjSFYdmVGPAC2DzYY6HJyZGUOMeykujafn7+4="; |       hash = "sha256-/c6WiKBsAo/01uvMRmjv0PMucbrgvaGmbxlPE6q+dfE="; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -11,19 +11,19 @@ | |||||||
| , useGit ? false | , useGit ? false | ||||||
| , gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git" | , gitUrl ? "git@gitlab-internal.bsc.es:nos-v/nos-v.git" | ||||||
| , gitBranch ? "master" | , gitBranch ? "master" | ||||||
| , gitCommit ? "cfd361bd1dd30c96da405e6bbaa7e78f5f93dfda" | , gitCommit ? "9f47063873c3aa9d6a47482a82c5000a8c813dd8" | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   release = rec { |   release = rec { | ||||||
|     version = "3.1.0"; |     version = "3.2.0"; | ||||||
|     src = fetchFromGitHub { |     src = fetchFromGitHub { | ||||||
|       owner = "bsc-pm"; |       owner = "bsc-pm"; | ||||||
|       repo = "nos-v"; |       repo = "nos-v"; | ||||||
|       rev = "${version}"; |       rev = "${version}"; | ||||||
|       hash = "sha256-Pkre+ZZsREDxJLCoIoPN1HQDuUa2H1IQyKB3omg6qaU="; |       hash = "sha256-yaz92426EM8trdkBJlISmAoG9KJCDTvoAW/HKrasvOw="; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -7,7 +7,7 @@ | |||||||
| , useGit ? false | , useGit ? false | ||||||
| , gitBranch ? "master" | , gitBranch ? "master" | ||||||
| , gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git" | , gitUrl ? "ssh://git@bscpm04.bsc.es/rarias/ovni.git" | ||||||
| , gitCommit ? "a7103f8510d1ec124c3e01ceb47d1e443e98bbf4" | , gitCommit ? "e4f62382076f0cf0b1d08175cf57cc0bc51abc61" | ||||||
| , enableDebug ? false | , enableDebug ? false | ||||||
| # Only enable MPI if the build is native (fails on cross-compilation) | # Only enable MPI if the build is native (fails on cross-compilation) | ||||||
| , useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform) | , useMpi ? (stdenv.buildPlatform.canExecute stdenv.hostPlatform) | ||||||
| @ -17,13 +17,13 @@ with lib; | |||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   release = rec { |   release = rec { | ||||||
|     version = "1.11.0"; |     version = "1.12.0"; | ||||||
|     src = fetchFromGitHub { |     src = fetchFromGitHub { | ||||||
|       owner = "bsc-pm"; |       owner = "bsc-pm"; | ||||||
|       repo = "ovni"; |       repo = "ovni"; | ||||||
|       rev = "${version}"; |       rev = "${version}"; | ||||||
|       hash = "sha256-DEZUK1dvbPGH5WYkZ2hpP5PShkMxXkHOqMwgYUHHxeM="; |       hash = "sha256-H04JvsVKrdqr3ON7JhU0g17jjlg/jzQ7eTfx9vUNd3E="; | ||||||
|     } // { shortRev = "a7103f8"; }; |     } // { shortRev = "a73afcf"; }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   git = rec { |   git = rec { | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| { | { | ||||||
|   stdenv |   stdenv | ||||||
|  | , fetchFromGitHub | ||||||
| , autoreconfHook | , autoreconfHook | ||||||
| , boost | , boost | ||||||
| , libxml2 | , libxml2 | ||||||
| @ -18,14 +19,23 @@ let | |||||||
| in | in | ||||||
| stdenv.mkDerivation rec { | stdenv.mkDerivation rec { | ||||||
|   pname = "wxparaver"; |   pname = "wxparaver"; | ||||||
|   version = "4.11.2"; |   version = "4.12.0"; | ||||||
| 
 | 
 | ||||||
|   src = builtins.fetchGit { |   src = fetchFromGitHub { | ||||||
|     url = "https://github.com/bsc-performance-tools/wxparaver.git"; |     owner = "bsc-performance-tools"; | ||||||
|     rev = "129e6b4a4f061e5a319049db8db1620f5de3bd70"; # v4.11.2 (missing tag) |     repo = "wxparaver"; | ||||||
|     ref = "master"; |     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" ]; |   hardeningDisable = [ "all" ]; | ||||||
| 
 | 
 | ||||||
|   # Fix the PARAVER_HOME variable |   # Fix the PARAVER_HOME variable | ||||||
|  | |||||||
							
								
								
									
										26
									
								
								pkgs/paraver/do-not-steal-focus-on-redraw.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								pkgs/paraver/do-not-steal-focus-on-redraw.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | |||||||
|  | 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 | ||||||
|  | 
 | ||||||
| @ -11,7 +11,7 @@ diff --git a/api/semanticcolor.cpp b/api/semanticcolor.cpp | |||||||
| index 9f86960..22859eb 100644
 | index 9f86960..22859eb 100644
 | ||||||
| --- a/api/semanticcolor.cpp
 | --- a/api/semanticcolor.cpp
 | ||||||
| +++ b/api/semanticcolor.cpp
 | +++ b/api/semanticcolor.cpp
 | ||||||
| @@ -232,8 +232,9 @@ rgb CodeColor::getColor( PRV_UINT32 pos ) const
 | @@ -295,8 +295,9 @@ rgb SemanticColor::getColor( PRV_UINT32 pos ) const
 | ||||||
|  { |  { | ||||||
|    if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() ) |    if( pos == 0 && ParaverConfig::getInstance()->getColorsTimelineUseZero() ) | ||||||
|      return ParaverConfig::getInstance()->getColorsTimelineColorZero(); |      return ParaverConfig::getInstance()->getColorsTimelineColorZero(); | ||||||
| @ -22,26 +22,26 @@ index 9f86960..22859eb 100644 | |||||||
| +  return colors[ pos + 1 ];
 | +  return colors[ pos + 1 ];
 | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) |  void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor ) | ||||||
| @@ -250,6 +251,12 @@ void CodeColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
 | @@ -314,6 +315,12 @@ void SemanticColor::setColor( PRV_UINT32 whichPos, rgb whichColor )
 | ||||||
|    colors[ whichPos ] = whichColor; |    colors[ whichPos ] = whichColor; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| +void CodeColor::cutAfter( PRV_UINT32 pos )
 | +void SemanticColor::cutAfter( PRV_UINT32 pos )
 | ||||||
| +{
 | +{
 | ||||||
| +  if ( pos < colors.size() )
 | +  if ( pos < colors.size() )
 | ||||||
| +    colors.erase( colors.begin() + pos, colors.end() );
 | +    colors.erase( colors.begin() + pos, colors.end() );
 | ||||||
| +}
 | +}
 | ||||||
| +
 | +
 | ||||||
|  void CodeColor::setCustomColor( TSemanticValue whichValue, rgb color )  |  void SemanticColor::setCustomColor( TSemanticValue whichValue, rgb color )  | ||||||
|  { |  { | ||||||
|    customPalette[ whichValue ] = color; |    customPalette[ whichValue ] = color; | ||||||
| diff --git a/api/semanticcolor.h b/api/semanticcolor.h
 | diff --git a/api/semanticcolor.h b/api/semanticcolor.h
 | ||||||
| index a079556..bddf3d8 100644
 | index a079556..bddf3d8 100644
 | ||||||
| --- a/api/semanticcolor.h
 | --- a/api/semanticcolor.h
 | ||||||
| +++ b/api/semanticcolor.h
 | +++ b/api/semanticcolor.h
 | ||||||
| @@ -98,6 +98,7 @@ class CodeColor: public SemanticColor
 | @@ -114,6 +114,7 @@ class SemanticColor
 | ||||||
|   |      // Code Color methods | ||||||
|      PRV_UINT32 getNumColors() const; |      PRV_UINT32 getNumColors() const; | ||||||
|      void setColor( PRV_UINT32 pos, rgb color ); |      void setColor( PRV_UINT32 pos, rgb color ); | ||||||
| +    void cutAfter( PRV_UINT32 pos );
 | +    void cutAfter( PRV_UINT32 pos );
 | ||||||
| @ -61,7 +61,7 @@ index b0d2050..ee2ab69 100644 | |||||||
|    for ( auto it : semanticColors ) |    for ( auto it : semanticColors ) | ||||||
|    { |    { | ||||||
|      std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second; |      std::tie( tmpColor.red, tmpColor.green, tmpColor.blue ) = it.second; | ||||||
|      myCodeColor.setColor( it.first, tmpColor ); |      mySemanticColor.setColor( it.first, tmpColor ); | ||||||
| +	if (it.first > maxValue)
 | +	if (it.first > maxValue)
 | ||||||
| +      maxValue = it.first;
 | +      maxValue = it.first;
 | ||||||
|    } |    } | ||||||
| @ -69,7 +69,7 @@ index b0d2050..ee2ab69 100644 | |||||||
| +  // Cut the palette after the highest defined value, so there are no
 | +  // Cut the palette after the highest defined value, so there are no
 | ||||||
| +  // extra expanded values
 | +  // extra expanded values
 | ||||||
| +  if ( !pcfParser.expandColors )
 | +  if ( !pcfParser.expandColors )
 | ||||||
| +	myCodeColor.cutAfter(maxValue);
 | +	mySemanticColor.cutAfter(maxValue);
 | ||||||
| +
 | +
 | ||||||
|    myEventLabels = EventLabels( pcfParser ); |    myEventLabels = EventLabels( pcfParser ); | ||||||
|    myStateLabels = StateLabels( pcfParser ); |    myStateLabels = StateLabels( pcfParser ); | ||||||
|  | |||||||
							
								
								
									
										87
									
								
								pkgs/paraver/fix-boost-87.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								pkgs/paraver/fix-boost-87.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,87 @@ | |||||||
|  | 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 | ||||||
|  | 
 | ||||||
							
								
								
									
										23
									
								
								pkgs/paraver/fix-libxml2-deprecation.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								pkgs/paraver/fix-libxml2-deprecation.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | 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,32 +1,32 @@ | |||||||
| { | { | ||||||
|   stdenv |   stdenv | ||||||
|  | , fetchFromGitHub | ||||||
| , autoreconfHook | , autoreconfHook | ||||||
| , boost | , boost | ||||||
| , libxml2 | , libxml2 | ||||||
| , xml2 | , xml2 | ||||||
| , wxGTK32 |  | ||||||
| , autoconf | , autoconf | ||||||
| , automake | , automake | ||||||
| , pkg-config | , pkg-config | ||||||
| , zlib | , zlib | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| let |  | ||||||
|   wx = wxGTK32; |  | ||||||
| in |  | ||||||
| stdenv.mkDerivation rec { | stdenv.mkDerivation rec { | ||||||
|   pname = "paraver-kernel"; |   pname = "paraver-kernel"; | ||||||
|   version = "${src.shortRev}"; |   version = "4.12.0"; | ||||||
| 
 | 
 | ||||||
|   src = builtins.fetchGit { |   src = fetchFromGitHub { | ||||||
|     url = "https://github.com/bsc-performance-tools/paraver-kernel.git"; |     owner = "bsc-performance-tools"; | ||||||
|     rev = "2e167da3cee78ca11e31b74faefb23f12bac2b8c"; # master (missing tag) |     repo = "paraver-kernel"; | ||||||
|     ref = "master"; |     rev = "v${version}"; | ||||||
|  |     sha256 = "sha256-Xs7g8ITZhPt00v7o2WlTddbou8C8Rc9kBMFpl2WsCS4="; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   patches = [ |   patches = [ | ||||||
|     # https://github.com/bsc-performance-tools/paraver-kernel/pull/11 |     # https://github.com/bsc-performance-tools/paraver-kernel/pull/11 | ||||||
|     ./dont-expand-colors.patch |     # TODO: add this back if it's still relevant | ||||||
|  |     # ./dont-expand-colors.patch | ||||||
|  |     ./fix-libxml2-deprecation.patch | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   hardeningDisable = [ "all" ]; |   hardeningDisable = [ "all" ]; | ||||||
|  | |||||||
| @ -15,7 +15,7 @@ | |||||||
| , useGit ? false | , useGit ? false | ||||||
| , gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git" | , gitUrl ? "ssh://git@bscpm04.bsc.es/interoperability/tampi.git" | ||||||
| , gitBranch ? "master" | , gitBranch ? "master" | ||||||
| , gitCommit ? "a5c93bf8ab045b71ad4a8d5e2c991ce774db5cbc" | , gitCommit ? "f6455db9d3124ae36e715a4874fd49720e79f20a" | ||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| @ -24,12 +24,12 @@ assert enableOvni -> (ovni != null); | |||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   release = rec { |   release = rec { | ||||||
|     version = "4.0"; |     version = "4.1"; | ||||||
|     src = fetchFromGitHub { |     src = fetchFromGitHub { | ||||||
|       owner = "bsc-pm"; |       owner = "bsc-pm"; | ||||||
|       repo = "tampi"; |       repo = "tampi"; | ||||||
|       rev = "v${version}"; |       rev = "v${version}"; | ||||||
|       hash = "sha256-R7ew5tsrxGReTvOeeZe1FD0oThBhOHoDGv6Mo2sbmDg="; |       hash = "sha256-SwfPSnwcZnRnSgNvCD5sFSUJRpWINqI5I4adj5Hh+XY="; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|   git = rec { |   git = rec { | ||||||
| @ -46,15 +46,16 @@ in stdenv.mkDerivation rec { | |||||||
|   inherit (source) src version; |   inherit (source) src version; | ||||||
|   enableParallelBuilding = true; |   enableParallelBuilding = true; | ||||||
|   separateDebugInfo = true; |   separateDebugInfo = true; | ||||||
|   buildInputs = [ |   nativeBuildInputs = [ | ||||||
|     autoreconfHook |     autoreconfHook | ||||||
|     automake |     automake | ||||||
|     autoconf |     autoconf | ||||||
|     libtool |     libtool | ||||||
|     gnumake |     gnumake | ||||||
|  |   ]; | ||||||
|  |   buildInputs = [ | ||||||
|     boost |     boost | ||||||
|     mpi |     mpi | ||||||
|     gcc |  | ||||||
|   ] ++ optional (enableOvni) ovni; |   ] ++ optional (enableOvni) ovni; | ||||||
|   configureFlags = optional (enableOvni) "--with-ovni=${ovni}"; |   configureFlags = optional (enableOvni) "--with-ovni=${ovni}"; | ||||||
|   dontDisableStatic = true; |   dontDisableStatic = true; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user