RELEASE NOTES ============= Product : GNU C/C++ Compiler Toolkit for ARC Processors MileStone : Release of the gcc-4.2.1 based toolchain Version : GNU Binutils 2.15-celunite-release-20071106 GCC version 4.2.1 (Celunite-Release-20071106) Date : November 06, 2007 Table of Contents ----------------- 1. Overview 2. Features Supported 3. Major changes in this release 4. Known Limitations and Defects 5. Contact Information 6. Reference 1. Overview ------------ This is the first release of the gcc-4.2.1 based compiler toolchain for the ARC cores. For limitations and known issues with this release please refer to section 4 below. 2. Features Supported ---------------------- 2.1 Features of 4.2.1 release #1 (November 06 2007) ----------------------------------------------------------- * GCC for ARC has been upgraded to gcc-4.2.1 * The back-end has been completely reviewed and revamped to provide better coverage of the ARCompact instruction set. * Small-data support has been added to the toolchain. * Support for generation of constant-pools has been added to the toolchain. * Support for generating millicode for save-restore in pro/epilog has been added to the compiler. * Instruction costs have been modified for better instruction selection when optimizing for size. * Support for trampolines has been added to the compiler. * Bug in generation of pre-compiled headers has been fixed. * uClibc has been modified to build with gcc-4.2 * FPX support has been incorporated for ARC. * Support for generation of ARC SIMD extension instructions by using new built-in functions has been incorporated into the toolchain. * New builtin functions have been added for generation of the following instructions: - RTIE - SYNC * The following target switches have been added to the toolchain: -mno-const-pool -mspfp -mspfp_fast -mspfp_compact -mdpfp -mdpfp_fast -mdpfp_compact -mno-sdata -msimd -mno-millicode For description of these switches, please refer to gcc info pages for this release, or the ARC GNU Tools User Guide included in this release. * Separate crosstool scripts for generation of linux-uclibc toolchains with and without dynamic-linking support. * Various bug fixes and code cleanups. * Overall incremental front-end changes in gcc since the 3.4.x branch can be seen at: a) http://gcc.gnu.org/gcc-4.0/changes.html b) http://gcc.gnu.org/gcc-4.1/changes.html c) http://gcc.gnu.org/gcc-4.2/changes.html 3. Major back-end changes in this release ----------------------------------------- * Several code generation changes have been made for constant-pool generation. * The linux-uclibc toolchain generates dynamically linking executables by default. For static binaries, the '-static' flag has to be passed explicitly. For the list of changes in the earlier releases, please see the corresponding release notes. 4. Known Limitations and Defects -------------------------------- * C++ support is not available on uClinux target. * Stack protection library (libssp) has been disabled. * Sibling-calls have been disabled for PIC. * Using simd data types in non-builtin operations causes compiler crashes in some cases. 5. Contact Information ---------------------- If you have a support contract, please use the support site at http://arc-linux.org. 6. References ------------- * ARC700 ISA Reference Manual * ARC GNU Tools User Guide * Sys V ABI Extension for ELF for the ARC * ARC Floating Point Reference * Aurora SIMD extensions to the ARC700 ISA. * The finite state automaton based pipeline hazard recognizer and instruction scheduler in GCC - by Vladimir N. Makarov (GCC Summit 2003 proceedings) [Link: http://www.gccsummit.org/2003 ] Tools Team Celunite Soft Systems India Pvt. Ltd.