ompss2: fix to the last release

This commit is contained in:
Rodrigo Arias 2020-11-19 18:50:30 +01:00
parent e65c801a20
commit daadcc93d0
6 changed files with 136 additions and 45 deletions

View File

@ -0,0 +1,79 @@
{
stdenv
, fetchgit
, cmake
, lld
, bash
, python3
, perl
, which
, libelf
, libffi
, pkg-config
, enableDebug ? true
}:
stdenv.mkDerivation rec {
version = "${src.shortRev}";
pname = "clang-ompss2";
enableParallelBuilding = true;
isClang = true;
#isGNU = true;
passthru = {
CC = "clang";
CXX = "clang++";
};
isClangWithOmpss = true;
buildInputs = [
which
bash
python3
perl
cmake
lld
libelf
libffi
pkg-config
];
hardeningDisable = [ "fortify" ];
cmakeBuildType = if enableDebug then "Debug" else "Release";
dontUseCmakeBuildDir = true;
enableAssertions = if enableDebug then "ON" else "OFF";
preConfigure = ''
mkdir -p build
cd build
cmakeDir="../llvm"
cmakeFlagsArray=(
"-DLLVM_ENABLE_LLD=ON"
"-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;openmp;compiler-rt"
"-DLLVM_ENABLE_ASSERTIONS=${enableAssertions}"
"-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON"
)
'';
# Remove support for GNU and Intel Openmp
postInstall = ''
rm $out/lib/libgomp*
rm $out/lib/libiomp*
'';
# About "-DCLANG_DEFAULT_NANOS6_HOME=${nanos6}", we could specify a default
# nanos6 installation, but this is would require a recompilation of clang each
# time nanos6 is changed. Better to use the environment variable NANOS6_HOME,
# and specify nanos6 at run time.
src = builtins.fetchGit {
url = "ssh://git@bscpm02.bsc.es/llvm-ompss/llvm-mono.git";
ref = "master";
};
}

View File

