Meego Wiki
Views

Build Infrastructure/Sysadmin Distro/CrossToolchain Background

From MeeGo wiki
< Build Infrastructure | Sysadmin Distro(Difference between revisions)
Jump to: navigation, search
(Created page with '= Background and pointers = == Background == Different types of crossbuilding: http://en.opensuse.org/Build_Service/Concepts/CrossDevelopment#Types_of_Crossbuild A bit termi…')
(categorise)
 
(3 intermediate revisions not shown)
Line 5: Line 5:
== Background ==
== Background ==
-
Different types of crossbuilding: http://en.opensuse.org/Build_Service/Concepts/CrossDevelopment#Types_of_Crossbuild
+
Different types of crossbuilding: http://en.opensuse.org/openSUSE:Build_Service_Concept_CrossDevelopment#Types_of_crossbuild
A bit terminology:
A bit terminology:
Line 18: Line 18:
* '''"cross" + emulation'''  -  emulated execution with the use of cross-compiler and 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
 
Line 29: Line 25:
== Pointers on the cross build ==
== Pointers on the cross build ==
-
* http://en.opensuse.org/Build_Service/Concepts/CrossDevelopment
+
* http://en.opensuse.org/openSUSE:Build_Service_Concept_CrossDevelopment
* http://lizards.opensuse.org/2009/01/27/build-maemo-apps-with-opensuse-buildservice-it-works/
* http://lizards.opensuse.org/2009/01/27/build-maemo-apps-with-opensuse-buildservice-it-works/
Line 56: Line 52:
|}
|}
[[File:comp_native_cross.jpg]]
[[File:comp_native_cross.jpg]]
 +
 +
[[Category:Build Infrastructure]]

Latest revision as of 12:05, 26 April 2011

Contents

Background and pointers

Background

Different types of crossbuilding: http://en.opensuse.org/openSUSE:Build_Service_Concept_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


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