From 004344ad612d6526caacd5aeb22c261a3efe114a Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Sat, 21 Oct 2023 16:34:23 -0400 Subject: [PATCH] crystal: fix build with newer versions of clang Crystal requires linking libc++abi when building with newer versions of clang. See https://github.com/NixOS/nixpkgs/issues/166205. --- pkgs/development/compilers/crystal/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix index 022c4e543127c..c9ffed829b2d8 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