User Tools

Site Tools


about:toolchain

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Previous revision
about:toolchain [2013/07/03 15:46]
about:toolchain [2014/12/27 02:31] (current)
saimen [OpenWrt Buildroot – About] Fix typos
Line 5: Line 5:
 A compilation toolchain is the set of tools used to compile code for your system. ​ A compilation toolchain is the set of tools used to compile code for your system. ​
 It consists of: It consists of:
-  * a compiler (in our case, ''​[[wp>​GNU Compiler Collection|gcc]]''​ / [[http://​packages.debian.org/​squeeze/gcc|deb: gcc]]) +  * a compiler (in our case, ''​[[wp>​GNU Compiler Collection|gcc]]''​ / [[http://​packages.debian.org/​wheezy/gcc|deb: gcc]]) 
-  * binary utils like assembler and linker (in our case, ''​[[wp>​GNU Binutils|binutils]]''​ / [[http://​packages.debian.org/​squeeze/​binutils|deb:​ binutils]] ) +  * binary utils like assembler and linker (in our case, ''​[[wp>​GNU Binutils|binutils]]''​ / [[http://​packages.debian.org/​wheezy/​binutils|deb:​ binutils]] ) 
   * a [[wp>C standard library]] (for example GNU Libc, uClibc or dietlibc). ​   * a [[wp>C standard library]] (for example GNU Libc, uClibc or dietlibc). ​
  
 Using a PC, the compilation toolchain runs on an [[wp>​x86]] processor and generates code for a x86 processor. On most Linux systems, the compilation toolchain uses the [[wp>​GNU_C_Library|GNU libc]] as C standard library. It is called the "host compilation toolchain",​ and the machine it is running on is called the "host system"​. The compilation toolchain is provided by the distribution,​ and has nothing to do with OpenWrt Buildroot. Using a PC, the compilation toolchain runs on an [[wp>​x86]] processor and generates code for a x86 processor. On most Linux systems, the compilation toolchain uses the [[wp>​GNU_C_Library|GNU libc]] as C standard library. It is called the "host compilation toolchain",​ and the machine it is running on is called the "host system"​. The compilation toolchain is provided by the distribution,​ and has nothing to do with OpenWrt Buildroot.
  
-Embedded systems use a different processor and require a cross-compilation toolchain - a compilation toolchain that runs on a host system but that generates code for a target system (and target [[doc:​hardware:​cpu|processor]]'​s instruction set architecture (ISA). For example, if your host system uses x86 and your target system uses MIPS32, the regular compilation toolchain of your host runs on x86 and generates code for x86, while the cross-compilation toolchain runs on x86 and generates code for MIPS32.+Embedded systems use a different processor and require a cross-compilation toolchain - a compilation toolchain that runs on a host system but that generates code for a target system (and target [[doc:​hardware:​cpu|processor]]'​s instruction set architecture (ISA)). For example, if your host system uses x86 and your target system uses MIPS32, the regular compilation toolchain of your host runs on x86 and generates code for x86, while the cross-compilation toolchain runs on x86 and generates code for MIPS32.
  
 While it is possible to manually configure and compile your own software, OpenWrt Buildroot automates this process to work on the instruction set architecture of most embedded systems. While it is possible to manually configure and compile your own software, OpenWrt Buildroot automates this process to work on the instruction set architecture of most embedded systems.
Line 17: Line 17:
 While the OpenWrt Buildroot was designed for developers, inexperienced users can also use it to easily build their own custom firmware! While the OpenWrt Buildroot was designed for developers, inexperienced users can also use it to easily build their own custom firmware!
  
-The OpenWrt Makefile has its own syntax, different from the conventional Makefile of Linux make tool. The OpenWrt Makefile defines the meta information of the package, where to download the package,how to compile, where to installed thecompiled ​binaries,​etc. See How to Build OpenWrt Application Package for more detail.+The OpenWrt Makefile has its own syntax, different from the conventional Makefile of Linux make tool. The OpenWrt Makefile defines the meta information of the package, where to download the package, how to compile, where to install the compiled ​binaries, etc. See How to Build OpenWrt Application Package for more detail.
  
 ===== OpenWrt Buildroot – Features ===== ===== OpenWrt Buildroot – Features =====
Line 29: Line 29:
 ===== OpenWrt Buildroot – Make Targets ===== ===== OpenWrt Buildroot – Make Targets =====
   * Offers a number of high level make targets for standard package workflows   * Offers a number of high level make targets for standard package workflows
-  * Targets always in the format ​component/​name/​action, e.g. toolchain/​gdb/​compile“ or package/​mtd/​install+  * Targets always in the format ​"component/​name/​action", e.g. "toolchain/​gdb/​compile" ​or "package/​mtd/​install"
   * Prepare a package source tree: package/​foo/​prepare   * Prepare a package source tree: package/​foo/​prepare
   * Compile a package: package/​foo/​compile   * Compile a package: package/​foo/​compile
Line 54: Line 54:
   * Features that make no sense on embedded systems get disabled through configure or are patched out   * Features that make no sense on embedded systems get disabled through configure or are patched out
   * Packages must be compilable regardless of the host system, should be self contained   * Packages must be compilable regardless of the host system, should be self contained
-  * Shipped ​configure“ scripts are often faulty or unusable in a cross-compile setting, autoreconf or patching needed+  * Shipped ​"configure" ​scripts are often faulty or unusable in a cross-compile setting, autoreconf or patching needed
   * Build variants and kconfig includes allow for configurable compile-time settings   * Build variants and kconfig includes allow for configurable compile-time settings
-  * There is no standard way for porting software, in many cases it just works“ but often the package build process needs +  * There is no standard way for porting software, in many cases it "just works" ​but often the package build process needs tweaks
-  * tweaks +
 ===== Documentation ===== ===== Documentation =====
   - [[about:​toolchain|OpenWrt Buildroot – About]]   - [[about:​toolchain|OpenWrt Buildroot – About]]
Line 68: Line 66:
 ===== History ===== ===== History =====
   * [[https://​dev.openwrt.org/​search?​changeset=on&​q=buildroot-ng|commits concerning OpenWrt Buildroot]]   * [[https://​dev.openwrt.org/​search?​changeset=on&​q=buildroot-ng|commits concerning OpenWrt Buildroot]]
-  * [[https://​dev.openwrt.org/​browser/​trunk/​include/​target.mk|include/​target.mk]] 
   * [[https://​forum.openwrt.org/​viewtopic.php?​pid=31794#​p31794|OpenWrt Forums: An introduction to OpenWrt Buildroot]]   * [[https://​forum.openwrt.org/​viewtopic.php?​pid=31794#​p31794|OpenWrt Forums: An introduction to OpenWrt Buildroot]]
 +
about/toolchain.1372859175.txt.bz2 · Last modified: 2013/07/03 15:46 (external edit)