X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_50,KAM_STOCKTIP X-Spam-Check-By: sourceware.org X-SWARE-Spam-Status: No, hits=1.3 required=5.0 tests=AWL,BAYES_20,KAM_STOCKTIP,SPF_PASS Message-Id: Date: Thu, 12 Mar 2009 07:30:09 +0000 From: Dave Korn User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: [ANNOUNCEMENT] Updated: experimental package: gcc4-4.3.2-2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Reply-To: cygwin AT cygwin DOT com Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I have just uploaded an updated GCC-4 package to cygwin.com. It will be arriving at your favourite mirror next time it synchronizes itself with the official Cygwin repository. This is a major update to the Cygwin toolchain. It introduces a full complement of shared language-dependent runtime libraries, which aligns the Cygwin environment more strongly with the Linux way of doing things. This package also introduces "alternatives" shortcuts which allow user selection of gcc-3 or gcc-4 as the default system compiler when invoked without any version suffix. Currently, gcc-3 is still the default, but this will change when the compiler becomes considered production-stable. **** IMPORTANT NOTE ON THE ALTERNATIVES SYSTEM: The alternatives system being introduced is currently an experimental feature, pending the decision to switch to gcc-4 as system default. No support for switching versions is supplied in this build of the packages; the next release will include some support scripts to automate the process for users. Generally, you should switch all the compiler packages simultaneously to either -3 or -4 versions; mixed usages aren't guaranteed to work. A bash command line like for x in g++ g77 gcc gcj gfortran gdc gnat gpc ; do /usr/sbin/alternatives --config $x ; done will let you manually configure all languages at once. Note that not all language compilers exist in both -3 and -4 versions; fortran changes names between the two versions, so doesn't clash, and D and Pascal only exist in -3 versions currently. **** IMPORTANT NOTE FOR GNAT USERS: The GNAT tools do not understand the version-suffix system used by the other gcc compilers in the package. If you attempt to invoke gnatmake-4, for example, it will attempt to invoke plain unsuffixed names like "gnatchop", "gnatbind" as subexecutables. In consequence, only the currently-selected version of gnat chosen by the alternatives system can run correctly at any given time; you should always configure the GNAT alternatives to select as default the version you wish to use, by invoking /usr/sbin/alternatives --config gnat The to-do list for the first fully stable release currently stands at: - - Implement improved weak symbol handling in Win32 PE binutils, to resolve C++ operator new/delete interposition problem with shared libstdc++. - - Add support scripts for default compiler switching. If there's anything else you think is important, please contact the Cygwin mailing list with your suggestion. ------------------------------ooOOOoo------------------------------ PLEASE SEND BUG REPORTS, PROBLEMS, ETC. TO THE CYGWIN MAILING LIST. ------------------------------ooOOOoo------------------------------ OBTAINING THE RELEASE ===================== To update your installation, click on the "Install Cygwin now" link on the http://cygwin.com/ web page. This downloads setup.exe to your system. Then, run setup.exe, fill in all of the options, and make appropriate choices on the "Select Packages" screen. Because this is a full "current" version release, any gcc packages you currently have installed will be automatically selected to update, but you'll need to select the Devel category to see gcc and friends if you don't have them already installed. NEWS ==== > From the README: (with some minor tweaks added in passing). gcc4-4.3.2-2 - ------------------------------------------ This is a major update to the experimental GCC 4 package for Cygwin. In this release, all the major runtime libraries are shipped as DLLs as well as in static archive form. It can fully co-exist with a pre-existing Cygwin gcc-3.4.4 installation. Static and shared linking of applications. ========================================== Plain C applications will, by default, be linked statically against libgcc as previously. To link against the shared libgcc DLL, '-shared-libgcc' must be manually specified on the command-line. For the other languages with large runtime libraries, the situation is reversed. By default, user applications will be linked against the DLLs, unless the option '-static' is supplied to GCC during the build. If linking statically against libstdc++, you should also use '-static-libgcc' to link likewise against libgcc, or you will experience segfaults on program termination. Note that you really do want to use these shared libraries where possible. The following example demonstrates why: Admin AT ubik /tmp/hw $ cat h.cpp #include using namespace std; int main (int argc, const char **argv) { cout << "Hello, world!" << endl; return argc - 1; } Admin AT ubik /tmp/hw $ g++ h.cpp -g -O2 -o h.exe -Wl,--enable-auto-import Admin AT ubik /tmp/hw $ strip ./h.exe Admin AT ubik /tmp/hw $ ./h.exe Hello, world! Admin AT ubik /tmp/hw $ ls -l ./h.exe - -rwxr-xr-x 1 DKAdmin None 4608 Mar 12 06:52 ./h.exe Admin AT ubik /tmp/hw $ g++ h.cpp -g -O2 -o h.exe -static Admin AT ubik /tmp/hw $ strip ./h.exe Admin AT ubik /tmp/hw $ ./h.exe Hello, world! Admin AT ubik /tmp/hw $ ls -l ./h.exe - -rwxr-xr-x 1 DKAdmin None 284160 Mar 12 06:52 ./h.exe Admin AT ubik /tmp/hw $ WARNING: C++ Non-standards-compliance issue with shared libstdc++ DLL. ====================================================================== Static linking has until now been the default for all Cygwin GCC compilers, but it has problems with C++ string and exception handling and RTTI. Linking against shared runtime libraries resolves these issues, but currently causes a regression that renders the compiler non-compliant with the C++ standard: it is no longer possible to fully override operators new, new[], delete and delete[]. Although user-supplied overrides may be invoked in the user's own code, they will not override calls from within libstdc++ itself, which will still invoke the default system implementations. This happens because GCC relies on the weak linking facility of ELF formats to enable the runtime override and interposition of the user's versions, and Windows' PE-COFF format lacks the necessary support to provide an equivalent implementation directly. In the long run we hope to provide the necessary support in binutils to make this work correctly, but for now the C++ compiler is only strictly compliant when linking statically. WARNING: Experimental release, potential back-compat issues or ABI breaks. ========================================================================== The same caveats apply as did to the earlier releases: " Please be aware that this is highly experimental; anything built with it is not guaranteed to be forwardly-compatible with the eventual full release. ABI details may change; compiler packaging may change. " In particular, libgcc becomes a versioned DLL in this release. The old unversioned cyggcc_s.dll will be retained as an obsolete package to aid backward compatibility during the transition. As this is all still experimental, please watch out for bugs. Anything abnormal should be reported, in the first instance, to the main Cygwin mailing list. Cygwin port maintained by: Dave Korn Please address all questions to the Cygwin mailing list at This is the key used for signing Cygwin GCC releases: pub 1024D/6A388C3E 2008-05-31 uid Dave Korn (release signing key) sub 4096g/D4E41590 2008-05-31 Also available at a key-server near you! - - -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.9 (Cygwin) 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 mNkAoLd0hCE1VdOP7GK49mYaq8nFRuex =CI19 - - -----END PGP PUBLIC KEY BLOCK----- If you have questions or comments, please send them to the cygwin mailing list at: cygwin AT cygwin DOT com . *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO *** If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format: cygwin-announce-unsubscribe-you=yourdomain DOT com AT cygwin DOT com If you need more information on unsubscribing, start reading here: http://sourceware.org/lists.html#unsubscribe-simple Please read *all* of the information on unsubscribing that is available starting at this URL. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Cygwin) iEYEARECAAYFAkm4tIYACgkQTdKC5Wo4jD7AuwCghULV4D+n4NR8qrtrkeUCIA0E zOcAn216+7by/K2Zvb9Jil9twV6Vo2l7 =I+KQ -----END PGP SIGNATURE----- -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/