Meego Wiki
Views

Build Infrastructure/Sysadmin Distro/CrossToolchain Background

From MeeGo wiki
< Build Infrastructure | Sysadmin Distro
Revision as of 13:32, 7 July 2010 by Jsmoeller (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Background and pointers

Background

Different types of crossbuilding: http://en.opensuse.org/Build_Service/Concepts/CrossDevelopment#Types_of_Crossbuild

A bit terminology:

  • pure native - builds on real hardware
  • cross-compilation - as in traditional
  • transparent emulation - qemu-arm is used for executing arm binaries on x86
  • "native" + emulation - emulated execution without the use of cross-compiler or speedup
  • "cross" + emulation - emulated execution with the use of cross-compiler and speedup


The default package list for a build environment is defined in the prjconf (see http://en.opensuse.org/Build_Service/prjconf) :

  Preinstall  +  Required + Support  +  Packages from dependency resolution


For the "native"+emulation cross-build (as in: without cross-compilers), we use qemu-arm. The callenge is now to keep the environment but add speed through cross-compilers (="cross"+emulation).

Pointers on the cross build

Some figures

With all changes in place, we reach really good speed. E.g. for:

  • package rpm
  • package glibc w/o locales

Build time in minutes

x86 nativearmv5tel nativearmv5tel cross factor x86->arm nativefactor x86->arm cross
rpm810717 13,382,13
glibc3350563 15,31,91

Comp native cross.jpg

Personal tools