On 12/03/2013 08:59, Richard Biener wrote:
> On Tue, Mar 12, 2013 at 2:44 AM, Dave Korn <[email protected]> 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>
-->