Index: gcc/config.build
===================================================================
--- gcc/config.build	(Revision 196898)
+++ gcc/config.build	(Arbeitskopie)
@@ -60,7 +60,7 @@ case $build in
     # IBM 360/370/390 Architecture
     build_xm_defines='FATAL_EXIT_CODE=12'
     ;;
-  i[34567]86-*-cygwin* )
+  i[34567]86-*-cygwin* | x86_64-*-cygwin* )
     build_xm_file=i386/xm-cygwin.h
     build_exeext=.exe
     ;;
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(Revision 196898)
+++ gcc/config.gcc	(Arbeitskopie)
@@ -1452,6 +1452,22 @@ i[34567]86-*-cygwin*)
 	fi
 	use_gcc_stdint=wrap
 	;;
+x86_64-*-cygwin*)
+	need_64bit_isa=yes
+	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h
i386/cygming.h i386/cygwin.h i386/cygwin-w64.h i386/cygwin-stdint.h"
+	xm_file=i386/xm-cygwin.h
+	tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
+	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
+	extra_options="${extra_options} i386/cygming.opt"
+	extra_objs="winnt.o winnt-stubs.o"
+	c_target_objs="${c_target_objs} msformat-c.o"
+	cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
+	if test x$enable_threads = xyes; then
+		thread_file='posix'
+	fi
+	use_gcc_stdint=wrap
+	tm_defines="${tm_defines} TARGET_CYGWIN64=1"
+	;;
 i[34567]86-*-mingw* | x86_64-*-mingw*)
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h
i386/cygming.h"
 	xm_file=i386/xm-mingw32.h
Index: gcc/config.host
===================================================================
--- gcc/config.host	(Revision 196898)
+++ gcc/config.host	(Arbeitskopie)
@@ -214,7 +214,7 @@ case ${host} in
         ;;
     esac
     ;;
-  i[34567]86-*-cygwin*)
+  i[34567]86-*-cygwin* | x86_64-*-cygwin*)
     host_xm_file=i386/xm-cygwin.h
     out_host_hook_obj=host-cygwin.o
     host_xmake_file="${host_xmake_file} i386/x-cygwin"
Index: gcc/configure.ac
===================================================================
--- gcc/configure.ac	(Revision 196898)
+++ gcc/configure.ac	(Arbeitskopie)
@@ -3623,7 +3623,7 @@ changequote([,])dnl
 	# wrappers to aid in interposing and redirecting operators new, delete,
 	# etc., as per n2800 #17.6.4.6 [replacement.functions].  Check if we
 	# are configuring for a version of Cygwin that exports the wrappers.
-	if test x$host = x$target; then
+	if test x$host = x$target && test x$host_cpu = xi686; then
 	  AC_CHECK_FUNC([__wrap__Znaj],[gcc_ac_cygwin_dll_wrappers=yes],[gcc_ac_cygwin_dll_wrappers=no])
 	else
 	  # Can't check presence of libc functions during cross-compile, so
Index: config/dfp.m4
===================================================================
--- config/dfp.m4	(Revision 196898)
+++ config/dfp.m4	(Arbeitskopie)
@@ -23,7 +23,7 @@ Valid choices are 'yes', 'bid', 'dpd', and 'no'.])
     powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \
     i?86*-*-gnu* | \
     i?86*-*-mingw* | x86_64*-*-mingw* | \
-    i?86*-*-cygwin*)
+    i?86*-*-cygwin* | x86_64*-*-cygwin*)
       enable_decimal_float=yes
       ;;
     *)
Index: config/picflag.m4
===================================================================
--- config/picflag.m4	(Revision 196898)
+++ config/picflag.m4	(Arbeitskopie)
@@ -17,8 +17,10 @@ case "${$2}" in
     hppa*64*-*-hpux*)
 	# PIC is the default for 64-bit PA HP-UX.
 	;;
-    i[[34567]]86-*-cygwin* | i[[34567]]86-*-mingw* | x86_64-*-mingw*)
+    i[[34567]]86-*-cygwin* | x86_64-*-cygwin*)
 	;;
+    i[[34567]]86-*-mingw* | x86_64-*-mingw*)
+	;;
     i[[34567]]86-*-interix[[3-9]]*)
 	# Interix 3.x gcc -fpic/-fPIC options generate broken code.
 	# Instead, we relocate shared libraries at runtime.
Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(Revision 196898)
+++ libgcc/config.host	(Arbeitskopie)
@@ -564,13 +564,30 @@ i[34567]86-*-cygwin*)
 		tmake_eh_file="i386/t-dw2-eh"
 	fi
 	# Shared libgcc DLL install dir depends on cross/native build.
-	if test x${build} = x${host} ; then
+	if test x${host} = x${target} ; then
 		tmake_dlldir_file="i386/t-dlldir"
 	else
 		tmake_dlldir_file="i386/t-dlldir-x"
 	fi
 	tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file}
i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin i386/t-crtfm
i386/t-chkstk t-dfprules"
 	;;
+x86_64-*-cygwin*)
+	extra_parts="crtbegin.o crtend.o crtfastmath.o"
+	# This has to match the logic for DWARF2_UNWIND_INFO in
gcc/config/i386/cygming.h
+	if test x$enable_sjlj_exceptions = xyes; then
+		tmake_eh_file="i386/t-sjlj-eh"
+	else
+		tmake_eh_file="i386/t-seh-eh"
+	fi
+	# Shared libgcc DLL install dir depends on cross/native build.
+	if test x${host} = x${target} ; then
+		tmake_dlldir_file="i386/t-dlldir"
+	else
+		tmake_dlldir_file="i386/t-dlldir-x"
+	fi
+	# FIXME - dj - t-chkstk used to be in here, need a 64-bit version of that
+	tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file}
i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin i386/t-crtfm
