Noteworthy changes to the RISC OS GCCSDK

RISC OS GCC release 3.4.1 release 1 (released 05 October 2004)
=======================================

* gcc: Updated to version 3.4.1 to make the distribution current and
  bring in speed improvements and better optimisation.  The 3.3 release
  branch was abandoned in favour of this.

* gcc: Default is now to tune for XScale - this will improve performance
  on StrongARM and XScale processors - the most common ARM processors running
  RISC OS.

* Many substantial changes and improvements - see docs.ULChanges for the
  complete list.  Highlights include:

  - Integrated iconv support via an external module.
  - Much improved handling of child processes, avoiding previous
    potential aborts.
  - Miscellaneous pthreads improvements including addition of semaphore
    support.
  - Complete set of 64-bit maths functions.
  - Considerably improved compatibility with glibc headers, easing
    porting of many programs.
  - Improved terminal handling.
  - /dev/dsp support meaning some Unix programs using sound will work
    without modification.
  - Further improvements to filename translation.
  - General improvements to source formatting and comments.        


RISC OS GCC release 3.3.3 pre-release 2 (released 18 April 2004)
=======================================

* diffutils: Upgrade to version 2.8.1.  Add documentation.

* flex: Upgrade to version 2.5.31.  Add documentation.

* grep: Upgrade to version 2.5.  Add documentation.

* gperf: Add documentation.

* make: Upgrade to version 3.80.  Add documentation.

* patch: Upgrade to version 2.5.4.

* sed: Upgrade to version 4.0.9.  Add documentation.

* gcc: Fix accidental commit that prevented error messages for compiled
  files from being displayed.

* unixlib: Preserve DDEUtils Prefix upon parent process exit.  This fixes
  an interaction bug between AMU and gcc causing files to be stored in
  the wrong place.

* drlink: Fix handling of RISC OS filenames.

RISC OS GCC release 3.3.3 pre-release 1 (released 20 March 2004)
=======================================

* unixlib: Path <Unix$Path> has been replaced by <UnixLib$Path>.  All
  makefiles that previously used the path Unix: will have to be updated
  to use UnixLib: instead.

* gcc: updated to release 3.3.3 20040214.  The Standard C++ Library
  has undergone a re-write, meaning any applications compiled with this
  C++ compiler are not compatible with previous GCC releases.

* unixlib: POSIX thread (pthread) support

* gcc, unixlib, libscl: Default build is now APCS-32.  APCS-26 builds are
  deprecated and will be removed from a future version.

* gcc: C++ and Fortran applications can now be compiled to use the
  SharedCLibrary (libscl) as an alternative to UnixLib.  UnixLib
  remains the default target C run-time library.

* unixlib: Stack model changed from UNIX-style linear stacks
  to RISC OS SharedCLibrary style chunked stacks.  This allows
  for automatic WimpSlot extension.

* unixlib: Emulation of /dev/random and /dev/zero.

* unixlib: New resolver libraries, taken from glibc 2.2.5.

* unixlib: Improve compatibility with the C99 standard.

* unixlib: New crypt implementation, taken from glibc 2.2.5.

* as: Big-endian processor support.  Required for cross-compiling on
* processors such as the MIPS.

* as: Fixes for common area symbol handling

* as: Support for ELF object format.

* as: Improve filename handling and search paths for GET.

* ar: Closer emulate UNIX's 'ar' implementation.

* sed: Upgrade to version 4.0.7.

RISC OS GCC release 2.95.4 release 3 (released 05 January 2003)
====================================

* as: Fix pre/post indexed addressing assembler error.

* gccsdk: Support NetBSD.

* unixlib: Fix #include typo in inttypes.h.

* libscl: Preserve flags on 26-bit systems.

RISC OS GCC release 2.95.4 release 2 (released 13 November 2002)
====================================

* ar: This is an ALF implementation of the Unix archiver.  This is
  simply a front end onto libfile but takes compatible arguments.

* nm: Based on decaof, this program is an AOF version of the Unix
  program to list symbols in object files.

* as: Fix broken co-processor mnemonic support.

* drlink: Upgrade from 0.3.4 to 0.3.9.

* unixlib: Fix a command line argument bug when using file-descriptor
  based re-direction.

* unixlib: Logic for isprint was wrong.

