Resources

Questions

Customers Say...

Things are going well and we are very happy with your team. They are responsive and helpful.

Sourcery G++ Features

Sourcery G++ has everything you need to develop software:

GNU C & C++ Compilers

The GNU C and C++ Compilers (GCC and G++) are optimizing C and C++ compilers. GCC and G++ contain excellent support for programming on embedded systems, including powerful inline assembly support, the ability to place variables and functions into particular sections, and support for interrupt handling. These compilers are the de facto standard on all GNU/Linux systems.

CodeSourcery has enhanced the compilers, with support for more processors, better optimization, and improved reliability.

GNU Assembler & Linker

The GNU assembler and linker are powerful programming tools in their own right. With the GNU assembler's macro features, you can easily write low-level driver or startup code. The GNU linker's scripting language allows you to place code and data exactly where you want it to go. Sourcery G++ includes linker scripts for common configurations, which you can modify as necessary.

C & C++ Runtime Libraries

Sourcery G++ includes C and C++ libraries suited to your target platform. On GNU/Linux systems, Sourcery G++ includes the GNU C Library (GLIBC). On uClinux systems, Sourcery G++ includes uClibc, a smaller-footprint library that is largely source-compatible with GLIBC. And, for bare-metal ELF or EABI users, Sourcery G++ comes with Newlib, a small-footprint C library. You can use Newlib with semi-hosting support (so that system calls like read and write are redirected to your host system), or you can replace the system call routines with your own implementations.

Additional C & C++ Runtime Libraries

Sourcery G++ Professional Edition includes additional runtime libraries for particular targets, such as VFP-optimized libraries for improved performance on ARM processors with hardware floating-point functionality. Sourcery G++ Professional Edition also includes debuggable versions of the run-time libraries so that you can step through code in the run-time libraries.

CS3

CS3 provides a uniform, cross-platform approach to board initialization and interrupt handling on bare metal platforms, such as Sourcery G++ for ARM EABI, Sourcery G++ for ColdFire ELF, Sourcery G++ for fido ELF, Sourcery G++ for MIPS ELF, Sourcery G++ for Power EABI, and Sourcery G++ for Stellaris EABI.

GNU Debugger

The GNU Debugger is a command-line source-level debugger. (It is also used by the Eclipse IDE as a back end.) In addition to debugging native applications, GDB can use a CodeSourcery Debug Sprite to provide hardware debugging via JTAG/BDM units. It can also be used with gdbserver, a GNU/Linux utility that runs on the target system. In addition to the basics (breakpoints and commands for controlling execution of the program), GDB supports hardware breakpoints, backtraces, and multiple threads.

CodeSourcery has enhanced GDB with support for flash programming and improved hardware breakpoint capabilities.

Debug Sprites

Sourcery G++ Debug Sprites provide hardware debugging support using JTAG/BDM devices. On some systems, Sourcery G++ Sprites can automatically program flash memory and display control registers. And the board initialization performed by each Sprite can be customized with simple XML-based configuration files to insert delays and write to particular memory addresses.

Instruction Set Simulator

Most bare board configurations of Sourcery G++ include the QEMU instruction set simulator which can be used to run — and debug — programs even without target hardware. Sourcery G++ includes linker scripts targeting the simulator.

GNU/Linux Application Simulator

Most GNU/Linux configurations of Sourcery G++ also include the QEMU simulator for running single-threaded GNU/Linux applications on an x86 GNU/Linux host.

Eclipse IDE

The Eclipse IDE provides a fully visual environment for developing applications, including an automated project builder, syntax-highlighting editor, and a graphical debugging interface. The debugger provides features especially useful to embedded systems programmers, including the ability to step through code at both the source and assembly level, view registers, and examine stack traces.

CodeSourcery's enhancements to Eclipse include improved support for hardware debugging via JTAG/BDM devices and complete integration with the rest of Sourcery G++.

GNU/Linux Prelinker

For select GNU/Linux target systems, Sourcery G++ includes the GNU/Linux prelinker. The prelinker is a postprocessor for GNU/Linux applications which can dramatically reduce application launch time. CodeSourcery has modified the prelinker to operate on non-GNU/Linux host systems, including Microsoft Windows.

Library Reduction Utility

For GNU/Linux target systems, Sourcery G++ includes a utility that can be used to reduce the footprint of a GNU/Linux system by excluding library functions not used by any program.

Sysroot Utilities

The Sourcery G++ Sysroot Utilities simplify use of Sourcery G++’s libraries and dynamic linker when running applications on a target system with an existing GNU/Linux installation.

Access to Updates

CodeSourcery makes frequent updates to Sourcery G++ to add features and to correct defects reported by its customers. Sourcery G++ Personal and Professional Edition customers automatically receive these updates as they become available.

Knowledge Base

The Sourcery G++ knowledge base contains an ever-expanding collection of answers to frequently asked questions about building and debugging applications with Sourcery G++.

Unlimited Support

Sourcery G++ Professional Edition customers receive unlimited support from CodeSourcery, directly from CodeSourcery's engineers. This support — provided without any per-incident fees — covers much more than just installation and basic usage. CodeSourcery will happily answer questions about porting programs from other tools, the C and C++ programming languages, using GNU features like inline assembly, and all other topics related to use of Sourcery G++. Support is provided by the same expert developers who have contributed thousands of changes to the GNU toolchain over CodeSourcery's ten-year history.

See the edition comparison chart to find out which features are included in each edition.