forked from rarias/jungle
Compare commits
6 Commits
mega-merge
...
enableStri
| Author | SHA1 | Date | |
|---|---|---|---|
|
a0f2e2639b
|
|||
|
bda1f10dd7
|
|||
|
734b3f0450
|
|||
|
109ec07800
|
|||
|
881a08dd37
|
|||
|
fad79643fa
|
@@ -49,6 +49,7 @@ let
|
||||
osumb = callPackage ./pkgs/osu/default.nix { };
|
||||
ovni = callPackage ./pkgs/ovni/default.nix { };
|
||||
ovniGit = final.ovni.override { useGit = true; };
|
||||
papi = callPackage ./pkgs/papi/default.nix { papi = prev.papi; };
|
||||
paraverKernel = callPackage ./pkgs/paraver/kernel.nix { };
|
||||
prometheus-slurm-exporter = prev.callPackage ./pkgs/slurm-exporter/default.nix { };
|
||||
#pscom = callPackage ./pkgs/parastation/pscom.nix { }; # Unmaintaned
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#, python3Packages
|
||||
, installShellFiles
|
||||
, symlinkJoin
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
, enablePapi ? true
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
@@ -39,7 +39,9 @@ stdenv.mkDerivation rec {
|
||||
perl
|
||||
pkg-config
|
||||
python3
|
||||
] ++ lib.optionals enableNosv [
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals enableNosv [
|
||||
nosv
|
||||
] ++ lib.optionals enableOvni [
|
||||
ovni
|
||||
@@ -72,6 +74,28 @@ stdenv.mkDerivation rec {
|
||||
rm -f $out/libllvmrt/libomp.*
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
# There are not cmake flags to force nOS-V, it enables it when found through
|
||||
# pkg-config. If enableNosv is set, but we fail to find it at build time,
|
||||
# the build will succeed but won't use nOS-V (libompv won't be created).
|
||||
# This is a sanity check to ensure that after install we have the proper
|
||||
# files.
|
||||
installCheckPhase =
|
||||
if enableNosv then
|
||||
''
|
||||
test -f $out/lib/libompv.so
|
||||
test -f $out/libllvmrt/libompv.so
|
||||
test ! -f $out/lib/libomp.so
|
||||
test ! -f $out/libllvmrt/libomp.so
|
||||
''
|
||||
else
|
||||
''
|
||||
test -f $out/lib/libomp.so
|
||||
test -f $out/libllvmrt/libomp.so
|
||||
test ! -f $out/lib/libompv.so
|
||||
test ! -f $out/libllvmrt/libompv.so
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit nosv;
|
||||
};
|
||||
|
||||
67
pkgs/nanos6/check-papi-version-with-pkgconfig.patch
Normal file
67
pkgs/nanos6/check-papi-version-with-pkgconfig.patch
Normal file
@@ -0,0 +1,67 @@
|
||||
diff --git a/m4/papi.m4 b/m4/papi.m4
|
||||
--- a/m4/papi.m4
|
||||
+++ b/m4/papi.m4
|
||||
@@ -24,12 +24,13 @@ AC_DEFUN([AC_CHECK_PAPI],
|
||||
else
|
||||
PKG_CHECK_MODULES(
|
||||
[papi],
|
||||
- [papi],
|
||||
+ [papi >= 5.6.0],
|
||||
[
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([retrieved from pkg-config])
|
||||
papi_CPPFLAGS="${papi_CFLAGS}"
|
||||
ac_use_papi=yes
|
||||
+ ac_papi_version_correct=yes
|
||||
], [
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([not available])
|
||||
@@ -67,27 +68,29 @@ AC_DEFUN([AC_CHECK_PAPI],
|
||||
fi
|
||||
|
||||
if test x"${ac_use_papi}" = x"yes" ; then
|
||||
- if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
- papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
- else
|
||||
- papiBinary=papi_version
|
||||
- fi
|
||||
- papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
+ papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
+ else
|
||||
+ papiBinary=papi_version
|
||||
+ fi
|
||||
+ papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
|
||||
- AX_COMPARE_VERSION(
|
||||
- [[${papiVersion}]],
|
||||
- [[ge]],
|
||||
- [[5.6.0]],
|
||||
- [[ac_papi_version_correct=yes]],
|
||||
- [[ac_papi_version_correct=no]]
|
||||
- )
|
||||
+ AX_COMPARE_VERSION(
|
||||
+ [[${papiVersion}]],
|
||||
+ [[ge]],
|
||||
+ [[5.6.0]],
|
||||
+ [[ac_papi_version_correct=yes]],
|
||||
+ [[ac_papi_version_correct=no]]
|
||||
+ )
|
||||
|
||||
- if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
- AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
- ac_use_papi=no
|
||||
- else
|
||||
- AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
- AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
+ ac_use_papi=no
|
||||
+ else
|
||||
+ AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
+ AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
, jemallocNanos6 ? null
|
||||
, cachelineBytes ? 64
|
||||
, enableGlibcxxDebug ? false
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
, enablePapi ? true
|
||||
, useGit ? false
|
||||
, gitUrl ? "ssh://git@bscpm04.bsc.es/nanos6/nanos6"
|
||||
, gitBranch ? "master"
|
||||
@@ -96,17 +96,14 @@ in
|
||||
separateDebugInfo = true;
|
||||
|
||||
strictDeps = true;
|
||||
patches = [ ./check-papi-version-with-pkgconfig.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
pkg-config
|
||||
|
||||
# TODO: papi_version is needed for configure:
|
||||
# ./configure: line 27378: papi_version: command not found
|
||||
# This probably breaks cross-compilation
|
||||
] ++ lib.optionals enablePapi [ papi ];
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
|
||||
68
pkgs/nosv/check-papi-version-with-pkgconfig.patch
Normal file
68
pkgs/nosv/check-papi-version-with-pkgconfig.patch
Normal file
@@ -0,0 +1,68 @@
|
||||
diff --git a/m4/papi.m4 b/m4/papi.m4
|
||||
index de905848..fa3db9a1 100644
|
||||
--- a/m4/papi.m4
|
||||
+++ b/m4/papi.m4
|
||||
@@ -24,12 +24,13 @@ AC_DEFUN([AC_CHECK_PAPI],
|
||||
else
|
||||
PKG_CHECK_MODULES(
|
||||
[papi],
|
||||
- [papi],
|
||||
+ [papi >= 5.6.0],
|
||||
[
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([retrieved from pkg-config])
|
||||
papi_CFLAGS="${papi_CFLAGS}"
|
||||
ac_use_papi=yes
|
||||
+ ac_papi_version_correct=yes
|
||||
], [
|
||||
AC_MSG_CHECKING([the PAPI installation prefix])
|
||||
AC_MSG_RESULT([not available])
|
||||
@@ -67,27 +68,29 @@ AC_DEFUN([AC_CHECK_PAPI],
|
||||
fi
|
||||
|
||||
if test x"${ac_use_papi}" = x"yes" ; then
|
||||
- if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
- papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
- else
|
||||
- papiBinary=papi_version
|
||||
- fi
|
||||
- papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ if test x"${ac_cv_use_papi_prefix}" != x"" ; then
|
||||
+ papiBinary=${ac_cv_use_papi_prefix}/bin/papi_version
|
||||
+ else
|
||||
+ papiBinary=papi_version
|
||||
+ fi
|
||||
+ papiVersion=`$papiBinary | sed 's/[[^0-9.]]*\([[0-9.]]*\).*/\1/'`
|
||||
|
||||
- AX_COMPARE_VERSION(
|
||||
- [[${papiVersion}]],
|
||||
- [[ge]],
|
||||
- [[5.6.0]],
|
||||
- [[ac_papi_version_correct=yes]],
|
||||
- [[ac_papi_version_correct=no]]
|
||||
- )
|
||||
+ AX_COMPARE_VERSION(
|
||||
+ [[${papiVersion}]],
|
||||
+ [[ge]],
|
||||
+ [[5.6.0]],
|
||||
+ [[ac_papi_version_correct=yes]],
|
||||
+ [[ac_papi_version_correct=no]]
|
||||
+ )
|
||||
|
||||
- if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
- AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
- ac_use_papi=no
|
||||
- else
|
||||
- AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
- AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ if test x"${ac_papi_version_correct}" != x"yes" ; then
|
||||
+ AC_MSG_ERROR([PAPI version must be >= 5.6.0.])
|
||||
+ ac_use_papi=no
|
||||
+ else
|
||||
+ AC_MSG_CHECKING([if the PAPI version >= 5.6.0.])
|
||||
+ AC_MSG_RESULT([${ac_papi_version_correct}])
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
, numactl
|
||||
, hwloc
|
||||
, papi
|
||||
, enablePapi ? stdenv.hostPlatform == stdenv.buildPlatform # Disabled when cross-compiling
|
||||
, enablePapi ? true
|
||||
, cacheline ? 64 # bits
|
||||
, ovni ? null
|
||||
, useGit ? false
|
||||
@@ -40,13 +40,14 @@ let
|
||||
|
||||
source = if (useGit) then git else release;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation {
|
||||
pname = "nosv";
|
||||
inherit (source) src version;
|
||||
hardeningDisable = [ "all" ];
|
||||
dontStrip = true;
|
||||
separateDebugInfo = true;
|
||||
strictDeps = true;
|
||||
patches = [ ./check-papi-version-with-pkgconfig.patch ];
|
||||
configureFlags = [
|
||||
"--with-ovni=${ovni}"
|
||||
"CACHELINE_WIDTH=${toString cacheline}"
|
||||
|
||||
22
pkgs/papi/default.nix
Normal file
22
pkgs/papi/default.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
stdenv,
|
||||
papi,
|
||||
}:
|
||||
|
||||
if stdenv.hostPlatform == stdenv.buildPlatform then
|
||||
papi
|
||||
else
|
||||
papi.overrideAttrs (old: {
|
||||
configureFlags = (old.configureFlags or [ ]) ++ [
|
||||
"--enable-perf_event_uncore=no"
|
||||
"--with-sysdetect=no"
|
||||
"--with-ffsll"
|
||||
"--with-tls=__thread"
|
||||
"--with-virtualtimer=clock_thread_cputime_id"
|
||||
"--with-walltimer=clock_realtime"
|
||||
"--with-perf-events"
|
||||
"--with-CPU=${stdenv.hostPlatform.uname.processor}"
|
||||
"--with-arch=${stdenv.hostPlatform.uname.processor}"
|
||||
];
|
||||
patches = (old.patches or [ ]) ++ [ ./fix-ar-cross.patch ];
|
||||
})
|
||||
19
pkgs/papi/fix-ar-cross.patch
Normal file
19
pkgs/papi/fix-ar-cross.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
diff --git a/sde_lib/Makefile b/sde_lib/Makefile
|
||||
index 8518f92..90a9953 100644
|
||||
--- a/sde_lib/Makefile
|
||||
+++ b/sde_lib/Makefile
|
||||
@@ -1,4 +1,5 @@
|
||||
CC ?= gcc
|
||||
+AR ?= ar
|
||||
SDE_INC = -I. -I..
|
||||
SDE_LD = -ldl -pthread
|
||||
CFLAGS += -Wextra -Wall -O2
|
||||
@@ -18,7 +19,7 @@ dynamic: $(DOBJS)
|
||||
rm -f *_d.o
|
||||
|
||||
static: $(SOBJS)
|
||||
- ar rs libsde.a $(SOBJS)
|
||||
+ $(AR) rs libsde.a $(SOBJS)
|
||||
rm -f *_s.o
|
||||
|
||||
clean:
|
||||
@@ -23,9 +23,6 @@ in stdenv.mkDerivation {
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
# nOS-V requires access to /sys/devices to request NUMA information
|
||||
requiredSystemFeatures = [ "sys-devices" ];
|
||||
|
||||
buildInputs = [ openmp ];
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
Reference in New Issue
Block a user