anchor.diff:    # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
     NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.hostPlatform.isDarwin) "-static-libgcc";
   
  +  # We don't strip on static cross-compilation because of reports that native
  +  # stripping corrupted the target library; see commit 12e960f5 for the report.
     dontStrip = stdenv.hostPlatform != stdenv.buildPlatform && static;
     configurePlatforms = [];
   
  
positive.code: { stdenv
  , fetchurl
  # Regarding static/shared libaries, the current behaviour is:
  #
  # - static=true,  shared=true:  builds both and moves .a to the .static output;
  #                               in this case `pkg-config` auto detection will
  #                               not work if the .static output is given as
  #                               buildInputs to another package (#66461)
  # - static=true,  shared=false: builds .a only and leaves it in the main output
  # - static=false, shared=true:  builds shared only
  #
  # To get both `.a` and shared libraries in one output,
  # you currently have to use
  #   static=false, shared=true
  # and use
  #   .overrideAttrs (old: { dontDisableStatic = true; })
  # This is because by default, upstream zlib ./configure builds both.
  , static ? true
  , shared ? true
  }:
  
  stdenv.mkDerivation (rec {
    name = "zlib-${version}";
  
negative.code:   '';
  
    outputs = [ "out" "dev" ]
      ++ stdenv.lib.optional splitStaticOutput "static";
    setOutputFlags = false;
    outputDoc = "dev"; # single tiny man3 page
  
    # For zlib's ./configure (as of verion 1.2.11), the order
    # of --static/--shared flags matters!
    # `--shared --static` builds only static libs, while
    # `--static --shared` builds both.
    # So we use the latter order to be able to build both.
    # Also, giving just `--shared` builds both,
    # giving just `--static` builds only static,
    # and giving nothing builds both.
    # So we have 3 possible ways to build both:
    # `--static --shared`, `--shared` and giving nothing.
    # Of these, we choose `--shared`, only because that's
    # what we did in the past and we can avoid mass rebuilds this way.
    # As a result, we pass `--static` only when we want just static.
    configureFlags = stdenv.lib.optional (static && !shared) "--static"
                     ++ stdenv.lib.optional shared "--shared";
  
    # Note we don't need to set `dontDisableStatic`, because static-disabling
    # works by grepping for `enable-static` in the `./configure` script
    # (see `pkgs/stdenv/generic/setup.sh`), and zlib's handwritten one does
    # not have such.
    # It wouldn't hurt setting `dontDisableStatic = static && !splitStaticOutput`
    # here (in case zlib ever switches to autoconf in the future),
    # but we don't do it simply to avoid mass rebuilds.
  
    postInstall = stdenv.lib.optionalString splitStaticOutput ''
      moveToOutput lib/libz.a "$static"
    ''
      # jww (2015-01-06): Sometimes this library install as a .so, even on
  