Message ID | 20181127041009.11728-1-matthew.weber@rockwellcollins.com |
---|---|
State | Accepted |
Commit | 3f1b965bc36c64f83c962e373f7b5fe1245e3355 |
Headers | show |
Series | [NEXT] infra: add force build flag for host dependencies | expand |
>>>>> "Matt" == Matt Weber <Matthew.Weber@collins.com> writes: > From: Bryce Ferguson <bryce.ferguson@rockwellcollins.com> > This commit adds a config option which will force buildroot to > build all host dependencies even if they are already present on the > host system. This may be a desirable option if different hosts are > used to build the same source. In this case, some packages will be > built on one host that are not built on another. This is problematic > if build source archives are cached afterwards for offline builds. > Cc: Peter Korsgaard <peter@korsgaard.com> > Signed-off-by: Bryce Ferguson <bryce.ferguson@rockwellcollins.com> > Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com> .. > +++ b/support/dependencies/dependencies.mk > @@ -9,9 +9,15 @@ > # can be the candidate to be checked. If not present, the check-host-$(1).sh > # script should use 'which' to find a candidate. The script should return > # the path to the suitable host tool, or nothing if no suitable tool was found. > +ifeq ($(BR2_FORCE_HOST_BUILD),y) > +define suitable-host-package > +$(shell exit 1) > +endef It is little confusing that the description that only applies to the "real" suitable-host-package is above this dummy implementation, so I've moved the conditional above. The $(shell exit 1) part isn't really needed as we look at the string expansion of the macro, so I've dropped that. I also slightly reworded the help text. Committed with those changes, thanks.
diff --git a/Config.in b/Config.in index 6b5b2b043c..0096ef389f 100644 --- a/Config.in +++ b/Config.in @@ -678,6 +678,16 @@ config BR2_COMPILER_PARANOID_UNSAFE_PATH and external toolchain backends (through the toolchain wrapper). +config BR2_FORCE_HOST_BUILD + bool "Force the building of host dependencies" + help + This option forces Buildroot to build all available host + dependencies, even if they are already installed on the + system. + This option can be used to ensure that the download cache of + source archives for packages remain consistent between + different build hosts. This option will increase build time. + config BR2_REPRODUCIBLE bool "Make the build reproducible (experimental)" # SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4 diff --git a/support/dependencies/dependencies.mk b/support/dependencies/dependencies.mk index 563574d6ad..a0d857ce6b 100644 --- a/support/dependencies/dependencies.mk +++ b/support/dependencies/dependencies.mk @@ -9,9 +9,15 @@ # can be the candidate to be checked. If not present, the check-host-$(1).sh # script should use 'which' to find a candidate. The script should return # the path to the suitable host tool, or nothing if no suitable tool was found. +ifeq ($(BR2_FORCE_HOST_BUILD),y) +define suitable-host-package +$(shell exit 1) +endef +else define suitable-host-package $(shell support/dependencies/check-host-$(1).sh $(2)) endef +endif # host utilities needs host-tar to extract the source code tarballs, so # ensure check-host-tar.mk is included before the rest include support/dependencies/check-host-tar.mk