anchor.diff:    # 2nd stdenv that contains our own rebuilt binutils and is used for
     # compiling our own Glibc.
     stage2 = stageFun {
  -    gcc = wrapGCC {
  -      gcc = bootstrapTools;
  -      libc = stage1.pkgs.glibc;
  -      binutils = stage1.pkgs.binutils;
  -      coreutils = bootstrapTools;
  -      name = "bootstrap-gcc-wrapper";
  -    };
  +    gccPlain = bootstrapTools;
  +    inherit (stage1.pkgs) glibc;
  +    binutils = stage1.pkgs.binutils;
  +    coreutils = bootstrapTools;
  +    name = "bootstrap-gcc-wrapper";
  +
       overrides = pkgs: {
         inherit (stage1.pkgs) perl binutils paxctl;
         # This also contains the full, dynamically linked, final Glibc.
  
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:   # one uses the rebuilt Glibc from stage2.  It still uses the recent
    # binutils and rest of the bootstrap tools, including GCC.
    stage3 = stageFun {
      gccPlain = bootstrapTools;
      inherit (stage2.pkgs) glibc binutils;
      coreutils = bootstrapTools;
      name = "bootstrap-gcc-wrapper";
  
      overrides = pkgs: {
        inherit (stage2.pkgs) binutils glibc perl patchelf linuxHeaders;
        # Link GCC statically against GMP etc.  This makes sense because
  