Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 172279)
+++ gcc/config.gcc	(working copy)
@@ -565,8 +565,6 @@ case ${target} in
   case $target in
     *linux*)
       extra_options="$extra_options linux.opt";;
-    *)
-      tm_defines="$tm_defines SINGLE_LIBC";;
   esac
   case $target in
     *-*-*android*)
@@ -1201,9 +1199,10 @@ i[34567]86-*-openbsd*)
 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
 			# Intel 80386's running GNU/*
 			# with ELF format using glibc 2
-	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
+	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
 	case ${target} in
 	i[34567]86-*-linux*)
+		tm_file="${tm_file} linux.h"
 		# Assume modern glibc
 		default_gnu_indirect_function=yes
 		if test x$enable_targets = xall; then
@@ -1230,18 +1229,19 @@ i[34567]86-*-linux* | i[34567]86-*-kfree
 			tm_file="${tm_file} i386/gnu-user.h i386/linux.h"
 		fi
 		;;
-	i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/gnu-user.h i386/linux.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
-	i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/gnu-user.h i386/linux.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
-	i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/gnu-user.h i386/linux.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;;
-	i[34567]86-*-gnu*) tm_file="$tm_file i386/gnu-user.h i386/linux.h gnu.h i386/gnu.h";;
+	i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
+	i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
+	i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;;
+	i[34567]86-*-gnu*) tm_file="$tm_file i386/gnu-user.h gnu.h i386/gnu.h";;
 	esac
 	tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules"
 	;;
 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
-	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h \
-		 i386/x86-64.h i386/gnu-user64.h i386/linux64.h"
+	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
+		 i386/x86-64.h i386/gnu-user64.h"
 	case ${target} in
 	x86_64-*-linux*)
+	  tm_file="${tm_file} linux.h i386/linux64.h"
 	  default_gnu_indirect_function=glibc-2011 ;;
 	x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
 	x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
Index: gcc/config/linux.h
===================================================================
--- gcc/config/linux.h	(revision 172279)
+++ gcc/config/linux.h	(working copy)
@@ -93,7 +93,9 @@ see the files COPYING3 and COPYING.RUNTI
 
 /* Determine whether the entire c99 runtime
    is present in the runtime library.  */
+#undef TARGET_C99_FUNCTIONS
 #define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
 
 /* Whether we have sincos that follows the GNU extension.  */
+#undef TARGET_HAS_SINCOS
 #define TARGET_HAS_SINCOS (OPTION_GLIBC || OPTION_BIONIC)
Index: gcc/config/i386/linux.h
===================================================================
--- gcc/config/i386/linux.h	(revision 172279)
+++ gcc/config/i386/linux.h	(working copy)
@@ -24,5 +24,3 @@ along with GCC; see the file COPYING3.  
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
 #define MD_UNWIND_SUPPORT "config/i386/linux-unwind.h"
-
-#define REG_NAME(reg) reg
Index: gcc/config/i386/kopensolaris-gnu.h
===================================================================
--- gcc/config/i386/kopensolaris-gnu.h	(revision 172279)
+++ gcc/config/i386/kopensolaris-gnu.h	(working copy)
@@ -20,5 +20,3 @@ along with GCC; see the file COPYING3.  
 <http://www.gnu.org/licenses/>.  */
 
 #define GNU_USER_LINK_EMULATION "elf_i386"
-
-#undef MD_UNWIND_SUPPORT
Index: gcc/config/i386/kfreebsd-gnu.h
===================================================================
--- gcc/config/i386/kfreebsd-gnu.h	(revision 172279)
+++ gcc/config/i386/kfreebsd-gnu.h	(working copy)
@@ -27,5 +27,3 @@ along with GCC; see the file COPYING3.  
 
 #undef GNU_USER_DYNAMIC_LINKER64
 #define GNU_USER_DYNAMIC_LINKER64 "/lib/ld-kfreebsd-x86-64.so.1"
-
-#undef MD_UNWIND_SUPPORT
Index: gcc/config/i386/gnu.h
===================================================================
--- gcc/config/i386/gnu.h	(revision 172279)
+++ gcc/config/i386/gnu.h	(working copy)
@@ -36,9 +36,6 @@ along with GCC.  If not, see <http://www
    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 #endif
 
-/* FIXME: Is a Hurd-specific fallback mechanism necessary?  */
-#undef MD_UNWIND_SUPPORT
-
 #ifdef TARGET_LIBC_PROVIDES_SSP
 /* Not supported yet.  */
 #undef TARGET_THREAD_SSP_OFFSET
