diff options
| -rw-r--r-- | documentation/dev-manual/dev-manual-newbie.xml | 105 |
1 files changed, 71 insertions, 34 deletions
diff --git a/documentation/dev-manual/dev-manual-newbie.xml b/documentation/dev-manual/dev-manual-newbie.xml index a53aff4f57..4b11f403b0 100644 --- a/documentation/dev-manual/dev-manual-newbie.xml +++ b/documentation/dev-manual/dev-manual-newbie.xml | |||
| @@ -566,55 +566,92 @@ | |||
| 566 | </para></listitem> | 566 | </para></listitem> |
| 567 | <listitem><para id='cross-development-toolchain'> | 567 | <listitem><para id='cross-development-toolchain'> |
| 568 | <emphasis>Cross-Development Toolchain:</emphasis> | 568 | <emphasis>Cross-Development Toolchain:</emphasis> |
| 569 | A collection of software development | 569 | In general, a cross-development toolchain is a collection of |
| 570 | tools and utilities that run on one architecture but | 570 | software development tools and utilities that run on one |
| 571 | allow you to develop software for a different targeted | 571 | architecture and allow you to develop software for a |
| 572 | architecture. | 572 | different, or targeted, architecture. |
| 573 | This toolchain contains cross-compilers, linkers, and debuggers | 573 | This toolchain contains cross-compilers, linkers, and debuggers |
| 574 | that are specific to an architecture. | 574 | that are specific to the target architecture. |
| 575 | You can use the OpenEmbedded build system to build a | ||
| 576 | cross-development toolchain installer that, when run, installs | ||
| 577 | the toolchain that contains the development tools you | ||
| 578 | need to cross-compile and test your software. | ||
| 579 | The Yocto Project ships with images that contain installers for | ||
| 580 | toolchains for supported architectures as well. | ||
| 581 | Sometimes this toolchain is referred to as the | 575 | Sometimes this toolchain is referred to as the |
| 582 | meta-toolchain.</para> | 576 | meta-toolchain.</para> |
| 583 | <para>Following is a list of toolchain recipes with brief | 577 | <para> |
| 578 | <para>The Yocto Project supports two different cross-development | ||
| 579 | toolchains: | ||
| 580 | <itemizedlist> | ||
| 581 | <listitem><para>A toolchain only used by and within | ||
| 582 | BitBake when building an image for a target | ||
| 583 | architecture.</para></listitem> | ||
| 584 | <listitem><para>A toolchain used outside of BitBake | ||
| 585 | by developers when developing applications that | ||
| 586 | will run on a targeted device. | ||
| 587 | </para></listitem> | ||
| 588 | </itemizedlist> | ||
| 589 | </para> | ||
| 590 | <para>You can use the OpenEmbedded build system to build an | ||
| 591 | installer for the toolchain used to develop applications. | ||
| 592 | When you run the installer, it installs the toolchain, | ||
| 593 | which contains the development tools you need to cross-compile | ||
| 594 | and test your software. | ||
| 595 | If your target architecture is supported by the Yocto Project, | ||
| 596 | you can take advantage of pre-built images that ship with the | ||
| 597 | Yocto Project and already contain cross-development toolchain | ||
| 598 | installers. | ||
| 599 | </para> | ||
| 600 | <para>Following are some toolchain recipes with brief | ||
| 584 | descriptions of each: | 601 | descriptions of each: |
| 585 | <itemizedlist> | 602 | <itemizedlist> |
| 586 | <listitem><para><filename>gcc-cross-initial</filename>: | 603 | <listitem><para><filename>gcc-cross-initial</filename>: |
| 587 | The first stage of the bootstrap process that | 604 | An early stage of the bootstrap process for creating |
| 588 | results in the cross-compiler that runs on the host | 605 | the cross-compiler used within BitBake. |
| 589 | and builds software for the target. | 606 | This stage builds enough of the |
| 590 | This tool is a "native" packages (i.e. it is | 607 | <filename>gcc-cross</filename>, |
| 591 | designed to run on the development host). | 608 | the C library, and other pieces needed to |
| 609 | finish building the final cross-compiler in later | ||
| 610 | stages. | ||
| 611 | This tool is a "native" package (i.e. it is | ||
| 612 | designed to run on the build host). | ||
| 592 | </para></listitem> | 613 | </para></listitem> |
| 593 | <listitem><para><filename>gcc-cross</filename>: | 614 | <listitem><para><filename>gcc-cross</filename>: |
| 594 | The second and final stage of the previously described | 615 | The final stage of the bootstrap process for creating |
| 595 | bootstrap process. | 616 | the cross-compiler used within BitBake. |
| 596 | If you are replacing the cross compiler toolchain | 617 | This stage results in the actual cross-compiler that |
| 597 | with a custom version, you must replace | 618 | BitBake uses when it builds an image for a targeted |
| 598 | <filename>gcc-cross</filename>. | 619 | device. |
| 599 | This tool is a "native" package (i.e. it is | 620 | <note> |
| 600 | designed to run on the development host). | 621 | If you are replacing this cross compiler toolchain |
| 622 | with a custom version, you must replace | ||
| 623 | <filename>gcc-cross</filename>. | ||
| 624 | </note> | ||
| 625 | This tool is also a "native" package (i.e. it is | ||
| 626 | designed to run on the build host). | ||
| 601 | </para></listitem> | 627 | </para></listitem> |
| 602 | <listitem><para><filename>gcc-runtime</filename>: | 628 | <listitem><para><filename>gcc-runtime</filename>: |
| 603 | Runtime libraries from the toolchain bootstrapping | 629 | Runtime libraries from the toolchain bootstrapping |
| 604 | process. | 630 | process. |
| 605 | This tool produces a binary for the target. | 631 | This tool produces a binary that consists of the |
| 632 | runtime libraries need for the targeted device. | ||
| 606 | </para></listitem> | 633 | </para></listitem> |
| 607 | <listitem><para><filename>gcc-crosssdk-initial</filename>: | 634 | <listitem><para><filename>gcc-crosssdk-initial</filename>: |
| 608 | The first stage of the Software Development Kit (SDK) | 635 | An early stage of the bootstrap process for creating |
| 609 | cross-compiler that runs on the host and builds for | 636 | the cross-compiler that is external to BitBake |
| 610 | the SDK. | 637 | (i.e. the compiler used by application developers |
| 611 | Often the SDK is not the same target as the host. | 638 | to develop software that runs on the target device). |
| 612 | This tool is a "native" binary.</para></listitem> | 639 | This stage builds enough of the |
| 640 | <filename>gcc-crosssdk</filename> and supporting | ||
| 641 | pieces so that the final stage of the bootstrap | ||
| 642 | process can produce the finished cross-compiler. | ||
| 643 | This tool is a "native" binary that runs on the build | ||
| 644 | host. | ||
| 645 | </para></listitem> | ||
| 613 | <listitem><para><filename>gcc-crosssdk</filename>: | 646 | <listitem><para><filename>gcc-crosssdk</filename>: |
| 614 | The second and final stage of the previously mentioned | 647 | The final stage of the bootstrap process for creating |
| 615 | SDK cross-compiler. | 648 | the cross-compiler that is external to BitBake. |
| 616 | This tool is a "native" binary. | 649 | This tool is a "native" binary that runs on the build |
| 617 | The tool runs on the host and builds for the SDK. | 650 | host but generates code that runs on the machine used |
| 651 | for application development (i.e. the | ||
| 652 | <filename>SDKMACHINE</filename>). | ||
| 653 | Often the <filename>SDKMACHINE</filename> is not the | ||
| 654 | same machine as the host build machine. | ||
| 618 | </para></listitem> | 655 | </para></listitem> |
| 619 | <listitem><para><filename>gcc-cross-canadian</filename>: | 656 | <listitem><para><filename>gcc-cross-canadian</filename>: |
| 620 | A compiler built on one machine (build machine) that | 657 | A compiler built on one machine (build machine) that |
