Difference between revisions of "Cross compilation"
From Organic Design wiki
m (Caretaker: Format cat links) |
(rm from gloss) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | 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 | ||
+ | == Host enviroment == | ||
+ | *[[Enviroment variables affecting cross toolchains]] | ||
+ | *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. | ||
− | + | == See also == | |
+ | *[http://buildroot.uclibc.org buildroot] | ||
+ | *Wikipedia: [[w:Cross-compiling|Cross-compiling]] | ||
*http://www.airs.com/ian/configure/configure_5.html | *http://www.airs.com/ian/configure/configure_5.html | ||
− | *[http://kegel.com/crosstool/crosstool-0.42/buildlogs/ gcc toolchain cross compilation matrix] | + | *[http://kegel.com/crosstool/crosstool-0.42/buildlogs/ gcc toolchain cross compilation matrix] |
*[[Wikipedia:Eat one's own dog food|Eating one's own dog food]] | *[[Wikipedia:Eat one's own dog food|Eating one's own dog food]] | ||
+ | [[Category:Peerix]][[Category:Linux]] |
Latest revision as of 09:23, 17 January 2009
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
Host enviroment
- Enviroment variables affecting cross toolchains
- 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.