From 7a35c1a09d7ce09cc0a893c29757778fccc116f3 Mon Sep 17 00:00:00 2001 From: Shogo Takata Date: Sat, 2 Nov 2024 16:33:47 +0900 Subject: [PATCH 1/3] circt: move to pkgs/by-name --- pkgs/{development/compilers => by-name/ci}/circt/circt-llvm.nix | 0 .../circt/default.nix => by-name/ci/circt/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{development/compilers => by-name/ci}/circt/circt-llvm.nix (100%) rename pkgs/{development/compilers/circt/default.nix => by-name/ci/circt/package.nix} (100%) diff --git a/pkgs/development/compilers/circt/circt-llvm.nix b/pkgs/by-name/ci/circt/circt-llvm.nix similarity index 100% rename from pkgs/development/compilers/circt/circt-llvm.nix rename to pkgs/by-name/ci/circt/circt-llvm.nix diff --git a/pkgs/development/compilers/circt/default.nix b/pkgs/by-name/ci/circt/package.nix similarity index 100% rename from pkgs/development/compilers/circt/default.nix rename to pkgs/by-name/ci/circt/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2ae20f332ec2..5d5e239999ff 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -448,8 +448,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; }; From 28bd698b948953029100cd7bf33df44fb71dbe7b Mon Sep 17 00:00:00 2001 From: Shogo Takata Date: Sat, 12 Oct 2024 01:44:47 +0900 Subject: [PATCH 2/3] circt: format files --- pkgs/by-name/ci/circt/circt-llvm.nix | 30 ++++++++++++------- pkgs/by-name/ci/circt/package.nix | 45 ++++++++++++++++++---------- 2 files changed, 50 insertions(+), 25 deletions(-) diff --git a/pkgs/by-name/ci/circt/circt-llvm.nix b/pkgs/by-name/ci/circt/circt-llvm.nix index 8375ccc22f8f..f5f7a685e2f4 100644 --- a/pkgs/by-name/ci/circt/circt-llvm.nix +++ b/pkgs/by-name/ci/circt/circt-llvm.nix @@ -1,17 +1,23 @@ -{ 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. diff --git a/pkgs/by-name/ci/circt/package.nix b/pkgs/by-name/ci/circt/package.nix index c3f16b447e2f..7a3f6f989962 100644 --- a/pkgs/by-name/ci/circt/package.nix +++ b/pkgs/by-name/ci/circt/package.nix @@ -1,15 +1,16 @@ -{ 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,11 @@ stdenv.mkDerivation rec { doCheck = true; checkTarget = "check-circt check-circt-integration"; - outputs = [ "out" "lib" "dev" ]; + outputs = [ + "out" + "lib" + "dev" + ]; # Copy circt-llvm's postFixup stage so that it can make all our dylib references # absolute as well. @@ -89,7 +100,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; }; } From d24b911161eee648457643546beaa1e1cbf74e0a Mon Sep 17 00:00:00 2001 From: Shogo Takata Date: Sat, 12 Oct 2024 02:20:25 +0900 Subject: [PATCH 3/3] circt: fix build failure on darwin platforms --- pkgs/by-name/ci/circt/circt-llvm.nix | 2 +- pkgs/by-name/ci/circt/package.nix | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ci/circt/circt-llvm.nix b/pkgs/by-name/ci/circt/circt-llvm.nix index f5f7a685e2f4..6c9ec00564dd 100644 --- a/pkgs/by-name/ci/circt/circt-llvm.nix +++ b/pkgs/by-name/ci/circt/circt-llvm.nix @@ -80,7 +80,7 @@ stdenv.mkDerivation { # # 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 diff --git a/pkgs/by-name/ci/circt/package.nix b/pkgs/by-name/ci/circt/package.nix index 7a3f6f989962..180fc1d2fbe4 100644 --- a/pkgs/by-name/ci/circt/package.nix +++ b/pkgs/by-name/ci/circt/package.nix @@ -72,6 +72,12 @@ stdenv.mkDerivation rec { doCheck = true; checkTarget = "check-circt check-circt-integration"; + 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"