diff --git a/overlay.nix b/overlay.nix index d4ea269..fd32645 100644 --- a/overlay.nix +++ b/overlay.nix @@ -40,10 +40,10 @@ let #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; }; + stdenvClangOmpss2 = final.stdenv.override { cc = final.buildPackages.clangOmpss2; allowedRequisites = null; }; + stdenvClangOmpss2Nanos6 = final.stdenv.override { cc = final.buildPackages.clangOmpss2Nanos6; allowedRequisites = null; }; + stdenvClangOmpss2Nodes = final.stdenv.override { cc = final.buildPackages.clangOmpss2Nodes; allowedRequisites = null; }; + stdenvClangOmpss2NodesOmpv = final.stdenv.override { cc = final.buildPackages.clangOmpss2NodesOmpv; allowedRequisites = null; }; tagaspi = callPackage ./pkgs/tagaspi/default.nix { }; tampi = callPackage ./pkgs/tampi/default.nix { }; wxparaver = callPackage ./pkgs/paraver/default.nix { }; diff --git a/pkgs/llvm-ompss2/clang.nix b/pkgs/llvm-ompss2/clang.nix index 3302e64..0e655fe 100644 --- a/pkgs/llvm-ompss2/clang.nix +++ b/pkgs/llvm-ompss2/clang.nix @@ -1,5 +1,6 @@ { - llvmPackages_latest + stdenv +, llvmPackages_latest , lib , fetchFromGitHub , cmake @@ -11,7 +12,6 @@ , 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" @@ -20,7 +20,10 @@ }: 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 { version = "2024.11"; @@ -43,7 +46,7 @@ let source = if (useGit) then git else release; -in stdenv.mkDerivation rec { +in llvmStdenv.mkDerivation rec { pname = "clang-ompss2"; inherit (source) src version; @@ -57,20 +60,22 @@ in stdenv.mkDerivation rec { isClangWithOmpss = true; - nativeBuildInputs = [ zlib ]; + nativeBuildInputs = [ + zlib + gcc.cc.lib # Required for libstdc++.so.6 + cmake + python3 + ]; buildInputs = [ which bash - python3 perl - cmake - llvmPackages_latest.lld + llvmPackages.lld elfutils libffi pkg-config zlib - gcc.cc.lib # Required for libstdc++.so.6 ]; # Error with -D_FORTIFY_SOURCE=2, see https://bugs.gentoo.org/636604: @@ -86,6 +91,7 @@ in stdenv.mkDerivation rec { 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 = '' @@ -93,8 +99,13 @@ in stdenv.mkDerivation rec { cd build cmakeDir="../llvm" 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_BUILD_LLVM_DYLIB=ON" "-DLLVM_LINK_LLVM_DYLIB=ON" # Required to run clang-ast-dump and clang-tblgen during build @@ -103,7 +114,8 @@ in stdenv.mkDerivation rec { "-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_PROJECTS=clang;lld" + #"-DLLVM_ENABLE_PROJECTS=clang;compiler-rt;lld" "-DLLVM_ENABLE_ASSERTIONS=ON" "-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON" "-DCMAKE_INSTALL_BINDIR=bin"