Message-Id: <199911091916.OAA20478@delorie.com> From: pavenis AT lanet DOT lv To: djgpp-announce AT delorie DOT com Date: Tue, 9 Nov 1999 18:21:08 +0200 Content-type: text/plain; charset=US-ASCII Subject: ANNOUNCE: gcc-2.95.2 for DJGPP Reply-To: djgpp AT delorie DOT com This is an announcement of DJGPP port of gcc-2.95.2 and some additional packages: GCC-2.95.2 GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection. It includes C, C++, Objective-C and GNU Fortran compilers with corresponding libraries. There are too much new features in gcc-2.95.2 against gcc-2.8.1 and egcs-1.1.2 that it's difficult to name them all here. libg++-2.8.1.3 This is addon for current gcc releases (e.g. gcc-2.95.2) and libstdc++. It is needed only if your applications depend on libg++ and you cannot easily remove the dependency on libg++. The standalone libg++ is no longer needed. Note that this package is no longer being maintained. which are available from DJGPP distribution in Simtelnet (and mirror sites) in directory v2gnu: ftp://ftp.cdrom.com/pub/simtelnet/gnu/djgpp/v2gnu For information what's new in gcc-2.95.2 and gcc-2.95 see http://egcs.cygnus.com/gcc-2.95/gcc-2.95.2.html http://egcs.cygnus.com/gcc-2.95/gcc-2.95.html There are 7 archives: readme-gcc295.txt - readme file from DJGPP port of GCC-2.95.2. It's in separate file to avoid need to download large archives to get this file. gcc2952s.zip - sources of gcc-2.95.2 and libg++-2.8.1.3 for DJGPP. I put all sources in a single archive. This file is only needed if You're want to rebuild gcc-2.95.2 from sources. gcc2952b.zip - binaries of C compiler gpp2952b.zip - binaries of C++ compiler (needs gcc2952b.zip) g772952b.zip - binaries of Fortran compiler (needs gcc2952b.zip) objc2952.zip - binaries of Objective C compiler (needs gcc2952b.zip) lgp2952b.zip - binaries and header files of libg++-2.8.1.3 (useless without gcc2952b.zip and gpp2952b.zip) gcc2951s2.zip - shell script and patches for original gcc-2.95.2 (and libg++-2.8.1.3) sources. I used them to generate gcc-2.95.2 sources for DJGPP (later archived in gcc2952s.zip). (Note that CHILL and JAVA compiler binaries are not made available as they are not ready for general use, more exactly not tested at all. I don't know when this will change. I don't have any plans in that direction) Files user need: Programming languages Needed files C gcc2952b.zip C++ gcc2952b.zip, gpp2952b.zip (and possibly also lgp2952b.zip) Fortran gcc2952b.zip, g772952b.zip Objective-C gcc2952b.zip, objc2952.zip Pascal Sorry, not supported. Use port of egcs-1.1.2 instead NOTE: gcc2952b.zip contains file cxxfilt.exe and there is file with same name in binutils (bnu281b.zip). You can safely overwrite the old one. For more information about this port see archive gnu/gcc-2.952/readme.DJGPP after unpacking either gcc2952b.zip or gcc2952s.zip or get file readme-gcc2952.txt from directory v2gnu in DJGPP distribution Also please DON'T mix C++ libraries (or object files) built with different compiler versions. C++ sources should be recompiled (seems that there is no need to do this for C sources). System requirements: DJGPP-2.02 or above (otherwise exceptions will not work at all) binutils-2.8.1 (2.9.1 recommended however official port is not yet available) Some warning for users of C++. C++ compiler in gcc-2.95.2 does more strict syntax checking as earlier versions of gcc and egcs. As result errors are generated in many places where earlier one got warnings. Happy hacking Andris Pavenis ------------------------------------------------------------------------- Here is official announcement of gcc-2.95.2 ------------------------------------------------------------------------- GCC 2.95.2 October 27, 1999 The GNU project and the GCC developers are pleased to announce the release of GCC version 2.95.2. GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection. This is a minor release to address several bugs in the GCC version 2.95.1 release. The -fstrict-aliasing is not enabled by default for GCC 2.95.2. While the optimizations performed by -fstrict-aliasing are valid according to the C and C++ standards, the optimization have caused some problems, particularly with old non-conforming code. The GCC developers are experimenting with ways to warn users about code which violates the C/C++ standards, but those warnings are not ready for widespread use at this time. Rather than wait for those warnings the GCC developers have choosen to disable -fstrict-aliasing by default for the GCC 2.95.2 release. We strongly encourage developers to find and fix code which violates the C/C++ standards as -fstrict-aliasing may be enabled by default in future releases. Use the option -fstrict-aliasing to re-enable these optimizations. * Generic bugfixes and improvements + Fix incorrectly optimized memory reference in global common subexpression elimination (GCSE) optimization pass. + Fix code generation bug in regmove.c in which it could incorrectly change a "const" value. + Fix bug in optimization of conditionals involving volatile memory references. + Avoid over-allocation of stack space for some procedures. + Fixed bug in the compiler which caused incorrect optimization of an obscure series of bit manipulations, shifts and arithmetic. + Fixed register allocator bug which caused teTeX to be mis-compiled on Sparc targets. + Avoid incorrect optimization of degenerate case statements for certain targets such as the ARM. + Fix out of range memory reference in the jump optimizer. + Avoid dereferencing null pointer in fix-header. + Fix test for GCC specific features so that it is possible to bootstrap with gcc-2.6.2 and older versions of GCC. + Fix typo in scheduler which could potentially cause out of range memory accesses. + Avoid incorrect loop reversal which caused incorrect code for certain loops on PowerPC targets. + Avoid incorrect optimization of switch statements on certain targets (for example the ARM). * Platform specific bugfixes and improvements + Work around bug in Sun V5.0 compilers which caused bootstrap comparison failures on Sparc targets. + Fix Sparc backend bug which caused aborts in final.c. + Fix sparc-hal-solaris2* configuration fragments. + Fix bug in sparc block profiling. + Fix obscure code generation bug for the PARISC targets. + Define __STDC_EXT__ for HPUX configurations. + Various POWERPC64 code generation bugfixes. + Fix abort for PPC targets using ELF (ex GNU/Linux). + Fix collect2 problems for AIX targets. + Correct handling of .file directive for PPC targets. + Fix bug in fix_trunc x86 patterns. + Fix x86 port to correctly pop the FP stack for functions that return structures in memory. + Fix minor bug in strlen x86 pattern. + Use stabs debugging instead of dwarf1 for x86-solaris targets. + Fix template repository code to handle leading underscore in mangled names. + Fix weak/weak alias support for OpenBSD. + GNU/Linux for the ARM has C++ compatible include files. * Language & Runtime specific fixes. + Fix handling of constructor attribute in the C front-end which caused problems building the Chill runtime library on some targets. + Fix minor problem merging type qualifiers in the C front-end. + Fix aliasing bug for pointers and references (C/C++). + Fix incorrect "non-constant initializer bug" when -traditional or -fwritable-strings is enabled. + Fix build error for Chill front-end on SunOS. + Do not complain about duplicate instantiations when using -frepo (C++) + Fix array bounds handling in C++ front-end which caused problems with dwarf debugging information in some circumstances. + Fix minor namespace problem. + Fix problem linking java programs. The whole suite has been extensively [1]regression tested and [2]package tested. It should be reliable and suitable for widespread use. The GCC 2.95 release has several new optimizations, new targets, new languages and other new features as compared to EGCS 1.1 or GCC 2.8. See the [3]new features page for a more complete list of new features found in the GCC 2.95 releases. The sources include installation instructions in both HTML and plaintext forms in the install directory in the distribution. However, the most up to date [4]installation instructions and [5]build/test status are on the web pages. We will update those pages as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, test results, bugfixes, etc to GCC. This [6]amazing group of volunteers is what makes GCC successful. And finally, we can't in good conscience fail to mention some [7]caveats to using GCC 2.95.2. Download GCC 2.95.2 from the [8]GNU FTP server (ftp://ftp.gnu.org) Download GCC 2.95.2 from the [9]GCC/EGCS FTP server (ftp://gcc.gnu.org) [10]Find a GNU mirror site [11]Find a GCC/EGCS mirror site For additional information about GCC please see the [12]GCC project web server or contact the [13]GCC development mailing list. _________________________________________________________________ Last modified on October 25, 1999. References 1. http://gcc.gnu.org/gcc-2.95/regress.html 2. http://gcc.gnu.org/gcc-2.95/othertest.html 3. http://gcc.gnu.org/gcc-2.95/features.html 4. http://gcc.gnu.org/install/index.html 5. http://gcc.gnu.org/gcc-2.95/buildstat.html 6. http://gcc.gnu.org/thanks.html 7. http://gcc.gnu.org/gcc-2.95/caveats.html 8. ftp://ftp.gnu.org/pub/gnu/gcc/ 9. ftp://gcc.gnu.org/pub/gcc/releases/index.html 10. http://www.gnu.org/order/ftp.html 11. http://gcc.gnu.org/mirrors.html 12. http://gcc.gnu.org/index.html 13. mailto:gcc AT gcc DOT gnu DOT org