Index: gcc/gcc/config/i386/mingw32.h |
diff --git a/gcc/gcc/config/i386/mingw32.h b/gcc/gcc/config/i386/mingw32.h |
index f3fbe8c586512db2554b306d57c05d22dccb0800..e08ea1cd90cbe5d2b185a445bfd5190536ba6096 100644 |
--- a/gcc/gcc/config/i386/mingw32.h |
+++ b/gcc/gcc/config/i386/mingw32.h |
@@ -1,7 +1,7 @@ |
/* Operating system specific defines to be used when targeting GCC for |
hosting on Windows32, using GNU tools and the Windows32 API Library. |
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, 2008, |
- 2009 Free Software Foundation, Inc. |
+ 2009, 2010 Free Software Foundation, Inc. |
This file is part of GCC. |
@@ -38,7 +38,7 @@ along with GCC; see the file COPYING3. If not see |
builtin_define_std ("WINNT"); \ |
builtin_define_with_int_value ("_INTEGRAL_MAX_BITS", \ |
TYPE_PRECISION (intmax_type_node));\ |
- if (TARGET_64BIT && DEFAULT_ABI == MS_ABI) \ |
+ if (TARGET_64BIT && ix86_abi == MS_ABI) \ |
{ \ |
builtin_define ("__MINGW64__"); \ |
builtin_define_std ("WIN64"); \ |
@@ -47,14 +47,26 @@ along with GCC; see the file COPYING3. If not see |
} \ |
while (0) |
+#undef SUB_LINK_ENTRY32 |
+#undef SUB_LINK_ENTRY64 |
+#define SUB_LINK_ENTRY32 "-e _DllMainCRTStartup@12" |
+#if defined(USE_MINGW64_LEADING_UNDERSCORES) |
+#define SUB_LINK_ENTRY64 "-e _DllMainCRTStartup" |
+#else |
+#define SUB_LINK_ENTRY64 "-e DllMainCRTStartup" |
+#endif |
+ |
+#undef SUB_LINK_ENTRY |
+#if TARGET_64BIT_DEFAULT |
+#define SUB_LINK_ENTRY SUB_LINK_ENTRY64 |
+#else |
+#define SUB_LINK_ENTRY SUB_LINK_ENTRY32 |
+#endif |
+ |
/* Override the standard choice of /usr/include as the default prefix |
to try when searching for header files. */ |
#undef STANDARD_INCLUDE_DIR |
-#if TARGET_64BIT_DEFAULT |
-#define STANDARD_INCLUDE_DIR "/mingw/include64" |
-#else |
#define STANDARD_INCLUDE_DIR "/mingw/include" |
-#endif |
#undef STANDARD_INCLUDE_COMPONENT |
#define STANDARD_INCLUDE_COMPONENT "MINGW" |
@@ -70,6 +82,10 @@ along with GCC; see the file COPYING3. If not see |
/* Weak symbols do not get resolved if using a Windows dll import lib. |
Make the unwind registration references strong undefs. */ |
#if DWARF2_UNWIND_INFO |
+/* DW2-unwind is just available for 32-bit mode. */ |
+#if TARGET_64BIT_DEFAULT |
+#error DW2 unwind is not available for 64-bit. |
+#endif |
#define SHARED_LIBGCC_UNDEFS_SPEC \ |
"%{shared-libgcc: -u ___register_frame_info -u ___deregister_frame_info}" |
#else |
@@ -85,7 +101,7 @@ along with GCC; see the file COPYING3. If not see |
%{shared: %{mdll: %eshared and mdll are not compatible}} \ |
%{shared: --shared} %{mdll:--dll} \ |
%{static:-Bstatic} %{!static:-Bdynamic} \ |
- %{shared|mdll: -e _DllMainCRTStartup@12 --enable-auto-image-base} \ |
+ %{shared|mdll: " SUB_LINK_ENTRY " --enable-auto-image-base} \ |
%(shared_libgcc_undefs)" |
/* Include in the mingw32 libraries with libgcc */ |
@@ -113,16 +129,20 @@ along with GCC; see the file COPYING3. If not see |
/* Override startfile prefix defaults. */ |
#ifndef STANDARD_STARTFILE_PREFIX_1 |
-#if TARGET_64BIT_DEFAULT |
-#define STANDARD_STARTFILE_PREFIX_1 "/mingw/lib64/" |
-#else |
#define STANDARD_STARTFILE_PREFIX_1 "/mingw/lib/" |
#endif |
-#endif |
#ifndef STANDARD_STARTFILE_PREFIX_2 |
#define STANDARD_STARTFILE_PREFIX_2 "" |
#endif |
+/* Put all *tf routines in libgcc. */ |
+#undef LIBGCC2_HAS_TF_MODE |
+#define LIBGCC2_HAS_TF_MODE 1 |
+#undef LIBGCC2_TF_CEXT |
+#define LIBGCC2_TF_CEXT q |
+#undef TF_SIZE |
+#define TF_SIZE 113 |
+ |
/* Output STRING, a string representing a filename, to FILE. |
We canonicalize it to be in Unix format (backslashes are replaced |
forward slashes. */ |
@@ -202,12 +222,16 @@ __enable_execute_stack (void *addr) \ |
#undef ENABLE_EXECUTE_STACK |
#define ENABLE_EXECUTE_STACK MINGW_ENABLE_EXECUTE_STACK |
+#undef CHECK_EXECUTE_STACK_ENABLED |
+#define CHECK_EXECUTE_STACK_ENABLED flag_setstackexecutable |
#ifdef IN_LIBGCC2 |
#include <windows.h> |
#endif |
-#if !TARGET_64BIT |
+/* For 64-bit Windows we can't use DW2 unwind info. Also for multilib |
+ builds we can't use it, too. */ |
+#if !TARGET_64BIT && !defined (TARGET_BI_ARCH) |
#define MD_UNWIND_SUPPORT "config/i386/w32-unwind.h" |
#endif |
@@ -219,3 +243,7 @@ __enable_execute_stack (void *addr) \ |
#define LIBGCC_EH_EXTN "_sjlj" |
#endif |
#define LIBGCC_SONAME "libgcc_s" LIBGCC_EH_EXTN "-1.dll" |
+ |
+/* We should find a way to not have to update this manually. */ |
+#define LIBGCJ_SONAME "libgcj" /*LIBGCC_EH_EXTN*/ "-11.dll" |
+ |