{ stdenv, writeText, which, strace, gdb }: let task_c = writeText "task.c" '' #include 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 ''; }