Unverified Commit bab904fa authored by Weijia Wang's avatar Weijia Wang Committed by GitHub
Browse files

circt: fix build failure on darwin platform and refactor (#348019)

parents 3f1ae27c d24b9111
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
{ lib
, stdenv
, cmake
, ninja
, circt
, llvm
, python3
}: stdenv.mkDerivation {
{
  lib,
  stdenv,
  cmake,
  ninja,
  circt,
  llvm,
  python3,
}:
stdenv.mkDerivation {
  pname = circt.pname + "-llvm";
  inherit (circt) version src;

  requiredSystemFeatures = [ "big-parallel" ];

  nativeBuildInputs = [ cmake ninja python3 ];
  nativeBuildInputs = [
    cmake
    ninja
    python3
  ];

  preConfigure = ''
    cd llvm/llvm
@@ -30,7 +36,11 @@
    "-DLLVM_INSTALL_UTILS=ON"
  ];

  outputs = [ "out" "lib" "dev" ];
  outputs = [
    "out"
    "lib"
    "dev"
  ];

  # Get rid of ${extra_libdir} (which ends up containing a path to circt-llvm.dev
  # in circt) so that we only have to remove the one fixed rpath.
@@ -70,7 +80,7 @@
  #
  # Inspired by fixDarwinDylibNames.
  postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
    local flags=(-delete_rpath @loader_path/../lib)
    local flags
    for file in "$lib"/lib/*.dylib; do
      flags+=(-change @rpath/"$(basename "$file")" "$file")
    done
+36 −15
Original line number Diff line number Diff line
{ stdenv
, lib
, cmake
, coreutils
, python3
, git
, fetchFromGitHub
, ninja
, lit
, z3
, gitUpdater
, callPackage
{
  stdenv,
  lib,
  cmake,
  coreutils,
  python3,
  git,
  fetchFromGitHub,
  ninja,
  lit,
  z3,
  gitUpdater,
  callPackage,
}:

let
@@ -29,7 +30,13 @@ stdenv.mkDerivation rec {

  requiredSystemFeatures = [ "big-parallel" ];

  nativeBuildInputs = [ cmake ninja git pythonEnv z3 ];
  nativeBuildInputs = [
    cmake
    ninja
    git
    pythonEnv
    z3
  ];
  buildInputs = [ circt-llvm ];

  cmakeFlags = [
@@ -65,7 +72,17 @@ stdenv.mkDerivation rec {
  doCheck = true;
  checkTarget = "check-circt check-circt-integration";

  outputs = [ "out" "lib" "dev" ];
  preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
    echo moving libarc-jit-env.dylib to '$lib' before check because archilator links to the output path
    mkdir -pv $lib/lib
    cp -v ./lib/libarc-jit-env.dylib $lib/lib
  '';

  outputs = [
    "out"
    "lib"
    "dev"
  ];

  # Copy circt-llvm's postFixup stage so that it can make all our dylib references
  # absolute as well.
@@ -89,7 +106,11 @@ stdenv.mkDerivation rec {
    description = "Circuit IR compilers and tools";
    homepage = "https://circt.org/";
    license = lib.licenses.asl20;
    maintainers = with lib.maintainers; [ sharzy pineapplehunter sequencer ];
    maintainers = with lib.maintainers; [
      sharzy
      pineapplehunter
      sequencer
    ];
    platforms = lib.platforms.all;
  };
}
+0 −2
Original line number Diff line number Diff line
@@ -446,8 +446,6 @@ with pkgs;
  ciel = callPackage ../tools/package-management/ciel { };
  circt = callPackage ../development/compilers/circt { };
  clang-uml = callPackage ../by-name/cl/clang-uml/package.nix {
    stdenv = clangStdenv;
  };