diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix index 022c4e543127..c9ffed829b2d 100644 --- a/pkgs/development/compilers/crystal/default.nix +++ b/pkgs/development/compilers/crystal/default.nix @@ -148,6 +148,11 @@ let # See https://github.com/NixOS/nixpkgs/pull/195606#issuecomment-1356491277 substituteInPlace spec/compiler/loader/unix_spec.cr \ --replace 'it "parses file paths"' 'pending "parses file paths"' + '' + lib.optionalString (stdenv.cc.isClang && (stdenv.cc.libcxx != null)) '' + # Darwin links against libc++ not libstdc++. Newer versions of clang (12+) require + # libc++abi to be linked explicitly (see https://github.com/NixOS/nixpkgs/issues/166205). + substituteInPlace src/llvm/lib_llvm.cr \ + --replace '@[Link("stdc++")]' '@[Link("c++", "-l${stdenv.cc.libcxx.cxxabi.libName}")]' ''; # Defaults are 4