forked from rarias/bscpkgs
Compare commits
17 Commits
87c1903778
...
pkgs/tasyc
| Author | SHA1 | Date | |
|---|---|---|---|
|
9aa866ee76
|
|||
|
3f6950c1f0
|
|||
|
53f556626e
|
|||
|
f3483e8a88
|
|||
|
2d637cc88c
|
|||
|
8836ca4359
|
|||
|
8ffb971348
|
|||
|
bdbfd77446
|
|||
|
83ae2f489d
|
|||
|
39157ea318
|
|||
|
f2f33fd0b4
|
|||
|
c223d205c5
|
|||
|
ff775ad725
|
|||
|
858976b37b
|
|||
|
9f0ec54033
|
|||
|
0399ae5481
|
|||
| 43d32ac16d |
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; }
|
||||||
|
)
|
||||||
|
|||||||
@@ -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=";
|
|
||||||
}
|
|
||||||
@@ -46,14 +46,24 @@ let
|
|||||||
in (wrapCCWith {
|
in (wrapCCWith {
|
||||||
inherit cc;
|
inherit cc;
|
||||||
extraBuildCommands = ''
|
extraBuildCommands = ''
|
||||||
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
|
|
||||||
echo "-isystem ${cc}/include/intel64" >> $out/nix-support/cc-cflags
|
|
||||||
|
|
||||||
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $out/nix-support/cc-ldflags
|
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gcc.version}" >> $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
|
||||||
echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags
|
echo "-L${cc}/lib" >> $out/nix-support/cc-ldflags
|
||||||
|
|
||||||
echo "--gcc-toolchain=${gcc.cc}" >> $out/nix-support/libcxx-cxxflags
|
echo "--gcc-toolchain=${gcc.cc}" >> $out/nix-support/cc-cflags
|
||||||
|
|
||||||
|
# For some reason, If we don't resolve the realpath things go wrong
|
||||||
|
for stddef in ${cc}/lib/clang/*/include/stddef.h ; do
|
||||||
|
dir=$(dirname $(realpath "$stddef"))
|
||||||
|
echo "-isystem $dir" >> $out/nix-support/cc-cflags
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
|
||||||
|
echo "-isystem ${cc}/include/intel64" >> $out/nix-support/cc-cflags
|
||||||
|
|
||||||
|
for dir in ${gcc.cc}/lib/gcc/${targetConfig}/*/include; do
|
||||||
|
echo "-isystem $dir" >> $out/nix-support/cc-cflags
|
||||||
|
done
|
||||||
|
|
||||||
for dir in ${gcc.cc}/include/c++/*; do
|
for dir in ${gcc.cc}/include/c++/*; do
|
||||||
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
||||||
@@ -68,12 +78,6 @@ let
|
|||||||
# Disable hardening by default
|
# Disable hardening by default
|
||||||
echo "" > $out/nix-support/add-hardening.sh
|
echo "" > $out/nix-support/add-hardening.sh
|
||||||
|
|
||||||
# For some reason, If we don't resolve the realpath things go wrong
|
|
||||||
for stddef in ${cc}/lib/clang/*/include/stddef.h ; do
|
|
||||||
dir=$(dirname $(realpath "$stddef"))
|
|
||||||
echo "-isystem $dir" >> $out/nix-support/cc-cflags
|
|
||||||
done
|
|
||||||
|
|
||||||
'' + extraBuildCommands;
|
'' + extraBuildCommands;
|
||||||
} // (removeAttrs args ["cc" "extraBuildCommands" "extraInstall"])
|
} // (removeAttrs args ["cc" "extraBuildCommands" "extraInstall"])
|
||||||
).overrideAttrs (old: {
|
).overrideAttrs (old: {
|
||||||
@@ -147,6 +151,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||||||
ln -s $out/bin/icpx $out/bin/c++
|
ln -s $out/bin/icpx $out/bin/c++
|
||||||
ln -s $out/bin/icx $out/bin/cc
|
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
|
sed -i 's/.*isCxx=0/isCxx=1/' $out/bin/icpx
|
||||||
|
|
||||||
ln -s ${finalAttrs.finalPackage.pkgs.compiler}/lib $out/lib
|
ln -s ${finalAttrs.finalPackage.pkgs.compiler}/lib $out/lib
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
, lib
|
, lib
|
||||||
, gcc
|
, gcc
|
||||||
, clangOmpss2Unwrapped
|
, clangOmpss2Unwrapped
|
||||||
|
, writeShellScript
|
||||||
, openmp ? null
|
, openmp ? null
|
||||||
, wrapCCWith
|
, wrapCCWith
|
||||||
, llvmPackages_latest
|
, llvmPackages_latest
|
||||||
@@ -37,6 +38,22 @@ let
|
|||||||
inherit gcc;
|
inherit gcc;
|
||||||
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" = 1 ]; then
|
||||||
|
unset NIX_CFLAGS_COMPILE_${tconf}
|
||||||
|
unset NIX_CFLAGS_COMPILE_BEFORE_${tconf}
|
||||||
|
unset NIX_CFLAGS_LINK_${tconf}
|
||||||
|
unset NIX_CXXSTDLIB_COMPILE_${tconf}
|
||||||
|
unset NIX_CXXSTDLIB_LINK_${tconf}
|
||||||
|
unset NIX_GNATFLAGS_COMPILE_${tconf}
|
||||||
|
|
||||||
|
unset NIX_CC_WRAPPER_FLAGS_SET_${tconf}
|
||||||
|
# unset NIX_BINTOOLS_WRAPPER_FLAGS_${tconf}
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
in wrapCCWith {
|
in wrapCCWith {
|
||||||
inherit cc bintools;
|
inherit cc bintools;
|
||||||
# extraPackages adds packages to depsTargetTargetPropagated
|
# extraPackages adds packages to depsTargetTargetPropagated
|
||||||
@@ -47,6 +64,9 @@ in wrapCCWith {
|
|||||||
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $out/nix-support/cc-ldflags
|
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}/lib/gcc/${targetConfig}/*/include; do
|
||||||
|
echo "-isystem $dir" >> $out/nix-support/cc-cflags
|
||||||
|
done
|
||||||
for dir in ${gcc.cc}/include/c++/*; do
|
for dir in ${gcc.cc}/include/c++/*; do
|
||||||
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
||||||
done
|
done
|
||||||
@@ -58,7 +78,12 @@ in wrapCCWith {
|
|||||||
|
|
||||||
wrap clang++ $wrapper $ccPath/clang++
|
wrap clang++ $wrapper $ccPath/clang++
|
||||||
|
|
||||||
'' + optionalString (openmp != null) ''
|
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) ''
|
||||||
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
|
||||||
|
|||||||
@@ -12,11 +12,11 @@
|
|||||||
, opensycl ? null
|
, opensycl ? null
|
||||||
, adaptivecpp ? null
|
, adaptivecpp ? null
|
||||||
, useIntel ? true
|
, useIntel ? true
|
||||||
# TODO: move back to main branch and release
|
|
||||||
, useGit ? true
|
, useGit ? false
|
||||||
, gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tasycl/tasycl.git"
|
, gitUrl ? "git@gitlab-internal.bsc.es:task-awareness/tasycl/tasycl.git"
|
||||||
, gitBranch ? "fix/various"
|
, gitBranch ? "main"
|
||||||
, gitCommit ? "8be4729ded0ef64f028e98eb2b2baf2ccba7ff42"
|
, gitCommit ? "78f98dcf60a66e0eaa3b4ebcf55be076bec64825"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert (useIntel || opensycl != null || adaptivecpp != null);
|
assert (useIntel || opensycl != null || adaptivecpp != null);
|
||||||
@@ -42,12 +42,12 @@ let
|
|||||||
;
|
;
|
||||||
|
|
||||||
release = rec {
|
release = rec {
|
||||||
version = "2.0.0";
|
version = "2.1.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "bsc-pm";
|
owner = "bsc-pm";
|
||||||
repo = "tasycl";
|
repo = "tasycl";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-Z4d45baVBhE9NW8Ww948M78TJx7BpxTr9pGJvJO9hdI=";
|
hash = "sha256-0kXnb0lHeQNHR27GTLbJ8xbiICLU8k2+FqEnnFSrzzo=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user