anchor.diff:    };
   
     gccCrossStageFinal = wrapGCCCross {
  -    gcc = forceNativeDrv (gcc_realCross.override {
  -      libpthreadCross =
  -        # FIXME: Don't explicitly refer to `i586-pc-gnu'.
  -        if crossSystem != null && crossSystem.config == "i586-pc-gnu"
  -        then gnu.libpthreadCross
  -        else null;
  +    gcc = forceNativeDrv (gcc.cc.override {
  +      cross = crossSystem;
  +      crossStageStatic = false;
   
         # XXX: We have troubles cross-compiling libstdc++ on MinGW (see
         # <http://hydra.nixos.org/build/4268232>), so don't even try.
  -      langCC = (crossSystem == null
  -                || crossSystem.config != "i686-pc-mingw32");
  -     });
  +      langCC = crossSystem.config != "i686-pc-mingw32";
  +    });
       libc = libcCross;
       binutils = binutilsCross;
  -    cross = assert crossSystem != null; crossSystem;
  +    cross = crossSystem;
     };
   
     gcc44 = lowPrio (wrapCC (makeOverridable (import ../development/compilers/gcc/4.4) {
  
positive.code:     withGd = true;
    };
  
    glibcCross = forceNativeDrv (makeOverridable (import ../development/libraries/glibc)
      (let crossGNU = crossSystem != null && crossSystem.config == "i586-pc-gnu";
       in {
         inherit stdenv fetchurl;
         gccCross = gccCrossStageStatic;
         kernelHeaders = if crossGNU then gnu.hurdHeaders else linuxHeadersCross;
         installLocales = config.glibc.locales or false;
       }
       // lib.optionalAttrs crossGNU {
          inherit (gnu) machHeaders hurdHeaders libpthreadHeaders mig;
          inherit fetchgit;
        }));
  
  
    # We can choose:
    libcCrossChooser = name : if name == "glibc" then glibcCross
      else if name == "uclibc" then uclibcCross
      else if name == "msvcrt" then windows.mingw_w64
      else if name == "libSystem" then darwin.xcode
      else throw "Unknown libc";
  
    libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
  
    # Only supported on Linux
    glibcLocales = if stdenv.isLinux then callPackage ../development/libraries/glibc/locales.nix { } else null;
  
negative.code: 
    gccApple = throw "gccApple is no longer supported";
  
    gccCrossStageStatic = let
      libcCross1 =
        if stdenv.cross.libc == "msvcrt" then windows.mingw_w64_headers
        else if stdenv.cross.libc == "libSystem" then darwin.xcode
        else null;
      in wrapGCCCross {
        gcc = forceNativeDrv (gcc.cc.override {
          cross = crossSystem;
          crossStageStatic = true;
          langCC = false;
          libcCross = libcCross1;
          enableShared = false;
        });
        libc = libcCross1;
        binutils = binutilsCross;
        cross = crossSystem;
    };
  
    # Only needed for mingw builds
  