world leader in high performance signal processing
Trace: » gcc_and_gas

GNU Toolchain

The GNU Toolchain is a combination of multiple projects:

  • GCC : GCC stands for “GNU Compiler Collection”. GCC is an integrated distribution of compilers for several major programming languages. These languages currently include C, C++, Objective-C, Objective-C++, Java, Fortran, and Ada. Currently the Blackfin is supported by C, C++ and Fortran. There are various targets which determines your run time environment.
  • Binutils : GNU Binutils are a collection of binary tools. The main ones are: the GNU linker (ld) and the GNU assembler (as).
  • Debugger : GNU debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed.

Mainline Documentation can be found at:

gcc and gas

The gcc manual is deservedly large. There is no way we can discuss its capabilities here, but we will give some example command line invocations which you can use to identify a few areas to explore:

To compile a source file file.c and create an executable named file.x

gcc file.c -o file.x

gcc -c file1.c this compiles source file file1.c and creates an object file named file1.o

gcc -o app1 main.o file1.o file3.o this links three object files (main.o, file1.o, and file3.o) into a single executable named app1

gcc -S file2.c this compiles source file file2.c down to assembly language, creating a file named file2.s (Note that the command line S is upper case and the resulting assembly language file suffix is a lower case s)

gcc -g file4.c -o file4 this compiles source file4.c passing along appropriate symbol information to support running the resulting executable (file4) under control of gdb, the GNU debugger.

See the GCC Homepage for more information on GCC. See thegas manual for more information on gas.

Differences Between Blackfin Compilers

There are multiple Blackfin compilers which serve different needs. See the Blackfin toolchain targets page for more information.

Other Blackfin Compilers

There are other commercial Blackfin compilers available, but no one has either tested the compiler on the kernel source, nor if they are link time compatible with gcc/gas. They do have their own benefits, which you would need to contact the suppliers to find out.

Blackfin GCC Code-Size Benchmarks and Comparisons

CSiBE is a code size benchmark for the GCC compiler. The primary purpose of CSiBE is to monitor the size of the code generated by GCC. In addition, compilation time and code performance measurements are also provided.

GCC Code-Size Benchmark Environment (CSiBE) Department of Software Engineering, University of Szeged