anchor.diff:        isl = pkgs.isl.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
         cloog = pkgs.cloog.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
         ppl = pkgs.ppl.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
  -    };
  -    extraAttrs = {
  -      glibc = stage2.pkgs.glibc;  # Required by gcc47 build
  +      gccPlain = pkgs.gcc.gcc;
       };
       extraBuildInputs = [ stage2.pkgs.patchelf stage2.pkgs.paxctl ];
     };
  
positive.code:   # simply re-export those packages in the middle stage(s) using the
    # overrides attribute and the inherit syntax.
    stage1 = stageFun {
      gcc = wrapGCC {
        gcc = bootstrapTools;
        libc = stage0.pkgs.glibc;
        binutils = bootstrapTools;
        coreutils = bootstrapTools;
        name = "bootstrap-gcc-wrapper";
      };
      # Rebuild binutils to use from stage2 onwards.
      overrides = pkgs: {
        binutils = pkgs.binutils.override { gold = false; };
        inherit (stage0.pkgs) glibc;
      };
    };
  
  
negative.code:   };
  
  
    # This function builds the various standard environments used during
    # the bootstrap.  In all stages, we build an stdenv and the package
    # set that can be built with that stdenv.
    stageFun =
      {gccPlain, glibc, binutils, coreutils, name, overrides ? (pkgs: {}), extraBuildInputs ? []}:
  
      let
  
  