anchor.diff:      profiledCompiler = true;
     }));
   
  -  gcc43_realCross = cross : makeOverridable (import ../development/compilers/gcc-4.3) {
  -    inherit stdenv fetchurl texinfo gmp mpfr noSysDirs cross;
  -    binutilsCross = binutilsCross cross;
  -    libcCross = libcCross cross;
  +  gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) {
  +    inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
  +    binutilsCross = binutilsCross;
  +    libcCross = libcCross;
       profiledCompiler = false;
       enableMultilib = true;
       crossStageStatic = false;
  -  };
  -
  -  gcc44_realCross = cross : makeOverridable (import ../development/compilers/gcc-4.4) {
  -    inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs cross
  +    cross = crossSystem;
  +  };
  +
  +  gcc44_realCross = makeOverridable (import ../development/compilers/gcc-4.4) {
  +    inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs
           gettext which;
  -    binutilsCross = binutilsCross cross;
  -    libcCross = libcCross cross;
  +    binutilsCross = binutilsCross;
  +    libcCross = libcCross;
       profiledCompiler = false;
       enableMultilib = false;
       # cross-building for ultrasparc in 4.4.3 will require disabling shared due to a gcc bug.
       # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41818
       enableShared = if (crossSystem.arch == "sparc64") then false else true;
       crossStageStatic = false;
  -  };
  -
  -  gccCrossStageStatic = cross: wrapGCCCross {
  -    gcc = forceBuildDrv ((gcc44_realCross cross).override {
  +    cross = crossSystem;
  +  };
  +
  +  gccCrossStageStatic = wrapGCCCross {
  +    gcc = forceBuildDrv (gcc44_realCross.override {
           crossStageStatic = true;
           langCC = false;
           libcCross = null;
           enableShared = true;
       });
       libc = null;
  -    binutils = binutilsCross cross;
  -    inherit cross;
  -  };
  -
  -  gccCrossStageFinal = cross: wrapGCCCross {
  -    gcc = forceBuildDrv (gcc44_realCross cross);
  -    libc = libcCross cross;
  -    binutils = binutilsCross cross;
  -    inherit cross;
  +    binutils = binutilsCross;
  +    cross = crossSystem;
  +  };
  +
  +  gccCrossStageFinal = wrapGCCCross {
  +    gcc = forceBuildDrv gcc44_realCross;
  +    libc = libcCross;
  +    binutils = binutilsCross;
  +    cross = crossSystem;
     };
   
     gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override {
  
positive.code: 
    defaultStdenv = allStdenvs.stdenv // { inherit platform; };
  
    stdenvCross = makeStdenvCross defaultStdenv crossSystem (binutilsCross crossSystem)
      (gccCrossStageFinal crossSystem);
  
    stdenv =
      if bootStdenv != null then bootStdenv else
  
negative.code: 
    linuxHeaders = linuxHeaders_2_6_28;
  
    linuxHeadersCross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
      inherit stdenv fetchurl perl;
      cross = crossSystem;
    });
  
    linuxHeaders_2_6_18 = import ../os-specific/linux/kernel-headers/2.6.18.5.nix {
  