This is a list of (experimental) extensions to GCC which, for one reason or the other, did not (yet) make it into the official source tree. Please direct feedback and bugreports to their respective maintainers, not our mailing lists.
The PentiumGCC (short PGCC) is an extension of GCC specifically aimed at the newer Intel chips and their clones (Pentium, PPro, Pentium-II and the Cyrix6x86 and AMD-K6+ chips). The current goal is to enhance GCC to a point where it generates code as fast as PGCC, but until that work is finished PGCC is still maintained, and often achieves substantial speed improvements over GCC.
This is an experimental port for the 8bit ATMEL AVR micro controllers.
This is a port of GCC, GDB and the Binutils for Motorola 68HC11 (later 68HC12). This port supports 8,16,32 and 64-bits integers as well as 32 and 64-bits floats. It uses ELF32 for object files and DWARF-2 for debugging information.
If, for some reason, you cannot use GNU make nor build in the srcdir, this patch for GCC 2.95.1 will allow you to build GCC using Sun make in a srcdir != objdir setup.
Apply it with (for example) GNU patch:
patch -p1 -d /path/to/gcc-2.95.1 <
gcc-2.95.1-sun-make-patch1.txt
This patch is not supposed to interfere with proper building and installation on non-Sun systems or when using GNU make.
Contact: hp@axis.se
Libg++
, the GNU C++ library, is an attempt to
provide a variety of C++ programming tools and other support to
GNU C++ programmers. It has been available for quite some time
now, and, although it has been superseded by libstdc++
,
it is still providing some useful services. And, it has proven to
be a good testsuite for the compiler...
These patches add a -fbounds-checking
flag that
adds bounds checking tests to pointer and array accesses.
Richard Jones developed the
patches against gcc-2.7 in 1995.
Herman ten Brugge is the current maintainer and has updated the patches for
gcc-2.95.2.
William Bader has unofficial
updates for selected GCC snapshots.
You may freely mix object modules compiled with and without bounds
checking. The bounds checker also includes replacements for
mem*
and str*
routines and can detect
invalid calls against checked memory objects, even from modules
compiled without bounds checking.
Here is a compilation and execution of an example program.
These patches are unrelated to the fat pointer bounds checking patches by Greg McGary <gkm@eng.ascend.com> which change the size of pointers and require building modified versions of libc and most other libraries that your program calls. Greg's patches will eventually be incorporated into GCC. If you can use Greg's fat pointer bounds checker, it has the advantage of better run-time performance and support for languages other than C.
StackGuard emits programs hardened against "stack smashing" attacks on x86 GNU/Linux. StackGuard 2.0 is based on egcs-1.1.2 (gcc version 2.91.66); StackGuard 1.21 is based on gcc-2.7.2.
An open-source tool for investigating cache effects in programs (on x86 GNU/Linux, though possibly portable to other x86 POSIX targets).
In this section you will find extensions which do not (directly) apply to current GCC sources but are of historical interest or may be helpful to consult for future development.
A GCC port to a bit-addressable architecture.