diff --git a/overlay.nix b/overlay.nix index 400da74..4e866fd 100644 --- a/overlay.nix +++ b/overlay.nix @@ -79,6 +79,9 @@ in bscPkgs // { clangNosvOpenmp-nosv = callPackage ./test/compilers/clang-openmp-nosv.nix { stdenv = final.stdenvClangOmpss2Nodes; }; + clangNosvOpenmp-ld = callPackage ./test/compilers/clang-openmp-ld.nix { + stdenv = final.stdenvClangOmpss2Nodes; + }; }; pkgs = final.runCommand "ci-pkgs" { } diff --git a/test/compilers/clang-openmp-ld.nix b/test/compilers/clang-openmp-ld.nix new file mode 100644 index 0000000..593706a --- /dev/null +++ b/test/compilers/clang-openmp-ld.nix @@ -0,0 +1,46 @@ +{ + stdenv +, writeText +, openmp +}: + +let + hello_c = writeText "hello.c" '' + int main(int argc, char *argv[]) + { + #pragma omp parallel + { + } + + return 0; + } + ''; + +in stdenv.mkDerivation { + pname = "openmp-test-ld"; + version = "1.0.0"; + + dontUnpack = true; + dontConfigure = true; + + # nOS-V 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; + + buildInputs = [ openmp ]; + + buildPhase = '' + set -x + + cp ${hello_c} hello.c + clang -fopenmp=libompv ./hello.c -o hello + + set +x + ''; + + installPhase = '' + touch $out + ''; + +} +