aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/cygwin.h23
2 files changed, 27 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc511e9..1fba853 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ PR bootstrap/37660
+ * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
+ (LIBGCC_SPEC): Don't define.
+ (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
+
2009-01-21 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/38879
diff --git a/gcc/config/i386/cygwin.h b/gcc/config/i386/cygwin.h
index f61cacb..9b2fd7f 100644
--- a/gcc/config/i386/cygwin.h
+++ b/gcc/config/i386/cygwin.h
@@ -49,9 +49,26 @@ along with GCC; see the file COPYING3. If not see
GCC without making a new CYGWIN.DLL, so we leave it. Profiling is handled
by calling the init function from main. */
-#undef LIBGCC_SPEC
-#define LIBGCC_SPEC \
- "%{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} -lgcc \
+#ifdef ENABLE_SHARED_LIBGCC
+#define SHARED_LIBGCC_SPEC " \
+ %{static|static-libgcc:-lgcc -lgcc_eh} \
+ %{!static: \
+ %{!static-libgcc: \
+ %{!shared: \
+ %{!shared-libgcc:-lgcc -lgcc_eh} \
+ %{shared-libgcc:-lgcc_s -lgcc} \
+ } \
+ %{shared:-lgcc_s -lgcc} \
+ } \
+ } "
+#else
+#define SHARED_LIBGCC_SPEC " -lgcc "
+#endif
+
+#undef REAL_LIBGCC_SPEC
+#define REAL_LIBGCC_SPEC \
+ "%{mno-cygwin: %{mthreads:-lmingwthrd} -lmingw32} \
+ " SHARED_LIBGCC_SPEC " \
%{mno-cygwin:-lmoldname -lmingwex -lmsvcrt}"
/* We have to dynamic link to get to the system DLLs. All of libc, libm and