Difference between revisions of "Cross compilation"

From Organic Design wiki
m (Caretaker: categories)
m
Line 8: Line 8:
 
*The build process can be run as a non-root user on the host unix system, preventing damage to the host system if the toolchain misbehaves
 
*The build process can be run as a non-root user on the host unix system, preventing damage to the host system if the toolchain misbehaves
  
In our case we use the [http://buildroot.uclibc.org buildroot] toolchain.
+
*[http://buildroot.uclibc.org buildroot] is one example of a set of script which do this
 
 
 
*[[w:Cross-compiling|Cross-compiling]]
 
*[[w:Cross-compiling|Cross-compiling]]
 
*host enviroment
 
*host enviroment

Revision as of 01:53, 12 March 2007

Put simply, a compiler takes source code as input and produces a binary executable as output. Cross compilation refers to the case where the binary code produced is designed to execute on a different machine architecture than the host system.

For example: Using a C compiler on a PPC system to produce code to run on an Intel.

A cross-compilation environment (refered to as the toolchain) provides a number of advantages, even when the host and target architectures are the same.

  • Strict control of the version on cc, libc and binutils used
  • The build process can be run as a non-root user on the host unix system, preventing damage to the host system if the toolchain misbehaves
  • buildroot is one example of a set of script which do this
  • Cross-compiling
  • host enviroment
    • a version of gcc and binutils that supports cross compilation is required in the host enviroment
    • headers to link against are required
    • libraries are required to be present that are compatible with the target system.

Related articles