From d3d0c0196ebffe23eaab27086ef1a426990ef3cc Mon Sep 17 00:00:00 2001 From: Matthew Glazar Date: Sun, 15 Apr 2018 21:06:16 -0700 Subject: [PATCH 1/2] clang: refactor post-install comments Throughout the evolution of the Clang packages, some comments have become misplaced. Put some of Clang's postInstall comments next to the lines they refer to. --- pkgs/development/compilers/llvm/5/clang/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/llvm/5/clang/default.nix b/pkgs/development/compilers/llvm/5/clang/default.nix index b5aea54b5771..8a25db3ef41a 100644 --- a/pkgs/development/compilers/llvm/5/clang/default.nix +++ b/pkgs/development/compilers/llvm/5/clang/default.nix @@ -50,10 +50,10 @@ let outputs = [ "out" "lib" "python" ]; - # Clang expects to find LLVMgold in its own prefix - # Clang expects to find sanitizer libraries in its own prefix postInstall = '' + # Clang expects to find LLVMgold in its own prefix ln -sv ${llvm}/lib/LLVMgold.so $out/lib + # Clang expects to find sanitizer libraries in its own prefix ln -sv ${llvm}/lib/clang/${release_version}/lib $out/lib/clang/${release_version}/ ln -sv $out/bin/clang $out/bin/cpp From 2505aa51a449e5237808b2b6dc6a90105da90caa Mon Sep 17 00:00:00 2001 From: Matthew Glazar Date: Sun, 15 Apr 2018 21:08:24 -0700 Subject: [PATCH 2/2] clang: fix install on Darwin As of Nix 2.0, building the `user-environment` package on macOS (Darwin) fails because LLVMgold.so is a broken symlink. Fix the issue by not creating the symlink in the first place, since it wouldn't be used on Darwin anyway. --- pkgs/development/compilers/llvm/5/clang/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/llvm/5/clang/default.nix b/pkgs/development/compilers/llvm/5/clang/default.nix index 8a25db3ef41a..36f09a42308a 100644 --- a/pkgs/development/compilers/llvm/5/clang/default.nix +++ b/pkgs/development/compilers/llvm/5/clang/default.nix @@ -52,7 +52,9 @@ let postInstall = '' # Clang expects to find LLVMgold in its own prefix - ln -sv ${llvm}/lib/LLVMgold.so $out/lib + if [ -e ${llvm}/lib/LLVMgold.so ]; then + ln -sv ${llvm}/lib/LLVMgold.so $out/lib + fi # Clang expects to find sanitizer libraries in its own prefix ln -sv ${llvm}/lib/clang/${release_version}/lib $out/lib/clang/${release_version}/ ln -sv $out/bin/clang $out/bin/cpp