bscpkgs/test/compilers/ompss2.nix

53 lines
1.0 KiB
Nix

{ stdenv, writeText, which, strace, gdb }:
let
task_c = writeText "task.c" ''
#include <stdio.h>
int main()
{
for (int i = 0; i < 10; i++) {
#pragma oss task
printf("Hello world!\n");
}
return 0;
}
'';
in
stdenv.mkDerivation rec {
version = "0.0.1";
name = "task_c";
src = task_c;
dontUnpack = true;
dontConfigure = true;
hardeningDisable = [ "all" ];
#NIX_DEBUG = 1;
buildInputs = [ strace gdb ];
# 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;
buildPhase = ''
set -x
#$CC -v
cp ${task_c} task.c
echo CC=$CC
echo NANOS6_HOME=$NANOS6_HOME
echo NODES_HOME=$NODES_HOME
cat task.c
$CC -fompss-2 task.c -o task
#strace -ff -e trace=open,openat -s9999999 ./task
LD_DEBUG=libs ./task
#gdb -batch -ex "run" -ex "bt" ./task
set +x
'';
installPhase = ''
touch $out
'';
}