Add passthru in ompss2 wrapper for icpx compat
This commit is contained in:
		
							parent
							
								
									a3a0dbcc55
								
							
						
					
					
						commit
						a3ee080e9e
					
				| @ -39,22 +39,6 @@ let | |||||||
|   cc = clangOmpss2Unwrapped; |   cc = clangOmpss2Unwrapped; | ||||||
|   gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)]; |   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:-0}" = 1 ]; then |  | ||||||
|       unset NIX_CFLAGS_COMPILE_${tconf} |  | ||||||
|       unset NIX_CC_WRAPPER_FLAGS_SET_${tconf} |  | ||||||
| 
 |  | ||||||
|       if (( "${NIX_DEBUG:-0}" >= 1 )); then |  | ||||||
|         echo "ompss2: cleaned NIX_CFLAGS_COMPILE_${tconf} (invokation from intel compiler detected)" |  | ||||||
|       fi |  | ||||||
|     fi |  | ||||||
|   ''; |  | ||||||
| 
 |  | ||||||
| in wrapCCWith { |  | ||||||
|   inherit cc bintools; |  | ||||||
|   # extraPackages adds packages to depsTargetTargetPropagated |  | ||||||
|   extraPackages = optional (openmp != null) openmp; |  | ||||||
|   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}/${gccVersion}" >> $out/nix-support/cc-cflags |     echo "-B${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-cflags | ||||||
| @ -71,11 +55,9 @@ 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 clang++  $wrapper $ccPath/clang++ | ||||||
|  |   ''; | ||||||
| 
 | 
 | ||||||
|     sed -i 's|# Flirting.*|source ${resetIntelCCFlags}\n\n&|' $out/bin/clang |   envExports = lib.optionalString (openmp != null) '' | ||||||
|     sed -i 's|# Flirting.*|&\nsource ${resetIntelCCFlags}\n\n&|' $out/bin/clang++ |  | ||||||
| 
 |  | ||||||
|   '' + lib.optionalString (openmp != null) '' |  | ||||||
|       echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook |       echo "export OPENMP_RUNTIME=${ompname}" >> $out/nix-support/cc-wrapper-hook | ||||||
|     '' + 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 | ||||||
| @ -83,5 +65,40 @@ in wrapCCWith { | |||||||
|     '' + 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.nosv}" >> $out/nix-support/cc-wrapper-hook | ||||||
|     ''; |     ''; | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
|  |   extraPackages = optional (openmp != null) openmp; | ||||||
|  | 
 | ||||||
|  |   wrappedCC = wrapCCWith { | ||||||
|  |     # extraPackages adds packages to depsTargetTargetPropagated | ||||||
|  |     inherit cc bintools extraPackages; | ||||||
|  |     extraBuildCommands = extraBuildCommands + envExports; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   resetIntelCCFlags = let tconf = builtins.replaceStrings ["-"] ["_"] targetConfig; | ||||||
|  |   in writeShellScript "remove-intel.sh" '' | ||||||
|  |     if [ "''${NIX_CC_WRAPPER_INTEL:-0}" = 1 ]; then | ||||||
|  |       unset NIX_CFLAGS_COMPILE_${tconf} | ||||||
|  |       unset NIX_CC_WRAPPER_FLAGS_SET_${tconf} | ||||||
|  | 
 | ||||||
|  |       if (( "''${NIX_DEBUG:-0}" >= 1 )); then | ||||||
|  |         echo "ompss2: cleaned NIX_CFLAGS_COMPILE_${tconf} (invokation from intel compiler detected)" | ||||||
|  |       fi | ||||||
|  |     fi | ||||||
|  |   ''; | ||||||
|  | 
 | ||||||
|  |   intelExtraBuildCommands = '' | ||||||
|  |     sed -i 's|# Flirting.*|source ${resetIntelCCFlags}\n\n&|' $out/bin/clang | ||||||
|  |     sed -i 's|# Flirting.*|source ${resetIntelCCFlags}\n\n&|' $out/bin/clang++ | ||||||
|  |   ''; | ||||||
|  | 
 | ||||||
|  |   wrappedCCIntel = wrapCCWith { | ||||||
|  |     inherit cc bintools extraPackages; | ||||||
|  |     # extraPackages adds packages to depsTargetTargetPropagated | ||||||
|  |     extraBuildCommands = intelExtraBuildCommands + envExports; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  | in wrappedCC.overrideAttrs (oldAttrs: { | ||||||
|  |     passthru = oldAttrs.passthru // { | ||||||
|  |       forIcpx = wrappedCCIntel; | ||||||
|  |     }; | ||||||
|  |   }) | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| { writeText, intelPackages, nodes, nosv, clangOmpss2Nodes, clangOmpss2Unwrapped, clangOmpss2, strace }: | { writeText, intelPackages, nodes, nosv, clangOmpss2Nodes, strace }: | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   hello_cpp = writeText "hello.cpp" '' |   hello_cpp = writeText "hello.cpp" '' | ||||||
| @ -44,6 +44,10 @@ intelPackages.stdenv.mkDerivation { | |||||||
|   dontUnpack = true; |   dontUnpack = true; | ||||||
|   dontConfigure = true; |   dontConfigure = true; | ||||||
| 
 | 
 | ||||||
|  |   # NODES requires access to /sys/devices to request NUMA information. It will | ||||||
|  |   # fail to run otherwise, so we disable the sandbox for this test. | ||||||
|  |   __noChroot = true; | ||||||
|  | 
 | ||||||
|   env.NODES_HOME = nodes; |   env.NODES_HOME = nodes; | ||||||
| 
 | 
 | ||||||
|   NIX_DEBUG = 0; |   NIX_DEBUG = 0; | ||||||
| @ -55,7 +59,7 @@ intelPackages.stdenv.mkDerivation { | |||||||
|     command -v $CXX |     command -v $CXX | ||||||
| 
 | 
 | ||||||
|     icpx -Wno-deprecated-declarations -fsycl \ |     icpx -Wno-deprecated-declarations -fsycl \ | ||||||
|         -fsycl-host-compiler=${clangOmpss2Nodes}/bin/clang++ \ |         -fsycl-host-compiler=${clangOmpss2Nodes.forIcpx}/bin/clang++ \ | ||||||
|         -fsycl-host-compiler-options='-Wno-deprecated-declarations -fompss-2=libnodes' \ |         -fsycl-host-compiler-options='-Wno-deprecated-declarations -fompss-2=libnodes' \ | ||||||
|         -lnodes -lnosv \ |         -lnodes -lnosv \ | ||||||
|         $NODES_HOME/lib/nodes-main-wrapper.o \ |         $NODES_HOME/lib/nodes-main-wrapper.o \ | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user