From f08a41e9ef681905f4642f59d62d59ade8543450 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Fri, 17 Aug 2018 12:46:47 -0700 Subject: [PATCH] dev-manual, Makefile: Created new section on multi-config build deps Rewrote the section on setting up and executing multi-config builds. Broke the section into two sub-sections. One is for the standard information that was there for setting up a multi-config build. A new section was for the cross-build dependencies in multi-config builds. Part of the re-write included creating a new figure that shows the configuration file hierarchy needed for these types of builds. So, new figure added to both the dev-manual and the mega-manual figures directories. Finally, the Makefile needed updated to account for the new figures. (From yocto-docs rev: dc158e97c216aa6e7fa3755164409d581f8569c5) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/Makefile | 3 +- .../dev-manual/dev-manual-common-tasks.xml | 274 ++++++++++++------ .../dev-manual/figures/multiconfig_files.png | Bin 0 -> 18611 bytes .../mega-manual/figures/multiconfig_files.png | Bin 0 -> 18611 bytes 4 files changed, 191 insertions(+), 86 deletions(-) create mode 100644 documentation/dev-manual/figures/multiconfig_files.png create mode 100644 documentation/mega-manual/figures/multiconfig_files.png diff --git a/documentation/Makefile b/documentation/Makefile index e41d5a0f60..093422f69f 100644 --- a/documentation/Makefile +++ b/documentation/Makefile @@ -165,6 +165,7 @@ TARFILES = dev-style.css dev-manual.html \ TARFILES = dev-style.css dev-manual.html figures/buildhistory-web.png \ figures/dev-title.png figures/buildhistory.png \ figures/recipe-workflow.png figures/bitbake-build-flow.png \ + figures/multiconfig_files.png \ eclipse endif @@ -261,7 +262,7 @@ TARFILES = mega-manual.html mega-style.css \ figures/image-generation.png figures/key-dev-elements.png\ figures/sdk-generation.png figures/recipe-workflow.png \ figures/build-workspace-directory.png figures/mega-title.png \ - figures/toaster-title.png figures/hosted-service.png \ + figures/toaster-title.png figures/hosted-service.png figures/multiconfig_files.png \ figures/simple-configuration.png figures/poky-reference-distribution.png \ figures/compatible-layers.png figures/import-layer.png figures/new-project.png \ figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \ diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index ed53fb68a6..2a93ce9c2d 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml @@ -5325,100 +5325,204 @@ Building Images for Multiple Targets Using Multiple Configurations - Bitbake also has functionality that allows you to build - multiple targets at the same time, where each target uses - a different configuration. + You can use a single bitbake command + to build multiple images for different targets where each + image requires a different configuration (multiple + configuration builds). + The builds, in this scenario, are sometimes referred to as + "multiconfigs", and this section uses that term throughout. - In order to accomplish this, you setup each of the configurations - you need to use in parallel by placing the configuration files in - your current build directory alongside the usual - local.conf file. + This section describes how to set up for multiple + configuration builds and how to account for cross-build + dependencies between the multiconfigs. - - Follow these guidelines to create an environment that supports - multiple configurations: - - - Create Configuration Files: - You need to create a single configuration file for each - configuration for which you want to add support. - These files would contain lines such as the following: - - MACHINE = "A" - - The files would contain any other variables that can - be set and built in the same directory. - - You can change the - TMPDIR - to not conflict. - +
+ Setting Up and Running a Multiple Configuration Build - - Furthermore, the configuration file must be located in the - current build directory in a directory named - multiconfig under the build's - conf directory where - local.conf resides. - The reason for this restriction is because the - BBPATH variable is not constructed - until the layers are parsed. - Consequently, using the configuration file as a - pre-configuration file is not possible unless it is - located in the current working directory. - - - Add the BitBake Multi-Config Variable to you Local Configuration File: - Use the - BBMULTICONFIG - variable in your conf/local.conf - configuration file to specify each separate configuration. - For example, the following line tells BitBake it should load - conf/multiconfig/configA.conf, - conf/multiconfig/configB.conf, and - conf/multiconfig/configC.conf. - - BBMULTICONFIG = "configA configB configC" - - - - Launch BitBake: - Use the following BitBake command form to launch the - build: - + + To accomplish a multiple configuration build, you must + define each target's configuration separately using + a parallel configuration file in the + Build Directory, + and you must follow a required file hierarchy. + Additionally, you must enable the multiple configuration + builds in your local.conf file. + + + + Follow these steps to set up and execute multiple + configuration builds: + + + Create Separate Configuration Files: + You need to create a single configuration file for + each build target (each multiconfig). + Minimally, each configuration file must define the + machine and the temporary directory BitBake uses + for the build. + You must not overlap the temporary directories + used during the build. + + Here is an example showing the minimal + statements needed in a configuration file for + a "qemux86" target whose temporary build directory + is tmpmultix86: + + MACHINE="qemux86" + TMPDIR="${TOPDIR}/tmpmultix86" + + + The location for these multiconfig + configuration files is specific. + They must reside in the current build directory in + a sub-directory of conf named + multiconfig. + Following is an example that defines two + configuration files for the "x86" and "arm" + multiconfigs: + + + + The reason for this required file hierarchy + is because the BBPATH variable + is not constructed until the layers are parsed. + Consequently, using the configuration file as a + pre-configuration file is not possible unless it is + located in the current working directory. + + + Add the BitBake Multi-configuration Variable to the Local Configuration File: + Use the + BBMULTICONFIG + variable in your + conf/local.conf configuration + file to specify each multiconfig. + Continuing with the example from the previous + figure, the BBMULTICONFIG + variable needs to enable two multiconfigs: "x86" + and "arm" by specifying each configuration file: + + BBMULTICONFIG = "x86 arm" + + + + Launch BitBake: + Use the following BitBake command form to launch the + multiple configuration build: + $ bitbake [multiconfig:multiconfigname:]target [[[multiconfig:multiconfigname:]target] ... ] - - Following is an example that supports building a minimal - image for configuration A alongside a standard - core-image-sato, which takes its - configuration from local.conf: - - $ bitbake multiconfig:configA:core-image-minimal core-image-sato - - - - - - - Support for multiple configurations in this current release of - the Yocto Project (&DISTRO_NAME; &DISTRO;) has some known issues: - - - No inter-multi-configuration dependencies exist. - - - Shared State (sstate) optimizations do not exist. - Consequently, if the build uses the same object twice + + For the example in this section, the following + command applies: + + $ bitbake multiconfig:x86:core-image-minimal multiconfig:arm:core-image-sato + + The previous BitBake command builds a + core-image-minimal image that + is configured through the + x86.conf configuration file + and builds a core-image-sato + image that is configured through the + arm.conf configuration file. + + + + Support for multiple configuration builds in the + Yocto Project &DISTRO; (&DISTRO_NAME;) Release does + not include Shared State (sstate) optimizations. + Consequently, if a build uses the same object twice in, for example, two different TMPDIR directories, the build - will either load from an existing sstate cache at the - start or build the object twice. - - - + either loads from an existing sstate cache for that + build at the start or builds the object fresh. + + +
+ +
+ Enabling Multiple Configuration Build Dependencies + + + Sometimes dependencies can exist between targets + (multiconfigs) in a multiple configuration build. + For example, suppose that in order to build a + core-image-sato image for an "x86" + multiconfig, the root filesystem of an "arm" + multiconfig must exist. + This dependency is essentially that the + do_image + task in the core-image-sato recipe + depends on the completion of the + do_rootfs + task of the core-image-minimal + recipe. + + + + To enable dependencies in a multiple configuration + build, you must declare the dependencies in the recipe + using the following statement form: + + task_or_package[mcdepends] = "multiconfig:from_multiconfig:to_multiconfig:recipe_name:task_or_package_on_which_to_depend" + + + Dependencies can be on tasks or packages. + + To better show how to use this statement, consider the + example scenario from the first paragraph of this section. + The following statement needs to be added to the recipe + that builds the core-image-sato + image: + + do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_rootfs" + + In this example, the + from_multiconfig is "x86". + The to_multiconfig is "arm". + The task on which the do_image task + in the recipe depends is the do_rootfs + task from the core-image-minimal + recipe associated with the "arm" multiconfig. + + + + Once you set up this dependency, you can build the + "x86" multiconfig using a BitBake command as follows: + + $ bitbake multiconfig:x86:core-image-sato + + This command executes all the tasks needed to create + the core-image-sato image for the + "x86" multiconfig. + Because of the dependency, BitBake also executes through + the do_rootfs task for the "arm" + multiconfig build. + + + + Having a recipe depend on the root filesystem of another + build might not seem that useful. + Consider this change to the statement in the + core-image-sato recipe: + + do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_image" + + In this case, BitBake must create the + core-image-minimal image for the + "arm" build since the "x86" build depends on it. + + + + Because "x86" and "arm" are enabled for multiple + configuration builds and have separate configuration + files, BitBake places the artifacts for each build in the + respective temporary build directories (i.e. + TMPDIR. + +
diff --git a/documentation/dev-manual/figures/multiconfig_files.png b/documentation/dev-manual/figures/multiconfig_files.png new file mode 100644 index 0000000000000000000000000000000000000000..0b59338b3a6a6dd8314522b9400b0d97994bd061 GIT binary patch literal 18611 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 literal 0 HcmV?d00001 diff --git a/documentation/mega-manual/figures/multiconfig_files.png b/documentation/mega-manual/figures/multiconfig_files.png new file mode 100644 index 0000000000000000000000000000000000000000..0b59338b3a6a6dd8314522b9400b0d97994bd061 GIT binary patch literal 18611 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 literal 0 HcmV?d00001