On 12/03/2013 08:59, Richard Biener wrote: > On Tue, Mar 12, 2013 at 2:44 AM, Dave Korn <dave.korn.cyg...@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> -->