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

circt: fix build failure on darwin (#354138)

parents d972163f 4536df56
Loading
Loading
Loading
Loading
+33 −13
Original line number Diff line number Diff line
@@ -48,6 +48,10 @@ stdenv.mkDerivation rec {
    "-DCIRCT_LLHD_SIM_ENABLED=OFF"
  ];

  # cannot use lib.optionalString as it creates an empty string, disabling all tests
  LIT_FILTER_OUT =
    let
      lit-filters =
        # There are some tests depending on `clang-tools` to work. They are activated only when detected
        # `clang-tidy` in PATH, However, we cannot simply put `clang-tools` in checkInputs to make these
        # tests work. Because
@@ -59,14 +63,30 @@ stdenv.mkDerivation rec {
        #    https://github.com/NixOS/nixpkgs/issues/214945 discusses this issue.
        #
        # As a temporary fix, we disabled these tests when using clang stdenv
  # cannot use lib.optionalString as it creates an empty string, disabling all tests
  LIT_FILTER_OUT = if stdenv.cc.isClang then "CIRCT :: Target/ExportSystemC/.*\.mlir" else null;
        lib.optionals stdenv.cc.isClang [ "CIRCT :: Target/ExportSystemC/.*\.mlir" ]
        # Disable some tests on x86_64-darwin
        ++ lib.optionals (stdenv.hostPlatform.system == "x86_64-darwin") [
          # These test seem to pass on hydra (rosetta) but not on x86_64-darwin machines
          "CIRCT :: Target/ExportSMTLIB/attributes.mlir"
          "CIRCT :: Target/ExportSMTLIB/basic.mlir"
          "CIRCT :: circt-bmc/comb-errors.mlir"
          "CIRCT :: circt-bmc/seq-errors.mlir"
          # This test was having issues with rosetta
          "CIRCT :: Dialect/SMT/basic.mlir"
        ];
    in
    if lit-filters != [ ] then lib.strings.concatStringsSep "|" lit-filters else null;

  preConfigure = ''
    find ./test -name '*.mlir' -exec sed -i 's|/usr/bin/env|${coreutils}/bin/env|g' {} \;
    # circt uses git to check its version, but when cloned on nix it can't access git.
    # So this hard codes the version.
    substituteInPlace cmake/modules/GenVersionFile.cmake --replace "unknown git version" "${src.rev}"
    substituteInPlace cmake/modules/GenVersionFile.cmake \
      --replace-fail "unknown git version" "${src.rev}"
    # Increase timeout on tests because some were failing on hydra.
    # Using `replace-warn` so it doesn't break when upstream changes the timeout.
    substituteInPlace integration_test/CMakeLists.txt \
      --replace-warn 'set(CIRCT_INTEGRATION_TIMEOUT 60)' 'set(CIRCT_INTEGRATION_TIMEOUT 300)'
  '';

  doCheck = true;