lol

Merge #19674: llvm_39: fix on darwin

There's not even a rebuild on Linux.

+17 -5
+1 -1
pkgs/development/compilers/llvm/3.9/default.nix
··· 1 - { newScope, stdenv, isl, fetchurl, overrideCC, wrapCC }: 1 + { newScope, stdenv, isl, fetchurl, overrideCC, wrapCC, darwin }: 2 2 let 3 3 callPackage = newScope (self // { inherit stdenv isl version fetch; }); 4 4
+16 -4
pkgs/development/compilers/llvm/3.9/llvm.nix
··· 15 15 , libcxxabi 16 16 , debugVersion ? false 17 17 , enableSharedLibraries ? true 18 + , darwin 18 19 }: 19 20 20 21 let 21 22 src = fetch "llvm" "0j49lkd5d7nnpdqzaybs2472bvcxyx0i4r3iccwf3kj2v9wk3iv6"; 23 + shlib = if stdenv.isDarwin then "dylib" else "so"; 24 + 25 + # Used when creating a version-suffixed symlink of libLLVM.dylib 26 + shortVersion = with stdenv.lib; 27 + concatStringsSep "." (take 2 (splitString "." version)); 22 28 in stdenv.mkDerivation rec { 23 29 name = "llvm-${version}"; 24 30 ··· 33 39 outputs = [ "out" ] ++ stdenv.lib.optional enableSharedLibraries "lib"; 34 40 35 41 buildInputs = [ perl groff cmake libxml2 python libffi ] 36 - ++ stdenv.lib.optional stdenv.isDarwin libcxxabi; 42 + ++ stdenv.lib.optionals stdenv.isDarwin 43 + [ libcxxabi darwin.cctools darwin.apple_sdk.libs.xpc ]; 37 44 38 45 propagatedBuildInputs = [ ncurses zlib ]; 39 46 ··· 70 77 ++ stdenv.lib.optionals (isDarwin) [ 71 78 "-DLLVM_ENABLE_LIBCXX=ON" 72 79 "-DCAN_TARGET_i386=false" 80 + "-DCMAKE_LIBTOOL=${darwin.cctools}/bin/libtool" 73 81 ]; 74 82 75 83 postBuild = '' ··· 81 89 postInstall = "" 82 90 + stdenv.lib.optionalString (enableSharedLibraries) '' 83 91 moveToOutput "lib/libLLVM-*" "$lib" 84 - moveToOutput "lib/libLLVM.so" "$lib" 92 + moveToOutput "lib/libLLVM.${shlib}" "$lib" 85 93 substituteInPlace "$out/lib/cmake/llvm/LLVMExports-release.cmake" \ 86 94 --replace "\''${_IMPORT_PREFIX}/lib/libLLVM-" "$lib/lib/libLLVM-" 87 95 '' 88 96 + stdenv.lib.optionalString (stdenv.isDarwin && enableSharedLibraries) '' 89 - install_name_tool -id $out/lib/libLLVM.dylib $out/lib/libLLVM.dylib 90 - ln -s $out/lib/libLLVM.dylib $out/lib/libLLVM-${version}.dylib 97 + substituteInPlace "$out/lib/cmake/llvm/LLVMExports-release.cmake" \ 98 + --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib" 99 + install_name_tool -id $lib/lib/libLLVM.dylib $lib/lib/libLLVM.dylib 100 + install_name_tool -change @rpath/libLLVM.dylib $lib/lib/libLLVM.dylib $out/bin/llvm-config 101 + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib 102 + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${version}.dylib 91 103 ''; 92 104 93 105 enableParallelBuilding = true;