From 627aae5884fd9bc2b380eab818f58212aa8753f1 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Mon, 18 Jun 2018 14:47:29 -0400
Subject: [PATCH] darwin stdenv: Put back "man" attribute on clang and llvm

We take care to make it use the final stdenv to avoid mass rebuilds and
bootstrap python.
---
 pkgs/stdenv/darwin/default.nix | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index 7ef74c5ea7df..71de45bb1d72 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -323,8 +323,16 @@ in rec {
         coreutils findutils diffutils patchutils;
 
       llvmPackages_5 = super.llvmPackages_5 // (let
-        tools = super.llvmPackages_5.tools.extend (_: _: {
-          inherit (llvmPackages_5) llvm clang-unwrapped;
+        tools = super.llvmPackages_5.tools.extend (_: super: {
+          # Build man pages with final stdenv not before
+          llvm = lib.extendDerivation
+            true
+            { inherit (super.llvm) man; }
+            llvmPackages_5.llvm;
+          clang-unwrapped = lib.extendDerivation
+            true
+            { inherit (super.clang-unwrapped) man; }
+            llvmPackages_5.clang-unwrapped;
         });
         libraries = super.llvmPackages_5.libraries.extend (_: _: {
           inherit (llvmPackages_5) libcxx libcxxabi;
@@ -370,7 +378,8 @@ in rec {
         inherit (prevStage) stdenv;
       };
       inherit (pkgs) coreutils gnugrep;
-      cc       = pkgs.llvmPackages.clang-unwrapped;
+      # Hack to avoid man pages in stdenv to avoid mass rebuild
+      cc       = builtins.removeAttrs pkgs.llvmPackages.clang-unwrapped [ "man" ];
       bintools = pkgs.darwin.binutils;
       libc     = pkgs.darwin.Libsystem;
       extraPackages = [ pkgs.libcxx ];