Unverified Commit 11ef73b2 authored by Austin Horstman's avatar Austin Horstman Committed by GitHub
Browse files

deno: fix clang build failure (#368102)

parents f5731864 b6ff9094
Loading
Loading
Loading
Loading
+15 −10
Original line number Diff line number Diff line
@@ -7,11 +7,10 @@
  cmake,
  protobuf,
  installShellFiles,
  apple-sdk_11,
  darwinMinVersionHook,
  librusty_v8 ? callPackage ./librusty_v8.nix {
    inherit (callPackage ./fetchers.nix { }) fetchLibrustyV8;
  },
  libffi,
}:

let
@@ -33,7 +32,10 @@ rustPlatform.buildRustPackage rec {
  postPatch = ''
    # upstream uses lld on aarch64-darwin for faster builds
    # within nix lld looks for CoreFoundation rather than CoreFoundation.tbd and fails
    substituteInPlace .cargo/config.toml --replace "-fuse-ld=lld " ""
    substituteInPlace .cargo/config.toml --replace-fail "-fuse-ld=lld " ""

    # Use patched nixpkgs libffi in order to fix https://github.com/libffi/libffi/pull/857
    substituteInPlace ext/ffi/Cargo.toml --replace-fail "libffi = \"=3.2.0\"" "libffi = { version = \"3.2.0\", features = [\"system\"] }"
  '';

  # uses zlib-ng but can't dynamically link yet
@@ -46,12 +48,12 @@ rustPlatform.buildRustPackage rec {
    installShellFiles
  ];

  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
    apple-sdk_11
    # V8 supports 10.15+; binary references `aligned_alloc` directly
    (darwinMinVersionHook "10.15")
  configureFlags = lib.optionals stdenv.cc.isClang [
    # This never worked with clang, but became a hard error recently: https://github.com/llvm/llvm-project/commit/3d5b610c864c8f5980eaa16c22b71ff1cf462fae
    "--disable-multi-os-directory"
  ];

  buildInputs = [ libffi ];
  buildAndTestSubdir = "cli";

  # work around "error: unknown warning group '-Wunused-but-set-parameter'"
@@ -68,7 +70,7 @@ rustPlatform.buildRustPackage rec {
    find ./target -name libswc_common${stdenv.hostPlatform.extensions.sharedLibrary} -delete
  '';

  postInstall = lib.optionalString (canExecute) ''
  postInstall = lib.optionalString canExecute ''
    installShellCompletion --cmd deno \
      --bash <($out/bin/deno completions bash) \
      --fish <($out/bin/deno completions fish) \
@@ -76,7 +78,7 @@ rustPlatform.buildRustPackage rec {
  '';

  doInstallCheck = canExecute;
  installCheckPhase = lib.optionalString (canExecute) ''
  installCheckPhase = lib.optionalString canExecute ''
    runHook preInstallCheck
    $out/bin/deno --help
    $out/bin/deno --version | grep "deno ${version}"
@@ -101,7 +103,10 @@ rustPlatform.buildRustPackage rec {
    '';
    license = licenses.mit;
    mainProgram = "deno";
    maintainers = with maintainers; [ jk ];
    maintainers = with maintainers; [
      jk
      ofalvai
    ];
    platforms = [
      "x86_64-linux"
      "aarch64-linux"