This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][4.8][4.7][4.6] Make -shared-libgcc the default on Cygwin.


On 12/03/2013 08:59, Richard Biener wrote:
> On Tue, Mar 12, 2013 at 2:44 AM, Dave Korn <dave.korn.cygwin@gmail.com> wrote:
>>     Hello list,
>>
>>   The attached patch makes -shared-libgcc the default for Cygwin.  This is
>> something that I should have done some time ago, as shared libgcc on Cygwin is
>> more than mature.  What's more, it is vital for reliable compilation of
>> applications that throw exceptions or share TLS variables from DLLs into the
>> main executable; at present these compile incorrectly without an explicit
>> -shared-libgcc.  For instance, the just-released MPFR-3.1.2 doesn't work
>> without it.
>>
>>   Given that it's a very simple tweak to the compiler specs on a single
>> platform only, I would like to use my target maintainer's discretion to apply
>> it even at this late stage, but I figure it's so close to RC1 that I should
>> ask the RM's permission anyway.
>>
>>   I'd also like to backport it to all the currently-open branches.
>>
>> gcc/ChangeLog
>>
>> 2013-03-12  Dave Korn  <dave.korn.cygwin@....>
>>
>>         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
>>         default setting.
>>
>>   Is this OK by everyone?
> 
> Ok for trunk (4.8).  Please add a documentation entry to gcc-4.8/changes.html.

  Committed revision 196634, with the attached documentation update and cvs
log entry:

	* htdocs/gcc-4.8/changes.html: Add OS-specific section and entry
	for Windows (Cygwin).

> I'm not sure whether this kind of stuff should change on a release branch,
> I'll defer to others for this.  Still, if you backport it, add a
> gcc-4.x/changes.html item to the sub-release sections.

  Would still like to do this, as it's important for correctness in anything
that links against shared libraries, and it'll only have to be maintained as a
local patch to any Cygwin distro version of GCC if we don't.

    cheers,
      DaveK

Index: htdocs/gcc-4.8/changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.8/changes.html,v
retrieving revision 1.105
diff -p -u -r1.105 changes.html
--- htdocs/gcc-4.8/changes.html	27 Feb 2013 19:24:43 -0000	1.105
+++ htdocs/gcc-4.8/changes.html	13 Mar 2013 15:19:44 -0000
@@ -805,6 +805,20 @@ B b(42); // OK
     command-line option.</li>
   </ul>
 
+<h2 id="os">Operating Systems</h2>
+
+<h3 id="windows">Windows (Cygwin)</h3>
+  <ul>
+    <li>Executables are now linked against shared libgcc by default.
+    The previous default was to link statically, which can still be
+    done by explicitly specifying -static or -static-libgcc on the
+    command line.  However it is strongly advised against, as it
+    will cause problems for any application that makes use of DLLs
+    compiled by GCC.  It should be alright for a monolithic stand-alone
+    application that only links against the Windows OS DLLs, but
+    offers little or no benefit.</li>
+  </ul>
+
 <!--
 <h2>Documentation improvements</h2>
 -->

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]