diff options
Diffstat (limited to 'gcc48-specs-cygwin.patch')
-rw-r--r-- | gcc48-specs-cygwin.patch | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/gcc48-specs-cygwin.patch b/gcc48-specs-cygwin.patch new file mode 100644 index 0000000..3d131cd --- /dev/null +++ b/gcc48-specs-cygwin.patch @@ -0,0 +1,92 @@ +--- gcc/config.gcc 2012-09-12 04:03:54.000000000 -0500 ++++ gcc/config.gcc 2013-03-11 03:41:03.674656700 -0500 +@@ -1438,7 +1438,7 @@ i[34567]86-*-cygwin*) + xm_file=i386/xm-cygwin.h + tmake_file="${tmake_file} i386/t-cygming t-slibgcc" + target_gtfiles="\$(srcdir)/config/i386/winnt.c" +- extra_options="${extra_options} i386/cygming.opt" ++ extra_options="${extra_options} i386/cygming.opt i386/cygwin.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" +--- gcc/config/i386/cygwin.h (revision 196430) ++++ gcc/config/i386/cygwin.h (working copy) +@@ -18,11 +18,20 @@ + along with GCC; see the file COPYING3. If not see + <http://www.gnu.org/licenses/>. */ + +-#define EXTRA_OS_CPP_BUILTINS() /* Nothing. */ ++#define EXTRA_OS_CPP_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("__CYGWIN__"); \ ++ if (!TARGET_64BIT) \ ++ builtin_define ("__CYGWIN32__"); \ ++ builtin_define ("__unix__"); \ ++ builtin_define ("__unix"); \ ++ } \ ++ while (0) + + #undef CPP_SPEC + #define CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} \ +- -D__CYGWIN32__ -D__CYGWIN__ %{!ansi:-Dunix} -D__unix__ -D__unix \ ++ %{!ansi:-Dunix} %{pthread: } \ + %{mwin32:-DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ %{!ansi:-DWINNT}} \ + %{!nostdinc:%{!mno-win32:-idirafter ../include/w32api%s -idirafter ../../include/w32api%s}}\ + " +@@ -71,12 +80,14 @@ + #undef LIB_SPEC + #define LIB_SPEC "\ + %{pg:-lgmon} \ ++ %{pthread: } \ + -lcygwin \ + %{mwindows:-lgdi32 -lcomdlg32} \ + -ladvapi32 -lshell32 -luser32 -lkernel32" + + /* To implement C++ function replacement we always wrap the cxx + malloc-like operators. See N2800 #17.6.4.6 [replacement.functions] */ ++#undef CXX_WRAP_SPEC_LIST + #define CXX_WRAP_SPEC_LIST " \ + --wrap _Znwj \ + --wrap _Znaj \ +@@ -115,7 +126,9 @@ + %{shared: --shared} %{mdll:--dll} \ + %{static:-Bstatic} %{!static:-Bdynamic} \ + %{shared|mdll: --enable-auto-image-base -e __cygwin_dll_entry@12} \ +- --dll-search-prefix=cyg -tsaware" ++ --dll-search-prefix=cyg \ ++ %{rdynamic: --export-all-symbols} \ ++ %{!shared: %{!mdll: --large-address-aware --tsaware}}" + + /* Binutils does not handle weak symbols from dlls correctly. For now, + do not use them unnecessarily in gthr-posix.h. */ +--- gcc/config/i386/cygwin.opt 1969-12-31 18:00:00.000000000 -0600 ++++ gcc/config/i386/cygwin.opt 2013-03-11 03:36:36.556378400 -0500 +@@ -0,0 +1,27 @@ ++; Cygwin-specific options. ++ ++; Copyright (C) 2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. ++; ++; This file is part of GCC. ++; ++; GCC is free software; you can redistribute it and/or modify it under ++; the terms of the GNU General Public License as published by the Free ++; Software Foundation; either version 3, or (at your option) any later ++; version. ++; ++; GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++; WARRANTY; without even the implied warranty of MERCHANTABILITY or ++; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++; for more details. ++; ++; You should have received a copy of the GNU General Public License ++; along with GCC; see the file COPYING3. If not see ++; <http://www.gnu.org/licenses/>. ++ ++pthread ++Driver ++ ++rdynamic ++Driver ++ ++; Retain blank line above |