* unixlib: usleep gets 1/100th sec resolution.

* gcc: Support hh and icc filename extensions.

* gcc: [BUG48] Tail call optimisation and chunked stacks.

* gcc: [BUG88] Prevent STR code generation where the source and base
  register are the same.

* bison: [BUG26] Pack bison files in the distribution.

* libscl: Support APCS-32.

RISC OS GCC release 2.95.4 release 1 (released 20 December 2001)
====================================

* unixlib: Allow for program independent sfix settings.

* unixlib: Remove restriction on the maximum length of a command line.

* unixlib: Add wchar.h, inttypes.h, stdint.h and supporting functions.

* unixlib: Support `,xyz' RISC OS file type extensions.

* unixlib: Fix longstanding bug that causes programs to hard-lock a
  computer whilst using the network stack.

* unixlib: Support for DoggySoft's Syslog module.

* unixlib: Header file re-arrangements so that UnixLib can be used
  as a drop-in compile time replacement for the SharedCLibrary.

* gcc: Remove weak symbol use that was enabled in pre-release 3.

* gcc: Changed compiler executable directory from arm-riscos to
  arm-acorn-riscos.

* gcc: Minor code generation optimisation for small C++ functions.

* gcc: Bug fix in Unix filename translation.  Pathnames starting with
  `../../something' would be translated to '../../'.

* gcc: By default the libraries and headers for UnixLib and SharedCLib
  are integrated into the distribution.  GCC therefore no longer relies
  on the Unix$Path and C$Path variables.  During the link stage, it is
  recommended that the GCC command is used, rather than calling drlink
  directly.

* gcc: The option specifying that source code should be built and linked
  against the SharedCLibrary rather than UnixLib has changed from the
  rather uninformative -mstubs to -mlibscl.

* as: Better support for local labels.

* gcc: Upgraded to version 2.95.4.

RISC OS GCC pre-release 3a  (released 23 November 1999)
==========================

* Integer division will now raise a SIGFPE upon division
  by zero

* Front-end programs g77 and g++ had not been built since the
  upgrade to 2.95.2 and were looking for the compilers in
  directory 2_95_1.
  
* The !run file incorrectly set the pathname for the /tmp
  directory.

RISC OS GCC pre-release 3  (released 19 November 1999)
=========================

These are the user visible changes since pre-release 2.

* Updated to GCC 2.95.2

* C++: The Standard Template Library headers have been moved from
  their own sub-directory (stl) to their parent directory.

* Fix errors in the conversion of float/double and long doubles
  to 64-bit integers. These functions have been re-coded to not
  use floating-point instructions.

* as: The assembler incorrectly compiled a post-indexed LDR/STR
  as a pre-indexed LDR/STR.

* as: Incorrect filename translation was causing AOF files
  named o.s_temp to be written out as o.o_temp

* unixlib: Bug fixes in UnixLib's strsep and strtoul functions.
  Implemented C9X headers, fenv.h and complex.h. Added many new
  math functions.

RISC OS GCC pre-release 2  (released 23 September 1999)
=========================

This file details the user visible changes since pre-release 1.

* Separate libgcc runtime library for targetting the SharedCLibrary
called libgcc_sh.

* Exception handling bug fix.

* Transparent suffix swapping performed by UnixLib is now private
to the GCC compilers and utilities (set by UnixFS$<progname>$sfix)

* Directory structure has been reorganised. Binaries and
supporting libraries are now in version specific directories so
it will be possible to have multiple gcc installations and select
an appropriate compiler by it's version number (see `gcc -V').

* C++ support libraries libio and libstdc++ are now integrated
into the main !gcc tree, rather than being separate directories.
Hence it is no longer a requirement to add -Ilibio: and -Ilibstdc:
to the gcc command line, likewise with -Llibio: and -Llibstdc:
on the linker command line, however you still will need to add
-lstdc++ and -liostream.

* The C++ libraries should now be compatible with the long
file name feature of RISC OS 4. This shouldn't affect users of
filing systems that support only 10 characters i.e. ADFS, IDEFS
and SCSIFS on RISC OS 3.

* The example programs originally located in !gcc.files have been
moved out of the !gcc directory. Running !gcc will no longer
change the currently selected directory.

* Documentation update to reflect directory structure changes.
Added a clear note regarding the memory usage of gcc.
