diff -rc gcc-orig/gcc/cppdefault.c gcc-patched/gcc/cppdefault.c
*** gcc-orig/gcc/cppdefault.c	2003-03-01 15:31:12.000000000 +0100
--- gcc-patched/gcc/cppdefault.c	2004-06-29 10:08:45.000000000 +0200
***************
*** 41,46 ****
--- 41,50 ----
  # undef CROSS_INCLUDE_DIR
  #endif
  
+ #undef LOCAL_INCLUDE_DIR
+ #undef SYSTEM_INCLUDE_DIR
+ #undef STANDARD_INCLUDE_DIR
+ 
  const struct default_include cpp_include_defaults[]
  #ifdef INCLUDE_DEFAULTS
  = INCLUDE_DEFAULTS;
diff -rc gcc-orig/gcc/Makefile.in gcc-patched/gcc/Makefile.in
*** gcc-orig/gcc/Makefile.in	2004-04-01 18:47:54.000000000 +0200
--- gcc-patched/gcc/Makefile.in	2004-06-29 13:50:45.000000000 +0200
***************
*** 199,205 ****
  CPPFLAGS = @CPPFLAGS@
  
  # These exists to be overridden by the x-* and t-* files, respectively.
! X_CFLAGS =
  T_CFLAGS =
  
  X_CPPFLAGS =
--- 199,205 ----
  CPPFLAGS = @CPPFLAGS@
  
  # These exists to be overridden by the x-* and t-* files, respectively.
! X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
  T_CFLAGS =
  
  X_CPPFLAGS =
***************
*** 345,351 ****
  PARTITION_H = $(srcdir)/../include/partition.h
  
  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
! NATIVE_SYSTEM_HEADER_DIR = /usr/include
  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  
--- 345,355 ----
  PARTITION_H = $(srcdir)/../include/partition.h
  
  # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
! # Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
! # `fixinc' from fixing header files in /usr/include.  However,
! # NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
! # it to some dummy directory.
! NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
  # Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
  CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  
diff -rc gcc-orig/libstdc++-v3/include/Makefile.in gcc-patched/libstdc++-v3/include/Makefile.in
*** gcc-orig/libstdc++-v3/include/Makefile.in	2004-03-18 18:36:43.000000000 +0100
--- gcc-patched/libstdc++-v3/include/Makefile.in	2004-06-29 19:01:33.000000000 +0200
***************
*** 896,903 ****
  	if [ ! -d "${pch_output_builddir}" ]; then \
  	  mkdir -p ${pch_output_builddir}; \
  	fi; \
! 	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g; \
! 	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g;
  
  # For robustness sake (in light of junk files or in-source
  # configuration), copy from the build or source tree to the install
--- 896,903 ----
  	if [ ! -d "${pch_output_builddir}" ]; then \
  	  mkdir -p ${pch_output_builddir}; \
  	fi; \
! 	$(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g; \
! 	$(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g;
  
  # For robustness sake (in light of junk files or in-source
  # configuration), copy from the build or source tree to the install
diff -rc gcc-orig/ltcf-cxx.sh gcc-patched/ltcf-cxx.sh
*** gcc-orig/ltcf-cxx.sh	2003-11-19 06:29:32.000000000 +0100
--- gcc-patched/ltcf-cxx.sh	2004-06-29 15:26:01.000000000 +0200
***************
*** 985,991 ****
    # the conftest object file.
    pre_test_object_deps_done=no
  
!   for p in `eval $output_verbose_link_cmd`; do
  
      case $p in
  
--- 985,991 ----
    # the conftest object file.
    pre_test_object_deps_done=no
  
!   for p in `true`; do
  
      case $p in
  
diff -rc gcc-orig/Makefile.in gcc-patched/Makefile.in
*** gcc-orig/Makefile.in	2004-01-14 21:09:37.000000000 +0100
--- gcc-patched/Makefile.in	2004-06-29 16:21:36.000000000 +0200
***************
*** 228,234 ****
  NM = @NM@
  
  LD = @LD@
! LDFLAGS = 
  
  RANLIB = @RANLIB@
  
--- 228,234 ----
  NM = @NM@
  
  LD = @LD@
! LDFLAGS = $(NIX_EXTRA_LDFLAGS)
  
  RANLIB = @RANLIB@
  
***************
*** 277,283 ****
  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
  # (which we know are built with gcc) are built with optimizations so
  # prepend -O2 when setting CFLAGS_FOR_TARGET.
! CFLAGS_FOR_TARGET = -O2 $(CFLAGS)
  # If GCC_FOR_TARGET is not overriden on the command line, then this
  # variable is passed down to the gcc Makefile, where it is used to
  # build libgcc2.a.  We define it here so that it can itself be
--- 277,283 ----
  # CFLAGS will be just -g.  We want to ensure that TARGET libraries
  # (which we know are built with gcc) are built with optimizations so
  # prepend -O2 when setting CFLAGS_FOR_TARGET.
! CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(NIX_EXTRA_CFLAGS)
  # If GCC_FOR_TARGET is not overriden on the command line, then this
  # variable is passed down to the gcc Makefile, where it is used to
  # build libgcc2.a.  We define it here so that it can itself be
***************
*** 290,296 ****
  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
! CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
  
  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
--- 290,296 ----
  RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
  CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
  RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
! CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(NIX_EXTRA_CFLAGS)
  LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
  
  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
***************
*** 321,327 ****
      fi; \
    fi`
  
! LDFLAGS_FOR_TARGET = 
  
  NM_FOR_TARGET=@NM_FOR_TARGET@
  USUAL_NM_FOR_TARGET = ` \
--- 321,327 ----
      fi; \
    fi`
  
! LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
  
  NM_FOR_TARGET=@NM_FOR_TARGET@
  USUAL_NM_FOR_TARGET = ` \
