diff options
author | Yaakov Selkowitz <yselkowi@redhat.com> | 2014-08-19 15:21:22 +0000 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2014-08-19 17:21:22 +0200 |
commit | 301f44023e0c46542329b5f77763685529a46267 (patch) | |
tree | 120983161c5b777e07ffab4db007b3cf1f6d8d29 /gcc | |
parent | 8020a4d5c58aed7abfe15c681e62f133f87e788e (diff) | |
download | gcc-301f44023e0c46542329b5f77763685529a46267.zip gcc-301f44023e0c46542329b5f77763685529a46267.tar.gz gcc-301f44023e0c46542329b5f77763685529a46267.tar.bz2 |
config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
* config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
(extra_options): Add i386/cygwin.opt.
* config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
(CPP_SPEC): Accept -pthread.
(LINK_SPEC): Ditto.
(GOMP_SELF_SPECS): Update comment.
* config/i386/cygwin.opt: New file for -pthread flag.
From-SVN: r214161
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config.gcc | 6 | ||||
-rw-r--r-- | gcc/config/i386/cygwin.h | 6 | ||||
-rw-r--r-- | gcc/config/i386/cygwin.opt | 24 |
4 files changed, 42 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bdc40fe..b71c1c7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com> + + * config.gcc (*-*-cygwin*): Use __cxa_atexit by default. + (extra_options): Add i386/cygwin.opt. + * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared. + (CPP_SPEC): Accept -pthread. + (LINK_SPEC): Ditto. + (GOMP_SELF_SPECS): Update comment. + * config/i386/cygwin.opt: New file for -pthread flag. + 2014-08-19 David Malcolm <dmalcolm@redhat.com> * df-core.c (DF_REF_INSN): New, using a checked cast for now. diff --git a/gcc/config.gcc b/gcc/config.gcc index e1f1532..6862c127 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1568,13 +1568,14 @@ 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" if test x$enable_threads = xyes; then thread_file='posix' fi + default_use_cxa_atexit=yes use_gcc_stdint=wrap ;; x86_64-*-cygwin*) @@ -1583,13 +1584,14 @@ x86_64-*-cygwin*) 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_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" if test x$enable_threads = xyes; then thread_file='posix' fi + default_use_cxa_atexit=yes use_gcc_stdint=wrap tm_defines="${tm_defines} TARGET_CYGWIN64=1" ;; diff --git a/gcc/config/i386/cygwin.h b/gcc/config/i386/cygwin.h index 0ea29ce..14891d8 100644 --- a/gcc/config/i386/cygwin.h +++ b/gcc/config/i386/cygwin.h @@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see #undef CPP_SPEC #define CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} \ %{!ansi:-Dunix} \ + %{pthread:-D_REENTRANT} \ %{mwin32:-DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ %{!ansi:-DWINNT}} \ %{!nostdinc:%{!mno-win32:-idirafter ../include/w32api%s -idirafter ../../include/w32api%s}}\ " @@ -40,7 +41,7 @@ along with GCC; see the file COPYING3. If not see #define STARTFILE_SPEC "\ %{!shared: %{!mdll: crt0%O%s \ %{pg:gcrt0%O%s}}}\ - crtbegin.o%s" + %{shared:crtbeginS.o%s;:crtbegin.o%s}" #undef ENDFILE_SPEC #define ENDFILE_SPEC \ @@ -77,6 +78,7 @@ along with GCC; see the file COPYING3. If not see #undef LIB_SPEC #define LIB_SPEC "\ %{pg:-lgmon} \ + %{pthread: } \ -lcygwin \ %{mwindows:-lgdi32 -lcomdlg32} \ -ladvapi32 -lshell32 -luser32 -lkernel32" @@ -129,7 +131,7 @@ along with GCC; see the file COPYING3. If not see /* Every program on cygwin links against cygwin1.dll which contains the pthread routines. There is no need to explicitly link them - and the -pthread flag is not recognized. */ + and the -pthread flag is accepted only for compatibility. */ #undef GOMP_SELF_SPECS #define GOMP_SELF_SPECS "" #undef GTM_SELF_SPECS diff --git a/gcc/config/i386/cygwin.opt b/gcc/config/i386/cygwin.opt new file mode 100644 index 0000000..4a67b8f --- /dev/null +++ b/gcc/config/i386/cygwin.opt @@ -0,0 +1,24 @@ +; Cygwin-specific options. + +; Copyright (C) 2013-2014 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 + +; Retain blank line above |