forked from rarias/bscpkgs
Compare commits
4 Commits
77ddd1c9c1
...
fix/sycl
| Author | SHA1 | Date | |
|---|---|---|---|
|
3e0473d75e
|
|||
|
ae59902fcc
|
|||
|
60a17565ea
|
|||
|
3f26a7e4fa
|
22
default.nix
22
default.nix
@@ -1,19 +1,11 @@
|
|||||||
let
|
let
|
||||||
bscOverlay = import ./overlay.nix;
|
bscOverlay = import ./overlay.nix;
|
||||||
|
|
||||||
# read flake.lock and determine revision from there
|
# Pin the nixpkgs
|
||||||
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
nixpkgsPath = import ./nixpkgs.nix;
|
||||||
inherit (lock.nodes.nixpkgs.locked) rev narHash;
|
|
||||||
fetchedNixpkgs = builtins.fetchTarball {
|
pkgs = import nixpkgsPath {
|
||||||
url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz";
|
overlays = [ bscOverlay ];
|
||||||
sha256 = narHash;
|
|
||||||
};
|
};
|
||||||
in
|
|
||||||
{ overlays ? [ ]
|
in pkgs
|
||||||
, nixpkgs ? fetchedNixpkgs
|
|
||||||
, ...
|
|
||||||
}@attrs:
|
|
||||||
import nixpkgs (
|
|
||||||
(builtins.removeAttrs attrs [ "overlays" "nixpkgs" ]) //
|
|
||||||
{ overlays = [ bscOverlay ] ++ overlays; }
|
|
||||||
)
|
|
||||||
|
|||||||
9
nixpkgs.nix
Normal file
9
nixpkgs.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
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=";
|
||||||
|
}
|
||||||
@@ -10,9 +10,6 @@ let
|
|||||||
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
|
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
|
||||||
|
|
||||||
bscPkgs = {
|
bscPkgs = {
|
||||||
aoccUnwrapped = callPackage ./pkgs/aocc/unwrapped.nix { };
|
|
||||||
aocc = callPackage ./pkgs/aocc/default.nix { };
|
|
||||||
stdenvAocc = final.overrideCC final.stdenv final.aocc;
|
|
||||||
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 { };
|
||||||
@@ -23,8 +20,9 @@ let
|
|||||||
#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 { };
|
||||||
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
||||||
|
intelPackages = final.intelPackages_2023;
|
||||||
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
||||||
lmbench = callPackage ./pkgs/lmbench/default.nix { };
|
#lmbench = callPackage ./pkgs/lmbench/default.nix { }; # Broken
|
||||||
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; };
|
||||||
@@ -63,6 +61,7 @@ in bscPkgs // {
|
|||||||
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
|
#sigsegv = callPackage ./test/reproducers/sigsegv.nix { };
|
||||||
hello-c = callPackage ./test/compilers/hello-c.nix { };
|
hello-c = callPackage ./test/compilers/hello-c.nix { };
|
||||||
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
|
hello-cpp = callPackage ./test/compilers/hello-cpp.nix { };
|
||||||
|
hello-sycl = callPackage ./test/compilers/hello-sycl.nix { };
|
||||||
lto = callPackage ./test/compilers/lto.nix { };
|
lto = callPackage ./test/compilers/lto.nix { };
|
||||||
asan = callPackage ./test/compilers/asan.nix { };
|
asan = callPackage ./test/compilers/asan.nix { };
|
||||||
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
|
intel2023-icx-c = hello-c.override { stdenv = final.intelPackages_2023.stdenv; };
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
{ lib
|
|
||||||
, aoccUnwrapped
|
|
||||||
, wrapCCWith
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cc = aoccUnwrapped;
|
|
||||||
stdenv = aoccUnwrapped.stdenv;
|
|
||||||
targetConfig = stdenv.targetPlatform.config;
|
|
||||||
|
|
||||||
gcc = stdenv.cc;
|
|
||||||
|
|
||||||
in wrapCCWith {
|
|
||||||
inherit cc;
|
|
||||||
|
|
||||||
extraBuildCommands = ''
|
|
||||||
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
|
|
||||||
|
|
||||||
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${cc}/lib" >> $out/nix-support/cc-ldflags
|
|
||||||
|
|
||||||
# Need the gcc in the path
|
|
||||||
echo 'export "PATH=${gcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook
|
|
||||||
|
|
||||||
# Disable hardening by default
|
|
||||||
echo "" > $out/nix-support/add-hardening.sh
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{ lib
|
|
||||||
, fetchurl
|
|
||||||
, stdenv
|
|
||||||
, autoPatchelfHook
|
|
||||||
, rocmPackages
|
|
||||||
, zlib
|
|
||||||
, libffi
|
|
||||||
, elfutils
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
# in newer nixpkgs the runtime is hsakmt
|
|
||||||
rocmRuntime = if rocmPackages ? hsakmt then
|
|
||||||
rocmPackages.hsakmt
|
|
||||||
else
|
|
||||||
rocmPackages.rocm-runtime;
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "aocc-compiler";
|
|
||||||
version = "5.0.0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://download.amd.com/developer/eula/aocc/aocc-5-0/aocc-compiler-5.0.0.tar";
|
|
||||||
sha256 = "sha256-lm+sLSx1np3m6WnBCtp6ezBsET9/HgfqN2gp7IY4Dao=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ autoPatchelfHook ];
|
|
||||||
buildInputs = [
|
|
||||||
elfutils
|
|
||||||
zlib
|
|
||||||
rocmRuntime
|
|
||||||
stdenv.cc.cc.lib
|
|
||||||
];
|
|
||||||
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
|
|
||||||
dontStrip = true;
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out
|
|
||||||
cp -a . $out/
|
|
||||||
|
|
||||||
ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
isClang = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
@@ -1,22 +1,14 @@
|
|||||||
{
|
{
|
||||||
stdenv
|
stdenv
|
||||||
, bigotes
|
|
||||||
, cmake
|
, cmake
|
||||||
, clangOmpss2
|
, clangOmpss2
|
||||||
, openmp
|
|
||||||
, openmpv
|
|
||||||
, nanos6
|
, nanos6
|
||||||
, nodes
|
, nodes
|
||||||
, nosv
|
|
||||||
, mpi
|
, mpi
|
||||||
, tampi
|
, tampi
|
||||||
, tagaspi
|
|
||||||
, gpi-2
|
|
||||||
, 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 ? "bf29a53113737c3aa74d2fe3d55f59868faea7b4"
|
, gitCommit ? "1e6ce2aa8ad7b4eef38df1581d7ec48a8815f85d"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@@ -29,30 +21,9 @@ stdenv.mkDerivation rec {
|
|||||||
rev = gitCommit;
|
rev = gitCommit;
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [ cmake clangOmpss2 nanos6 nodes mpi tampi ];
|
||||||
bigotes
|
|
||||||
cmake
|
|
||||||
clangOmpss2
|
|
||||||
openmp
|
|
||||||
openmpv
|
|
||||||
nanos6
|
|
||||||
nodes
|
|
||||||
nosv
|
|
||||||
mpi
|
|
||||||
tampi
|
|
||||||
tagaspi
|
|
||||||
gpi-2
|
|
||||||
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++"
|
||||||
|
|||||||
@@ -313,6 +313,9 @@ let
|
|||||||
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-${version}"
|
"intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-common-${version}"
|
||||||
"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}"
|
||||||
|
"intel-oneapi-compiler-shared-${version}"
|
||||||
|
"intel-oneapi-compiler-shared-common-${version}"
|
||||||
|
"intel-oneapi-compiler-shared-runtime-${version}"
|
||||||
];
|
];
|
||||||
# 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
|
||||||
@@ -329,9 +332,9 @@ let
|
|||||||
# - intel-oneapi-compiler-fortran-common-2023.0.0-2023.0.0-25370_all.deb
|
# - intel-oneapi-compiler-fortran-common-2023.0.0-2023.0.0-25370_all.deb
|
||||||
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||||
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-25370_amd64.deb
|
# - intel-oneapi-compiler-fortran-runtime-2023.0.0-25370_amd64.deb
|
||||||
# - intel-oneapi-compiler-shared-2023.0.0-2023.0.0-25370_amd64.deb
|
# + intel-oneapi-compiler-shared-2023.0.0-2023.0.0-25370_amd64.deb
|
||||||
# - intel-oneapi-compiler-shared-common-2023.0.0-2023.0.0-25370_all.deb
|
# + intel-oneapi-compiler-shared-common-2023.0.0-2023.0.0-25370_all.deb
|
||||||
# - intel-oneapi-compiler-shared-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
# + intel-oneapi-compiler-shared-runtime-2023.0.0-2023.0.0-25370_amd64.deb
|
||||||
# - intel-oneapi-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
|
# - intel-oneapi-dpcpp-cpp-2023.0.0-2023.0.0-25370_amd64.deb
|
||||||
# - intel-oneapi-openmp-2023.0.0-2023.0.0-25370_amd64.deb
|
# - intel-oneapi-openmp-2023.0.0-2023.0.0-25370_amd64.deb
|
||||||
# - intel-oneapi-openmp-common-2023.0.0-2023.0.0-25370_all.deb
|
# - intel-oneapi-openmp-common-2023.0.0-2023.0.0-25370_all.deb
|
||||||
@@ -398,6 +401,15 @@ let
|
|||||||
echo "-L${intel-compiler-shared}/lib" >> $out/nix-support/cc-ldflags
|
echo "-L${intel-compiler-shared}/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=${mygcc.cc}" >> $out/nix-support/libcxx-cxxflags
|
||||||
|
|
||||||
|
for dir in ${mygcc.cc}/include/c++/*; do
|
||||||
|
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
||||||
|
done
|
||||||
|
for dir in ${mygcc.cc}/include/c++/*/${targetConfig}; do
|
||||||
|
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
|
||||||
|
done
|
||||||
|
|
||||||
# Need the gcc in the path
|
# Need the gcc in the path
|
||||||
echo 'export "PATH=${mygcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook
|
echo 'export "PATH=${mygcc}/bin:$PATH"' >> $out/nix-support/cc-wrapper-hook
|
||||||
|
|
||||||
|
|||||||
@@ -43,23 +43,23 @@ let
|
|||||||
|
|
||||||
source = if (useGit) then git else release;
|
source = if (useGit) then git else release;
|
||||||
|
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "clang-ompss2";
|
pname = "clang-ompss2";
|
||||||
inherit (source) src version;
|
inherit (source) src version;
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
isClang = true;
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
CC = "clang";
|
CC = "clang";
|
||||||
CXX = "clang++";
|
CXX = "clang++";
|
||||||
|
|
||||||
isClang = true;
|
|
||||||
isClangWithOmpss = true;
|
|
||||||
|
|
||||||
inherit gcc zlib;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
isClangWithOmpss = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ zlib ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
which
|
which
|
||||||
bash
|
bash
|
||||||
python3
|
python3
|
||||||
@@ -67,12 +67,8 @@ in stdenv.mkDerivation {
|
|||||||
cmake
|
cmake
|
||||||
llvmPackages_latest.lld
|
llvmPackages_latest.lld
|
||||||
elfutils
|
elfutils
|
||||||
pkg-config
|
|
||||||
zlib
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
libffi
|
libffi
|
||||||
|
pkg-config
|
||||||
zlib
|
zlib
|
||||||
gcc.cc.lib # Required for libstdc++.so.6
|
gcc.cc.lib # Required for libstdc++.so.6
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -9,14 +9,12 @@
|
|||||||
, ompss2rt ? null
|
, ompss2rt ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
let
|
||||||
usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
|
usingNodesAndOmpv = (openmp.pname == "openmp-v" && ompss2rt.pname == "nodes");
|
||||||
sameNosv = openmp.nosv == ompss2rt.nosv;
|
sameNosv = openmp.nosv == ompss2rt.nosv;
|
||||||
in
|
in
|
||||||
|
|
||||||
assert assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V";
|
assert lib.assertMsg (usingNodesAndOmpv -> sameNosv) "OpenMP-V and NODES must share the same nOS-V";
|
||||||
|
|
||||||
let
|
let
|
||||||
homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME";
|
homevar = if ompss2rt.pname == "nanos6" then "NANOS6_HOME" else "NODES_HOME";
|
||||||
@@ -36,15 +34,14 @@ let
|
|||||||
targetConfig = stdenv.targetPlatform.config;
|
targetConfig = stdenv.targetPlatform.config;
|
||||||
inherit gcc;
|
inherit gcc;
|
||||||
cc = clangOmpss2Unwrapped;
|
cc = clangOmpss2Unwrapped;
|
||||||
gccVersion = with versions; let v = gcc.version; in concatStringsSep "." [(major v) (minor v) (patch v)];
|
|
||||||
in wrapCCWith {
|
in wrapCCWith {
|
||||||
inherit cc bintools;
|
inherit cc bintools;
|
||||||
# extraPackages adds packages to depsTargetTargetPropagated
|
# extraPackages adds packages to depsTargetTargetPropagated
|
||||||
extraPackages = optional (openmp != null) openmp;
|
extraPackages = lib.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}/${gcc.version}" >> $out/nix-support/cc-cflags
|
||||||
echo "-L${gcc.cc}/lib/gcc/${targetConfig}/${gccVersion}" >> $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
|
||||||
|
|
||||||
for dir in ${gcc.cc}/include/c++/*; do
|
for dir in ${gcc.cc}/include/c++/*; do
|
||||||
@@ -58,12 +55,12 @@ in wrapCCWith {
|
|||||||
|
|
||||||
wrap clang++ $wrapper $ccPath/clang++
|
wrap clang++ $wrapper $ccPath/clang++
|
||||||
|
|
||||||
'' + optionalString (openmp != null) ''
|
'' + 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) ''
|
'' + lib.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
|
||||||
'' + optionalString (ompss2rt != null && ompss2rt.pname == "nodes") ''
|
'' + lib.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
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ 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,20 +1,19 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
stdenv,
|
stdenv,
|
||||||
libtirpc,
|
|
||||||
fetchFromGitHub
|
fetchFromGitHub
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "lmbench";
|
pname = "lmbench";
|
||||||
version = "941a0dcc";
|
version = "701c6c35";
|
||||||
|
|
||||||
# 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 = "941a0dcc0e7bdd9bb0dee05d7f620e77da8c43af";
|
rev = "701c6c35b0270d4634fb1dc5272721340322b8ed";
|
||||||
sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk=";
|
sha256 = "0sf6zk03knkardsfd6qx7drpm56nhg53n885cylkggk83r38idyr";
|
||||||
};
|
};
|
||||||
|
|
||||||
postUnpack = ''
|
postUnpack = ''
|
||||||
@@ -25,19 +24,12 @@ stdenv.mkDerivation rec {
|
|||||||
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 ];
|
|
||||||
|
|
||||||
hardeningDisable = [ "all" ];
|
hardeningDisable = [ "all" ];
|
||||||
|
|
||||||
enableParallelBuilding = false;
|
enableParallelBuilding = false;
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
makeFlagsArray+=(
|
makeFlagsArray+=(BASE=$out)
|
||||||
BASE=$out
|
|
||||||
CPPFLAGS=-I${libtirpc.dev}/include/tirpc
|
|
||||||
LDFLAGS=-ltirpc
|
|
||||||
)
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
--- a/Makefile
|
|
||||||
+++ b/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
|
|
||||||
55
test/compilers/hello-sycl.nix
Normal file
55
test/compilers/hello-sycl.nix
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
{ intelPackages, writeText, strace }:
|
||||||
|
|
||||||
|
let
|
||||||
|
stdenv = intelPackages.stdenv;
|
||||||
|
hello_sycl = writeText "hello.cpp" ''
|
||||||
|
#include <sycl/sycl.hpp>
|
||||||
|
|
||||||
|
class hello_world;
|
||||||
|
|
||||||
|
int main(int argc, char** argv) try {
|
||||||
|
auto device_selector = sycl::default_selector_v;
|
||||||
|
|
||||||
|
sycl::queue queue(device_selector);
|
||||||
|
|
||||||
|
std::cout << "Running on: "
|
||||||
|
<< queue.get_device().get_info<sycl::info::device::name>()
|
||||||
|
<< std::endl;
|
||||||
|
|
||||||
|
queue.submit([&] (sycl::handler& cgh) {
|
||||||
|
auto os = sycl::stream{128, 128, cgh};
|
||||||
|
cgh.single_task<hello_world>([=]() {
|
||||||
|
os << "Hello World! (on device)\n";
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
} catch (sycl::exception &e) {
|
||||||
|
std::cout << "SYCL exception: " << e.what() << std::endl;
|
||||||
|
return 0; // we excpect to fail since no devices should be available;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
version = "0.0.1";
|
||||||
|
name = "hello-sycl";
|
||||||
|
buildInputs = [ stdenv strace ];
|
||||||
|
src = hello_sycl;
|
||||||
|
dontUnpack = true;
|
||||||
|
dontConfigure = true;
|
||||||
|
NIX_DEBUG = 0;
|
||||||
|
buildPhase = ''
|
||||||
|
cp $src hello.cpp
|
||||||
|
set -x
|
||||||
|
echo CXX=$CXX
|
||||||
|
command -v $CXX
|
||||||
|
$CXX -fsycl hello.cpp -o hello
|
||||||
|
./hello
|
||||||
|
set +x
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
touch $out
|
||||||
|
'';
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user