Commit 728eb4ad authored by qbisi's avatar qbisi Committed by Masum Reza
Browse files

pocl: support Darwin platform

parent 9e853cca
Loading
Loading
Loading
Loading
+36 −23
Original line number Diff line number Diff line
@@ -23,7 +23,11 @@ let
  clang = llvmPackages.clangUseLLVM;
  # Workaround to make sure libclang finds libgcc.a and libgcc_s.so when
  # invoked from within libpocl
  clangWrapped = runCommand "clang-pocl" { nativeBuildInputs = [ makeWrapper ]; } ''
  clangWrapped =
    if stdenv.hostPlatform.isDarwin then
      clang
    else
      runCommand "clang-pocl" { nativeBuildInputs = [ makeWrapper ]; } ''
        mkdir -p $out/bin
        cp -r ${clang}/bin/* $out/bin/
        LIBGCC_DIR=$(dirname $(find ${stdenv.cc.cc}/lib/ -name libgcc.a))
@@ -47,6 +51,12 @@ stdenv.mkDerivation (finalAttrs: {
    hash = "sha256-d/BD8YkdMYtu6yFlGNXrsz7PVIrzBvvYLU1JRv7ZJmc=";
  };

  postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
    substituteInPlace pocld/shared_cl_context.cc --replace-fail \
      "Dev.getInfo<CL_DEVICE_GLOBAL_MEM_SIZE>()" \
      "static_cast<size_t>(Dev.getInfo<CL_DEVICE_GLOBAL_MEM_SIZE>())"
  '';

  cmakeFlags = [
    "-DKERNELLIB_HOST_CPU_VARIANTS=distro"
    # avoid the runtime linker pulling in a different llvm e.g. from graphics drivers
@@ -67,16 +77,19 @@ stdenv.mkDerivation (finalAttrs: {
    python3
  ];

  buildInputs = [
  buildInputs =
    [
      hwloc
      libxml2
      llvmPackages.llvm
      llvmPackages.libclang
    lttng-ust
      opencl-headers
      ocl-icd
      spirv-tools
      spirv-llvm-translator
    ]
    ++ lib.optionals stdenv.hostPlatform.isLinux [
      lttng-ust
    ];

  passthru.updateScript = nix-update-script { };