GCCSDK Releases
The last GCCSDK Release is GCCSDK GCC 3.4.6 Release 2.
It is strongly recommended that you do not use the older releases; they are maintained here mainly for reference. The older versions may contain serious bugs or generate incorrect code. If there's any reason you cannot use the latest release, then please inform the GCCSDK developers.
GCCSDK GCC 3.4.6 Release 2
Released on 17 September 2006. Mainly an interim bug fix release.
- GCC compilers fixes:
- Correction of Release 1 filename handling regression with GCC.
- Enabling of throwback for C preprocessor.
- Pass gcc include paths through to 'as' assembler. There are known limitations on the current assembler include path support concerning Unix and RISC OS style pathname syntax so we recommend using path variables when you want to specify assembler include directories.
E.g.: gcc -IOSLib: -c source.s -o source.o
- Assembler fixes:
- Allow suffix swapping in its include filenames and adding hdr/Hdr suffixes to its default suffix swap list. This allows RISC OS and cross compilation of same assembler sources which include OSLib headers.
- No longer supporting GCC @ comments. This is no longer needed for the GCCSDK build procedure and allows the @ as built-in variable by default i.e. without having to resort to the -objasm option.
- Assembler now supports all ARMv5E (XScale) instructions (i.e. not including the Thumb instructions).
- Fixed several miss-assemblings or unsupported corner cases: LFMFD, LDC/STC, PLD, LDR/STR(H,SH,SB), etc.
- Added testcases for future regression tests.
- UnixLib fixes:
- Improvement of backtrace and error handling: showing info on all current threads and demangled C++ function names.
- readdir: fix in its suffix swapping code and improved POSIX behaviour.
- unixify: fix memory leak and return value.
- riscosify: avoid using hard-wired "/home/riscos/env/" path.
- Stability fix when <Alt><Break> is used.
- Conditional support for XScale compilation.
- Librarian fixes:
- Replacing AOF object in ALF file didn't work.
- Several code fixes improving its stability.
- Linker fixes:
- 'hide' edit command did not always work.
- Fix for C++ using SharedCLibrary. Examples Makefile updated to build hello world examples in different ways.
- Various documentation updates.
GCCSDK cross-compilation improvements:
- Improved memory debugging support, allowing use of dmalloc instead of Fortify.
- Allow building of processor specific toolchains using the --with-arch, --with-tune and --with-float configure options. In particular, allow building of GCC and UnixLib which, apart from ARMv3, also target ARMv3M (like ARM7), ARMv4 (like StrongARM) and ARMv5TE (like XScale) architectures by default.
- Improvements of the "porting scripts" which are also used by the GCCSDK Autobuilder:
- Autobuilder now uses separate X libraries instead of relying on monolithic X tree. Many other autobuilder packages updated. Non-Debian source fetcher improved. Many dependencies added so that many packages can be built with just one command.
- Faster --ro-recursive implementation.
- Parallel build support.
- Created pkg-config wrapper to make sure only cross-compiled pkg-config files are found.
GCCSDK GCC 3.4.6 Release 1
Released on 12 June 2006. This is the last upstream compiler release in the 3.4.x series, and is largely a feature addition release with a small number of non-critical bug fixes. Most future development upstream and for RISC OS will focus on GCC 4.x series compilers. In particular, the forthcoming GCC 4.2 version. There may be future releases of GCC 3.4.6 for RISC OS with bug fixes if required.
- Update to GCC 3.4.6 release.
- cmunge: Upgraded to v0.76 which has fixes for the carry-capable veneer return problem and a workaround for the broken handling of the system call in Pace SCL seen on Iyonix. All details in !gcc.docs.CMunge.History.
- Provided two new GCC options -mlibrary-static-data-offset and -mclient-static-data-offset (latter being default) which when compiling module code to be able to use the library static data offset (at sl-540) instead of the client static data offset (sl-536). Graham Shaw.
- Added resgen, a tool to create an AOF file encapsulating one or more files ready for (de)registering with ResourceFS.
- Several bug fixes and enhancements were done:
- as : solved bug #149; support for offset parameter in ALIGN; support for ALIGN AREA attribute; alignment happens with zero bytes instead of random bytes; support for rotated constants.
- decaof : made it more robust.
- drlink : new option -strict to treat warnings as errors. The linker invoked by gcc will add the option -strict when environment variable TLINK_STRICT has been defined (value unimportant).
- gcc : better -mapcs-26 vs -mapcs-32 behaviour but note that -mapcs-26 support is deprecated.
- gcc/as/drlink : RISC OS binaries have support for reading/writing "program/c" RISC OS files in addition to "c.program" files (but the command line argument still specifies them as "program.c").
- libfile : increased compatibility with Acorn/Castle libfile version.
- UnixLib : bug fix details in separate !gcc.docs.UnixLib.Changes file.
- SharedUnixLibrary (v1.10) : support for RISC OS versions where the module private word is in USR read-only memory.
- Various Autobuiler and porting-tool enhancements.
- GCCSDK build enhancements:
- Move CVS to SVN changes.
- GCC ARM backend/drlink : support for 64-bit platforms (x86_64).
- Solaris 8 SPARC support
GCCSDK GCC 3.4.5 Release 1
Released on 15 February 2006. This is the first and most probably the only release of GCC 3.4.5 for RISC OS.
Featuring:
- Update to the GCC 3.4.5 release.
- RISC OS modules can now be created in C++ too.
- cmunge: Upgraded to v0.72 which now contains GCCSDK support and several bugs fixes and enhancements.
- Porting tools are now using the environment variables GCCSDK_INSTALL_ENV and GCCSDK_INSTALL_CROSSBIN to locate their files. This allows easy switching between multiple cross-compiler versions or installation at non-default directories.
- Included Andreas Dehmel's DRenderer v0.52 source & binary which recently became GPL licensed. Any future development of DRenderer can happen in the GCCSDK project.
Important bug fixes:
- Longstanding Fortran COMMON bug is fixed.
- Calling SharedCLibrary functions (-mlibscl option) having one or more float arguments resulted in wrong behaviour. This is now fixed.
- as: Under some circumstances, reserved AOF symbol attributes were set and this could be triggered too by GCC usage of 'as'. drlink: A warning is given when unsupported/reserved AOF symbol attributes are detected.
- UnixLib's regex implementation is now derived from the PostgreSQL codebase resulting in significantly faster timings.
- UnixLib got several bug fixes which improved its stability and its API compliance.
- The module SharedUnixLibrary got two important bug fixes resulting in version 1.09.
- Removed the old (26 bit only) rink version as there is now elsewhere a 26/32 bit neutral version.
GCCSDK GCC 3.4.4 Release 3
Released on 8 July 2005. This is the third full release of GCC 3.4.4 to RISC OS.
- This is a full release of the upstream 3.4.4 compiler and the first released version of GCC to have RISC OS module support.
- This version also contains more fixes and improvements to GCC and UnixLib. See the 'Changes' document inside !gcc for more information.
- This release includes SharedUnixLibrary 1.07.
GCCSDK GCC 3.4.4 Release 2
Released on 6 May 2005. This is the second full release of GCC 3.4.4 to RISC OS.
- Despite the name, this is technically a pre-release version of the upstream 3.4.4, but is simply labelled 3.4.4 for RISC OS purposes. We consider this compiler stable.
- This version contains more fixes and improvements to GCC and UnixLib than any previous version. See the 'Changes' document inside !gcc for more information.
- This release includes SharedUnixLibrary 1.06.
GCCSDK GCC 3.4.4 Release 1
Released on 25 December 2004. This is the first release of GCC 3.4.4 for RISC OS.
- As with 3.4.1, there are again extensive improvements to UnixLib, and some important GCC and toolchain bug fixes.
GCCSDK GCC 3.4.1 Release 1
Released on 5 October 2004. This is the first and only release of GCC 3.4.1 for RISC OS. This GCC release was taken after abandoning the 3.3 branch.
- It contains many extensive improvements to UnixLib.
GCCSDK GCC 3.3.3 pre-release 2
Released on 18 April 2004. This is the second release candidate of the first big update to RISC OS GCC in two years. It is is considered stable enough for general use. It contains a C, C++ and Fortran 77 compiler along with an assembler, a linker and the standard run-time libraries, Libstdc++ and a pre-release of UnixLib 4.0.
The Fortran compiler is an optional download and has not undergone much testing. You are welcome to try it.
This release contains bug fixes for RISC OS filename handling, an interactivity problem with AMU and updates for diffutils, flex, grep, make, patch and sed.
GCCSDK GCC 2.95.4 Release 3
Released on 5 January 2003. This is the third release of GCC 2.95.4 for RISC OS. The reason for release is to correct a bug in the backend assembler that can cause miscompilation of pre/post index addressing in LDR/STR instructions.
The Fortran compiler is an optional download but it is still not supported. The G95 compiler is improving and now supports basic code generation, but is not anywhere near usable yet.
GCC 2.7.2.1
This was the first compiler port. It is considered stable and functional. There are a few minor installation problems. The compiler has source code translators for C, C++, Pascal, Ada 9X and Fortran 77.
Its Unixlib contains many bugs, and it should be avoided.
This distribution has not been updated since April 1997.