From 53f556626e0053a6260b10970504fbbdda297f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Bon=C3=A9?= Date: Wed, 21 May 2025 17:57:43 +0200 Subject: [PATCH] ompss: set flags when intel --- pkgs/intel-oneapi/patch_intel.nix | 4 ++++ pkgs/llvm-ompss2/default.nix | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/pkgs/intel-oneapi/patch_intel.nix b/pkgs/intel-oneapi/patch_intel.nix index d5427dc..ec9fb2d 100644 --- a/pkgs/intel-oneapi/patch_intel.nix +++ b/pkgs/intel-oneapi/patch_intel.nix @@ -151,6 +151,10 @@ stdenvNoCC.mkDerivation (finalAttrs: { ln -s $out/bin/icpx $out/bin/c++ ln -s $out/bin/icx $out/bin/cc + # Use this to detect when a compiler subprocess is called + # from icpx (--fsycl-host-compiler) + echo 'export "NIX_CC_WRAPPER_INTEL=1"' >> $out/nix-support/cc-wrapper-hook + sed -i 's/.*isCxx=0/isCxx=1/' $out/bin/icpx ln -s ${finalAttrs.finalPackage.pkgs.compiler}/lib $out/lib diff --git a/pkgs/llvm-ompss2/default.nix b/pkgs/llvm-ompss2/default.nix index 64a908a..19bbe15 100644 --- a/pkgs/llvm-ompss2/default.nix +++ b/pkgs/llvm-ompss2/default.nix @@ -3,6 +3,7 @@ , lib , gcc , clangOmpss2Unwrapped +, writeShellScript , openmp ? null , wrapCCWith , llvmPackages_latest @@ -37,6 +38,15 @@ let inherit gcc; cc = clangOmpss2Unwrapped; gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)]; + + resetIntelCCFlags = let tconf = builtins.replaceStrings ["-"] ["_"] targetConfig; + in writeShellScript "remove-intel.sh" '' + if [ "$NIX_CC_WRAPPER_INTEL" = 1 ]; then + unset NIX_CC_WRAPPER_FLAGS_SET_${tconf} + unset NIX_BINTOOLS_WRAPPER_FLAGS_${tconf} + fi + ''; + in wrapCCWith { inherit cc bintools; # extraPackages adds packages to depsTargetTargetPropagated @@ -61,6 +71,9 @@ in wrapCCWith { wrap clang++ $wrapper $ccPath/clang++ + sed -i 's|# Flirting.*|&\nsource ${resetIntelCCFlags}|' $out/bin/clang + sed -i 's|# Flirting.*|&\nsource ${resetIntelCCFlags}|' $out/bin/clang++ + echo "" > $out/nix-support/add-hardening.sh '' + lib.optionalString (openmp != null) ''