diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
index ff456bdc9e31ad1824720e4474fe29e35855f737..54344bc75a3b99aa8bbaae33f80067253cd62ea1 100644
--- a/fixincludes/ChangeLog
+++ b/fixincludes/ChangeLog
@@ -1,3 +1,15 @@
+2005-03-21  Zack Weinberg  <zack@codesourcery.com>
+
+	* Makefile.in: Set gcc_version directly, not via substitution.
+	(libsubdir): Use $(gcc_version), not $(version).
+	(mkheaders.almost): New rule.
+	(mkheaders): Generate from mkheaders.almost.
+	(clean): Also delete mkheaders.almost.
+	* aclocal.m4: Do not include ../config/gcc-version.m4.
+	* configure.ac: Do not invoke TL_AC_GCC_VERSION.  Generate
+	mkheaders.almost from mkheaders.in.
+	* configure: Regenerate.
+
 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
 
 	PR target/20166
@@ -123,7 +135,7 @@
 
 	* inclhack.def (stdio_va_list): Break out clients from here...
 	(stdio_va_list_clients): ...to here.  Also, don't fix if stdarg.h is
-        included or ifdef va_start.
+	included or ifdef va_start.
 	* fixincl.x: Regenerate.
 
 2004-10-28  Mike Stump  <mrs@apple.com>
diff --git a/fixincludes/Makefile.in b/fixincludes/Makefile.in
index 1383ef61b61a76916c647e101287037536480b8a..54382cc80214f4a6f8ac5ac017d84695feef0349 100644
--- a/fixincludes/Makefile.in
+++ b/fixincludes/Makefile.in
@@ -49,10 +49,10 @@ target = @target@
 target_noncanonical:=@target_noncanonical@
 
 # The version of GCC in this tree
-gcc_version=@gcc_version@
+gcc_version := $(shell cat $(srcdir)/../gcc/BASE-VER)
 
 # Directory in which the compiler finds libraries etc.
-libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(version)
+libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
 # Directory in which the compiler finds executables
 libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
 # Where our executable files go
@@ -130,7 +130,7 @@ mostlyclean :
 	rm -f *.o *-stamp $(AF) $(FI) *~ fixinc.sh
 
 clean: mostlyclean
-	rm -f mkheaders
+	rm -f mkheaders mkheaders.almost
 
 distclean: clean
 	rm -f Makefile config.h config.log config.status stamp-h
@@ -143,8 +143,13 @@ distclean : clean
 Makefile: $(srcdir)/Makefile.in config.status
 	$(SHELL) ./config.status Makefile
 
-mkheaders: $(srcdir)/mkheaders.in config.status
-	CONFIG_FILES=mkheaders CONFIG_HEADERS= ./config.status
+mkheaders.almost: $(srcdir)/mkheaders.in config.status
+	CONFIG_FILES=mkheaders.almost:mkheaders.in \
+	CONFIG_HEADERS= ./config.status
+
+mkheaders: mkheaders.almost $(srcdir)/../gcc/BASE-VER
+	sed -e 's/@gcc_version@/$(gcc_version)/' < $< > $@T
+	mv -f $@T $@
 
 config.h: stamp-h
 stamp-h: $(srcdir)/config.h.in config.status
diff --git a/fixincludes/aclocal.m4 b/fixincludes/aclocal.m4
index bf22e31974d273f1c754703af2c3cd5d63c83db0..6f1679e009a53f6b925784d4091cbc1d1023d805 100644
--- a/fixincludes/aclocal.m4
+++ b/fixincludes/aclocal.m4
@@ -1,6 +1,5 @@
 sinclude(../config/acx.m4)
 sinclude(../config/accross.m4)
-sinclude(../config/gcc-version.m4)
 sinclude(../config/gettext.m4)
 sinclude(../config/progtest.m4)
 
diff --git a/fixincludes/configure b/fixincludes/configure
index 64e7963a9949cc90f538d633c05f1c39f692d70a..ed9974e8319b1e719be355e31a1daf0a3a615b7a 100755
--- a/fixincludes/configure
+++ b/fixincludes/configure
@@ -309,7 +309,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT target_noncanonical TARGET gcc_version_trigger gcc_version_full gcc_version CPP EGREP MAINT LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT target_noncanonical TARGET CPP EGREP MAINT LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -2425,23 +2425,6 @@ _ACEOF
 
 fi
 
-
-if test "${with_gcc_version_trigger+set}" = set; then
-  gcc_version_trigger=$with_gcc_version_trigger
-else
-  gcc_version_trigger=$srcdir/../gcc/version.c
-fi
-if test -f "${gcc_version_trigger}"; then
-  gcc_version_full=`grep version_string "${gcc_version_trigger}" | sed -e 's/.*"\([^"]*\)".*/\1/'`
-else
-  gcc_version_full=`$CC -v 2>&1 | sed -n 's/^gcc version //p'`
-fi
-gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
-
-
-
-
-
 case $host in
 	vax-dec-bsd* )
 
@@ -4241,7 +4224,7 @@ fi
 
           ac_config_headers="$ac_config_headers config.h"
 
-                    ac_config_files="$ac_config_files Makefile mkheaders"
+                    ac_config_files="$ac_config_files Makefile mkheaders.almost:mkheaders.in"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -4768,7 +4751,7 @@ do
   case "$ac_config_target" in
   # Handling of arguments.
   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "mkheaders" ) CONFIG_FILES="$CONFIG_FILES mkheaders" ;;
+  "mkheaders.almost" ) CONFIG_FILES="$CONFIG_FILES mkheaders.almost:mkheaders.in" ;;
   "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
@@ -4875,9 +4858,6 @@ s,@EXEEXT@,$EXEEXT,;t t
 s,@OBJEXT@,$OBJEXT,;t t
 s,@target_noncanonical@,$target_noncanonical,;t t
 s,@TARGET@,$TARGET,;t t
-s,@gcc_version_trigger@,$gcc_version_trigger,;t t
-s,@gcc_version_full@,$gcc_version_full,;t t
-s,@gcc_version@,$gcc_version,;t t
 s,@CPP@,$CPP,;t t
 s,@EGREP@,$EGREP,;t t
 s,@MAINT@,$MAINT,;t t
diff --git a/fixincludes/configure.ac b/fixincludes/configure.ac
index a58b1051d16fabae54da7da0228f3c73f8ce8948..516179e2600b68f211190d3db5efbf7f194d3ea4 100644
--- a/fixincludes/configure.ac
+++ b/fixincludes/configure.ac
@@ -52,8 +52,6 @@ if test $TARGET = twoprocess; then
 		  [Define if testing and fixing are done by separate process])
 fi
 
-TL_AC_GCC_VERSION([$srcdir/..])
-
 case $host in
 	vax-dec-bsd* )
 		AC_DEFINE(exit, xexit, [Define to xexit if the host system does not support atexit])
@@ -94,5 +92,5 @@ fi
 AC_SUBST(MAINT)
 
 AC_CONFIG_HEADERS(config.h, [echo timestamp > stamp-h])
-AC_CONFIG_FILES(Makefile mkheaders)
+AC_CONFIG_FILES(Makefile mkheaders.almost:mkheaders.in)
 AC_OUTPUT