This shows you the differences between two versions of the page.
buildenvironment [2014/09/17 15:02] archmobile created |
buildenvironment [2014/10/29 21:07] (current) archmobile |
||
---|---|---|---|
Line 19: | Line 19: | ||
The downside of this approach is speed. As binaries compiled for arm have to be emulated their execution speed is severly decreased. For example emulating gcc increases compilation time around 5-times. To address this issue we install host (i686 or x86_64) executables in the emulated environment. This way the (slow) arm executables can be overridden by their (fast) native counterparts, e.g. gcc is then as fast/slow as it is in the non-emulated case. | The downside of this approach is speed. As binaries compiled for arm have to be emulated their execution speed is severly decreased. For example emulating gcc increases compilation time around 5-times. To address this issue we install host (i686 or x86_64) executables in the emulated environment. This way the (slow) arm executables can be overridden by their (fast) native counterparts, e.g. gcc is then as fast/slow as it is in the non-emulated case. | ||
- | So the key difference to a traditional cross-compilation approach is that all compilation takes places in a emulated target environment (with certain executables replaced by host tools) instead of excplictly telling the build system to do cross-compilation in the host environment. | + | So the key difference to a traditional cross-compilation approach is that all compilation takes places in a emulated target environment (http://www.sanblaze.com/storage-emulation/target-emulation/) (with certain executables replaced by host tools) instead of excplictly telling the build system to do cross-compilation in the host environment. |
Advantages: | Advantages: |