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 e41d5a0f603..093422f69f0 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 ed53fb68a64..2a93ce9c2dc 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: - - $ 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 - - - - + + 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. + - - 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 + + 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] ... ] + + 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 Hc-jL100001 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 Hc-jL100001 -- 2.47.3