anchor.diff:    configureFlags =
       optional (singleBinary != false)
         ("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}")
  -    ++ optional stdenv.isSunOS "ac_cv_func_inotify_init=no"
  -    ++ optional withPrefix "--program-prefix=g";
  +    ++ optional hostPlatform.isSunOS "ac_cv_func_inotify_init=no"
  +    ++ optional withPrefix "--program-prefix=g"
  +    ++ optionals (hostPlatform != buildPlatform && hostPlatform.libc == "glibc") [
  +      # TODO(19b98110126fde7cbb1127af7e3fe1568eacad3d): Needed for fstatfs() I
  +      # don't know why it is not properly detected cross building with glibc.
  +      "fu_cv_sys_stat_statfs2_bsize=yes"
  +    ];
  +
   
     buildInputs = [ gmp ]
       ++ optional aclSupport acl
       ++ optional attrSupport attr
  -    ++ optionals stdenv.isCygwin [ autoconf automake114x texinfo ]   # due to patch
  -    ++ optionals selinuxSupport [ libselinux libsepol ];
  -
  -  crossAttrs = {
  -    buildInputs = [ gmp.crossDrv ]
  -      ++ optional aclSupport acl.crossDrv
  -      ++ optional attrSupport attr.crossDrv
  -      ++ optionals selinuxSupport [ libselinux.crossDrv libsepol.crossDrv ]
  -      ++ optional (stdenv ? ccCross.libc.libiconv)
  -        stdenv.ccCross.libc.libiconv.crossDrv;
  -
  -    # Prevents attempts of running 'help2man' on cross-built binaries.
  -    PERL = "missing";
  -
  -    # Works around a bug with 8.26:
  -    # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually).  Stop.
  -    preInstall = ''
  -      sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|'
  -    '';
  -
  -    postInstall = ''
  -      rm $out/share/man/man1/*
  -      cp ${buildPackages.coreutils}/share/man/man1/* $out/share/man/man1
  -    '';
  -
  -    # Needed for fstatfs()
  -    # I don't know why it is not properly detected cross building with glibc.
  -    configureFlags = [ "fu_cv_sys_stat_statfs2_bsize=yes" ];
  -    doCheck = false;
  -  };
  +    ++ optionals hostPlatform.isCygwin [ autoconf automake114x texinfo ]   # due to patch
  +    ++ optionals selinuxSupport [ libselinux libsepol ]
  +       # TODO(@Ericson2314): Investigate whether Darwin could benefit too
  +    ++ optional (hostPlatform != buildPlatform && hostPlatform.libc != "glibc") libiconv;
   
     # The tests are known broken on Cygwin
     # (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19025),
     # Darwin (http://thread.gmane.org/gmane.comp.gnu.core-utils.bugs/19351),
     # and {Open,Free}BSD.
     # With non-standard storeDir: https://github.com/NixOS/nix/issues/512
  -  doCheck = stdenv ? glibc && builtins.storeDir == "/nix/store";
  +  doCheck = hostPlatform == buildPlatform
  +    && hostPlatform.libc == "glibc"
  +    && builtins.storeDir == "/nix/store";
  +
  +  # Prevents attempts of running 'help2man' on cross-built binaries.
  +  ${if hostPlatform == buildPlatform then null else "PERL"} = "missing";
   
     # Saw random failures like ‘help2man: can't get '--help' info from
     # man/sha512sum.td/sha512sum’.
     enableParallelBuilding = false;
   
     NIX_LDFLAGS = optionalString selinuxSupport "-lsepol";
  -  FORCE_UNSAFE_CONFIGURE = optionalString stdenv.isSunOS "1";
  +  FORCE_UNSAFE_CONFIGURE = optionalString hostPlatform.isSunOS "1";
   
  -  makeFlags = optionalString stdenv.isDarwin "CFLAGS=-D_FORTIFY_SOURCE=0";
  +  makeFlags = optionalString hostPlatform.isDarwin "CFLAGS=-D_FORTIFY_SOURCE=0";
  +
  +  # Works around a bug with 8.26:
  +  # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually).  Stop.
  +  ${if hostPlatform == buildPlatform then null else "preInstall"} = ''
  +    sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|'
  +  '';
  +
  +  ${if hostPlatform == buildPlatform then null else "postInstall"} = ''
  +    rm $out/share/man/man1/*
  +    cp ${buildPackages.coreutils}/share/man/man1/* $out/share/man/man1
  +  '';
   
     meta = {
       homepage = http://www.gnu.org/software/coreutils/;
  
positive.code: 
      maintainers = [ maintainers.eelco ];
    };
  }
  
negative.code:   # FIXME needs gcc 4.9 in bootstrap tools
    hardeningDisable = [ "stackprotector" ];
  
    patches = optional hostPlatform.isCygwin ./coreutils-8.23-4.cygwin.patch;
  
    # The test tends to fail on btrfs and maybe other unusual filesystems.
    postPatch = optionalString (!hostPlatform.isDarwin) ''
      sed '2i echo Skipping dd sparse test && exit 0' -i ./tests/dd/sparse.sh
      sed '2i echo Skipping cp sparse test && exit 0' -i ./tests/cp/sparse.sh
      sed '2i echo Skipping rm deep-2 test && exit 0' -i ./tests/rm/deep-2.sh
  