Index: gcc/gcc/config/i386/cygwin.h |
diff --git a/gcc/gcc/config/i386/cygwin.h b/gcc/gcc/config/i386/cygwin.h |
index 578f6a08206c7291f15285bdeadab2426a482804..c365f6603cdabf942d9acb110b9c2457e2d7aa09 100644 |
--- a/gcc/gcc/config/i386/cygwin.h |
+++ b/gcc/gcc/config/i386/cygwin.h |
@@ -1,7 +1,7 @@ |
/* Operating system specific defines to be used when targeting GCC for |
hosting on Windows32, using a Unix style C library and tools. |
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, |
- 2007, 2008, 2009 Free Software Foundation, Inc. |
+ 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
This file is part of GCC. |
@@ -85,13 +85,45 @@ along with GCC; see the file COPYING3. If not see |
%{mwindows:-lgdi32 -lcomdlg32} \ |
-luser32 -lkernel32 -ladvapi32 -lshell32" |
+/* To implement C++ function replacement we always wrap the cxx |
+ malloc-like operators. See N2800 #17.6.4.6 [replacement.functions] */ |
+#define CXX_WRAP_SPEC_LIST " \ |
+ --wrap _Znwj \ |
+ --wrap _Znaj \ |
+ --wrap _ZdlPv \ |
+ --wrap _ZdaPv \ |
+ --wrap _ZnwjRKSt9nothrow_t \ |
+ --wrap _ZnajRKSt9nothrow_t \ |
+ --wrap _ZdlPvRKSt9nothrow_t \ |
+ --wrap _ZdaPvRKSt9nothrow_t \ |
+" |
+ |
+#if defined (USE_CYGWIN_LIBSTDCXX_WRAPPERS) |
+ |
+#if USE_CYGWIN_LIBSTDCXX_WRAPPERS |
+/* Default on, only explict -mno disables. */ |
+#define CXX_WRAP_SPEC_OPT "!mno-use-libstdc-wrappers" |
+#else |
+/* Default off, only explict -m enables. */ |
+#define CXX_WRAP_SPEC_OPT "muse-libstdc-wrappers" |
+#endif |
+ |
+#define CXX_WRAP_SPEC "%{!mno-cygwin:%{" CXX_WRAP_SPEC_OPT ":" CXX_WRAP_SPEC_LIST "}}" |
+ |
+#else /* !defined (USE_CYGWIN_LIBSTDCXX_WRAPPERS) */ |
+ |
+#define CXX_WRAP_SPEC "" |
+ |
+#endif /* ?defined (USE_CYGWIN_LIBSTDCXX_WRAPPERS) */ |
+ |
#define LINK_SPEC "\ |
%{mwindows:--subsystem windows} \ |
%{mconsole:--subsystem console} \ |
+ " CXX_WRAP_SPEC " \ |
%{shared: %{mdll: %eshared and mdll are not compatible}} \ |
%{shared: --shared} %{mdll:--dll} \ |
%{static:-Bstatic} %{!static:-Bdynamic} \ |
- %{shared|mdll: -e \ |
+ %{shared|mdll: --enable-auto-image-base -e \ |
%{mno-cygwin:_DllMainCRTStartup@12} \ |
%{!mno-cygwin:__cygwin_dll_entry@12}}\ |
%{!mno-cygwin:--dll-search-prefix=cyg -tsaware}" |
@@ -267,3 +299,7 @@ while (0) |
#define LIBGCC_EH_EXTN "-sjlj" |
#endif |
#define LIBGCC_SONAME "cyggcc_s" LIBGCC_EH_EXTN "-1.dll" |
+ |
+/* We should find a way to not have to update this manually. */ |
+#define LIBGCJ_SONAME "cyggcj" /*LIBGCC_EH_EXTN*/ "-11.dll" |
+ |