diff options
Diffstat (limited to 'documentation/dev-manual/dev-manual-newbie.xml')
-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 |