Index: gcc/config/i386/linux64.h
===================================================================
--- gcc/config/i386/linux64.h	(revision 172279)
+++ gcc/config/i386/linux64.h	(working copy)
@@ -28,5 +28,3 @@ see the files COPYING3 and COPYING.RUNTI
 #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
 
 #define MD_UNWIND_SUPPORT "config/i386/linux-unwind.h"
-
-#define REG_NAME(reg) reg
Index: gcc/config/i386/linux-unwind.h
===================================================================
--- gcc/config/i386/linux-unwind.h	(revision 172279)
+++ gcc/config/i386/linux-unwind.h	(working copy)
@@ -1,5 +1,6 @@
 /* DWARF2 EH unwinding support for AMD x86-64 and x86.
-   Copyright (C) 2004, 2005, 2006, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011
+   Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -146,28 +147,28 @@ x86_fallback_frame_state (struct _Unwind
   else
     return _URC_END_OF_STACK;
 
-  new_cfa = sc->REG_NAME(esp);
+  new_cfa = sc->esp;
   fs->regs.cfa_how = CFA_REG_OFFSET;
   fs->regs.cfa_reg = 4;
   fs->regs.cfa_offset = new_cfa - (long) context->cfa;
 
   /* The SVR4 register numbering macros aren't usable in libgcc.  */
   fs->regs.reg[0].how = REG_SAVED_OFFSET;
-  fs->regs.reg[0].loc.offset = (long)&sc->REG_NAME(eax) - new_cfa;
+  fs->regs.reg[0].loc.offset = (long)&sc->eax - new_cfa;
   fs->regs.reg[3].how = REG_SAVED_OFFSET;
-  fs->regs.reg[3].loc.offset = (long)&sc->REG_NAME(ebx) - new_cfa;
+  fs->regs.reg[3].loc.offset = (long)&sc->ebx - new_cfa;
   fs->regs.reg[1].how = REG_SAVED_OFFSET;
-  fs->regs.reg[1].loc.offset = (long)&sc->REG_NAME(ecx) - new_cfa;
+  fs->regs.reg[1].loc.offset = (long)&sc->ecx - new_cfa;
   fs->regs.reg[2].how = REG_SAVED_OFFSET;
-  fs->regs.reg[2].loc.offset = (long)&sc->REG_NAME(edx) - new_cfa;
+  fs->regs.reg[2].loc.offset = (long)&sc->edx - new_cfa;
   fs->regs.reg[6].how = REG_SAVED_OFFSET;
-  fs->regs.reg[6].loc.offset = (long)&sc->REG_NAME(esi) - new_cfa;
+  fs->regs.reg[6].loc.offset = (long)&sc->esi - new_cfa;
   fs->regs.reg[7].how = REG_SAVED_OFFSET;
-  fs->regs.reg[7].loc.offset = (long)&sc->REG_NAME(edi) - new_cfa;
+  fs->regs.reg[7].loc.offset = (long)&sc->edi - new_cfa;
   fs->regs.reg[5].how = REG_SAVED_OFFSET;
-  fs->regs.reg[5].loc.offset = (long)&sc->REG_NAME(ebp) - new_cfa;
+  fs->regs.reg[5].loc.offset = (long)&sc->ebp - new_cfa;
   fs->regs.reg[8].how = REG_SAVED_OFFSET;
-  fs->regs.reg[8].loc.offset = (long)&sc->REG_NAME(eip) - new_cfa;
+  fs->regs.reg[8].loc.offset = (long)&sc->eip - new_cfa;
   fs->retaddr_column = 8;
   fs->signal_frame = 1;
   return _URC_NO_REASON;
Index: gcc/config/i386/knetbsd-gnu.h
===================================================================
--- gcc/config/i386/knetbsd-gnu.h	(revision 172279)
+++ gcc/config/i386/knetbsd-gnu.h	(working copy)
@@ -20,5 +20,3 @@ along with GCC; see the file COPYING3.  
 <http://www.gnu.org/licenses/>.  */
 
 #define GNU_USER_LINK_EMULATION "elf_i386"
-
-#undef MD_UNWIND_SUPPORT
Index: gcc/config/gnu-user.h
===================================================================
--- gcc/config/gnu-user.h	(revision 172279)
+++ gcc/config/gnu-user.h	(working copy)
@@ -95,3 +95,6 @@ see the files COPYING3 and COPYING.RUNTI
 #endif
 
 #define TARGET_POSIX_IO
+
+#define TARGET_C99_FUNCTIONS 1
+#define TARGET_HAS_SINCOS 1
