summaryrefslogtreecommitdiff
path: root/docs/6 - Toolchain types.txt
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-03-20 07:10:26 (GMT)
committerAlexey Neyman <stilor@att.net>2017-03-20 07:10:26 (GMT)
commit13f47ef5763e83f2b2b3b7f25cf49a5b0057142a (patch)
treef562afa608f146860bafe10eb6066a9440d0168d /docs/6 - Toolchain types.txt
parent6f226b5efecc8f15f1adc56be2fa41377523d3a5 (diff)
Move documents to github.io
Will be pulled into release tarball by a release script. Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'docs/6 - Toolchain types.txt')
-rw-r--r--docs/6 - Toolchain types.txt64
1 files changed, 0 insertions, 64 deletions
diff --git a/docs/6 - Toolchain types.txt b/docs/6 - Toolchain types.txt
deleted file mode 100644
index 7430a9c..0000000
--- a/docs/6 - Toolchain types.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-File.........: 6 - Toolchain types.txt
-Copyright....: (C) 2010 Yann E. MORIN <yann.morin.1998@free.fr>
-License......: Creative Commons Attribution Share Alike (CC-by-sa), v2.5
-
-
-Toolchain types /
-________________/
-
-
-There are four kinds of toolchains you could encounter.
-
-First off, you must understand the following: when it comes to compilers there
-are up to four machines involved:
- 1) the machine configuring the toolchain components: the config machine
- 2) the machine building the toolchain components: the build machine
- 3) the machine running the toolchain: the host machine
- 4) the machine the toolchain is generating code for: the target machine
-
-We can most of the time assume that the config machine and the build machine
-are the same. Most of the time, this will be true. The only time it isn't
-is if you're using distributed compilation (such as distcc). Let's forget
-this for the sake of simplicity.
-
-So we're left with three machines:
- - build
- - host
- - target
-
-Any toolchain will involve those three machines. You can be as pretty sure of
-this as "2 and 2 are 4". Here is how they come into play:
-
-1) build == host == target
- This is a plain native toolchain, targeting the exact same machine as the
- one it is built on, and running again on this exact same machine. You have
- to build such a toolchain when you want to use an updated component, such
- as a newer gcc for example.
- crosstool-NG calls it "native".
-
-2) build == host != target
- This is a classic cross-toolchain, which is expected to be run on the same
- machine it is compiled on, and generate code to run on a second machine,
- the target.
- crosstool-NG calls it "cross".
-
-3) build != host == target
- Such a toolchain is also a native toolchain, as it targets the same machine
- as it runs on. But it is build on another machine. You want such a
- toolchain when porting to a new architecture, or if the build machine is
- much faster than the host machine.
- crosstool-NG calls it "cross-native".
-
-4) build != host != target
- This one is called a canadian-toolchain (*), and is tricky. The three
- machines in play are different. You might want such a toolchain if you
- have a fast build machine, but the users will use it on another machine,
- and will produce code to run on a third machine.
- crosstool-NG calls it "canadian".
-
-crosstool-NG can build all these kinds of toolchains (or is aiming at it,
-anyway!)
-
-(*) The term Canadian Cross came about because at the time that these issues
- were all being hashed out, Canada had three national political parties.
- http://en.wikipedia.org/wiki/Cross_compiler