From 3a9c217804688668404ebfe9a199e6e85297a3a7 Mon Sep 17 00:00:00 2001 From: Dan Peebles Date: Tue, 4 Apr 2017 08:07:52 -0400 Subject: [PATCH] rtags: fix for clang/libc++ 4 This also fixes a missing header in the SDK that rtags needs to work properly. The underlying cause is that C++ headers got shuffled around a lot in libc++ 3.8 (I believe) and became more standards-compliant, which led to a lot of C-compatible passthrough header files being added to it like math.h, which defines some C++-compatible versions of standard functions like signbit, while #include_next'ing the system math.h. In this case, including the SDK was stuffing another math.h in front of the libc++ shim, which led to all sorts of mysterious failures. --- pkgs/development/tools/rtags/default.nix | 12 ++++-------- pkgs/os-specific/darwin/apple-sdk/default.nix | 1 + 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/pkgs/development/tools/rtags/default.nix b/pkgs/development/tools/rtags/default.nix index 44f922906e89..4f396e26bf94 100644 --- a/pkgs/development/tools/rtags/default.nix +++ b/pkgs/development/tools/rtags/default.nix @@ -5,15 +5,11 @@ stdenv.mkDerivation rec { version = "2.8-p1"; buildInputs = [ cmake llvmPackages.llvm openssl llvmPackages.clang emacs ] - ++ lib.optionals stdenv.isDarwin [ apple_sdk.sdk apple_sdk.frameworks.CoreServices ]; + ++ lib.optionals stdenv.isDarwin [ apple_sdk.libs.xpc apple_sdk.frameworks.CoreServices ]; preConfigure = '' export LIBCLANG_CXXFLAGS="-isystem ${llvmPackages.clang.cc}/include $(llvm-config --cxxflags) -fexceptions" \ - LIBCLANG_LIBDIR="${llvmPackages.clang.cc}/lib" \ - - '' + lib.optionalString stdenv.isDarwin '' - export CXXFLAGS="-isysroot ${apple_sdk.sdk}/" \ - MACOSX_DEPLOYMENT_TARGET="10.9" + LIBCLANG_LIBDIR="${llvmPackages.clang.cc}/lib" ''; src = fetchgit { @@ -24,11 +20,11 @@ stdenv.mkDerivation rec { sha256 = "0g9sgc763c5d695hjffhis19sbaqk8z4884szljf7kbrjxl17y78"; }; + enableParallelBuilding = true; + meta = { description = "C/C++ client-server indexer based on clang"; - homepage = https://github.com/andersbakken/rtags; - license = stdenv.lib.licenses.gpl3; platforms = stdenv.lib.platforms.allBut [ "i686-linux" ]; }; diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix index 536e62f777e2..73126ce1f5c1 100644 --- a/pkgs/os-specific/darwin/apple-sdk/default.nix +++ b/pkgs/os-specific/darwin/apple-sdk/default.nix @@ -157,6 +157,7 @@ in rec { mkdir -p $out/include pushd $out/include >/dev/null ln -s "${sdk}/include/xpc" + ln -s "${sdk}/include/launch.h" popd >/dev/null ''; };