@ -1,6 +1,6 @@
{
stdenv
, fetchgit
, fetchFromGitHub
, cmake
, lld
, bash
@ -10,15 +10,22 @@
, libelf
, libffi
, pkg-config
, enableDebug ? true
, enableDebug ? false
}:
stdenv.mkDerivation rec {
version = "${src.shortRev}";
version = "2020.11";
pname = "clang-ompss2";
src = fetchFromGitHub {
owner = "bsc-pm";
repo = "llvm";
rev = "github-release-${version}";
sha256 = "00z3xlw36lbiz84a47k95gin9fzsni5jd1f71dpg5l2qjy961qma";
};
enableParallelBuilding = true;
isClang = true;
#isGNU = true;
passthru = {
CC = "clang";
@ -39,6 +46,9 @@ stdenv.mkDerivation rec {
pkg-config
];
# Error with -D_FORTIFY_SOURCE=2, see https://bugs.gentoo.org/636604:
# /build/source/compiler-rt/lib/tsan/dd/dd_interceptors.cpp:225:20:
# error: redefinition of 'realpath'
hardeningDisable = [ "fortify" ];
cmakeBuildType = if enableDebug then "Debug" else "Release";
@ -71,9 +81,4 @@ stdenv.mkDerivation rec {
# nanos6 installation, but this is would require a recompilation of clang each
# time nanos6 is changed. Better to use the environment variable NANOS6_HOME,
# and specify nanos6 at run time.
src = builtins.fetchGit {
url = "ssh://git@bscpm02.bsc.es/llvm-ompss/llvm-mono.git";
ref = "master";
};
}

View File

@ -1,4 +1,6 @@
{ stdenv
{
stdenv
, fetchFromGitHub
, autoreconfHook
, nanos6
, gperf
@ -13,17 +15,19 @@
stdenv.mkDerivation rec {
pname = "mcxx";
version = "${src.shortRev}";
version = "2.3-8e998824";
passthru = {
CC = "mcc";
CXX = "mcxx";
};
# Use patched Extrae version
src = builtins.fetchGit {
url = "https://github.com/bsc-pm/mcxx";
ref = "master";
# mcxx doesn't use tags, so we pick the same version of the ompss2 release
src = fetchFromGitHub {
owner = "bsc-pm";
repo = pname;
rev = "8e998824f0fde001340dbec369ef59e40e53761e";
sha256 = "0ix20l50m52kcw12a6dhrasgzjjc2y73j55c994sbhyd133n3pln";
};
enableParallelBuilding = true;

View File

@ -1,43 +1,53 @@
{
stdenv
, fetchurl
, fetchFromGitHub
, automake
, autoconf
, autoreconfHook
, libtool
, pkg-config
, numactl
, hwloc
, papi
#, gnumake
, extrae
, boost
, enableJemalloc ? false
, jemalloc ? null
, cachelineBytes ? 64
}:
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "nanos6";
version = "2.4";
version = "2.5";
src = fetchurl {
url = "https://pm.bsc.es/ftp/ompss-2/releases/ompss-2-2020.06.tar.gz";
sha256 = "0f9hy2avblv31wi4910x81wc47dwx8x9nd72y02lgrhl7fc9i2sf";
src = fetchFromGitHub {
owner = "bsc-pm";
repo = "nanos6";
rev = "version-${version}";
sha256 = "1wyr8liyz1l7rbf5flxihabasm887bq2jcp2csma7b9rhrfyhkm1";
};
enableParallelBuilding = false;
preConfigure = ''
cd ${pname}-${version}
sed -i 's|/bin/echo|echo|g' loader/scripts/common.sh loader/scripts/lint/common.sh
prePatch = ''
patchShebangs scripts/generate_config.sh
'';
configureFlags = [
"--with-symbol-resolution=indirect"
];
enableParallelBuilding = true;
#configureFlags = []
# ++ (if (extrae != null) then ["--with-extrae=${extrae}"] else [""]);
preConfigure = ''
export CACHELINE_WIDTH=${toString cachelineBytes}
'';
configureFlags = [] ++
optional enableJemalloc "--with-jemalloc=${jemalloc}";
# The "bindnow" flags are incompatible with ifunc resolution mechanism. We
# disable all by default, which includes bindnow.
hardeningDisable = [ "all" ];
buildInputs = [
autoreconfHook
autoconf
automake
libtool

View File

@ -13,6 +13,7 @@
, autoreconfHook
, enableJemalloc ? false
, jemalloc ? null
, cachelineBytes ? 64
}:
with stdenv.lib;
@ -21,12 +22,10 @@ stdenv.mkDerivation rec {
pname = "nanos6";
version = "${src.shortRev}";
branch = "master";
cacheline-width = "64";
src = builtins.fetchGit {
url = "ssh://git@bscpm02.bsc.es/nanos6/nanos6";
ref = branch;
rev = "bd306f903c7a4396f579402666082f5a7c34570b";
};
prePatch = ''
@ -36,7 +35,7 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
preConfigure = ''
export CACHELINE_WIDTH=${cacheline-width}
export CACHELINE_WIDTH=${toString cacheline-width}
export NANOS6_GIT_VERSION=${src.rev}
export NANOS6_GIT_BRANCH=${branch}
'';
@ -54,7 +53,6 @@ stdenv.mkDerivation rec {
automake
libtool
pkg-config
perl
boost
numactl
hwloc

View File

@ -111,19 +111,14 @@ let
tampiRelease = callPackage ./bsc/tampi/default.nix { };
tampiGit = callPackage ./bsc/tampi/git.nix { };
mcxxGit = callPackage ./bsc/mcxx/default.nix {
bison = self.bison_3_5;
};
mcxx = bsc.mcxxRelease;
mcxxRelease = callPackage ./bsc/mcxx/default.nix { };
mcxxRarias = callPackage ./bsc/mcxx/rarias.nix {
bison = self.bison_3_5;
};
mcxx = bsc.mcxxGit;
# Use nanos6 git by default
nanos6 = bsc.nanos6Git;
nanos6Latest = callPackage ./bsc/nanos6/default.nix { };
nanos6 = bsc.nanos6Release;
nanos6Release = callPackage ./bsc/nanos6/default.nix { };
nanos6Git = callPackage ./bsc/nanos6/git.nix { };
jemalloc = self.jemalloc.overrideAttrs (old:
@ -135,7 +130,7 @@ let
];
});
nanos6Jemalloc = callPackage ./bsc/nanos6/git.nix {
nanos6Jemalloc = nanos6.override {
enableJemalloc = true;
};
@ -189,7 +184,7 @@ let
# TODO: move into garlic/default.nix
# Configuration for the machines
machines = callPackage ./garlic/machines.nix {};
machines = callPackage ./garlic/machines.nix { };
report = callPackage ./garlic/report.nix {
fig = bsc.garlic.fig;