gcc 4.4.2 is also affected by the wrong CPP passed to the configure script of the target libraries, as 4.3.4 I trigger the breaking build using uclibc, instead of glibc, and then the mixture of CPP getting the build glibc headers, and CC getting the uclibc headers, makes the problem evident. In 4.3.4 it only affected libmudflap. In 4.4.2, it affects libmudflap and libstdc++.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18850

+20 -2
+8 -2
pkgs/development/compilers/gcc-4.4/default.nix
··· 88 88 89 89 patches = 90 90 [./pass-cxxcpp.patch 91 - # ./libtool-glibc.patch # some libraries don't let the proper -Btargetglibcpath pass 92 - ./libstdc++-target.patch # (fixed in gcc 4.4.3) bad mixture of build/target flags 91 + 92 + # libmudflap and libstdc++ receive the build CPP, 93 + # and not the target. 94 + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42279 95 + ./target-cpp.patch 96 + 97 + # (fixed in gcc 4.4.3) bad mixture of build/target flags 98 + ./libstdc++-target.patch 93 99 ] 94 100 ++ optional noSysDirs ./no-sys-dirs.patch; 95 101
+12
pkgs/development/compilers/gcc-4.4/target-cpp.patch
··· 1 + diff --git a/Makefile.in b/Makefile.in 2 + index 8545b60..1fab64d 100644 3 + --- a/Makefile.in 4 + +++ b/Makefile.in 5 + @@ -231,6 +231,7 @@ BASE_TARGET_EXPORTS = \ 6 + CC="$(CC_FOR_TARGET)"; export CC; \ 7 + CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \ 8 + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ 9 + + CPP="$(CC_FOR_TARGET) -E"; export CPP; \ 10 + CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ 11 + CXXFLAGS="$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \ 12 + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \