From: Yaakov Selkowitz Date: Tue, 19 Aug 2014 15:21:22 +0000 (+0000) Subject: config.gcc (*-*-cygwin*): Use __cxa_atexit by default. X-Git-Tag: upstream/12.2.0~61079 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=301f44023e0c46542329b5f77763685529a46267;p=platform%2Fupstream%2Fgcc.git config.gcc (*-*-cygwin*): Use __cxa_atexit by default. 2014-08-19 Yaakov Selkowitz * 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 --- 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 + + * 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 * 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 +; . + +pthread +Driver + +; Retain blank line above