diff options
-rw-r--r-- | classes/base.bbclass | 9 | ||||
-rw-r--r-- | conf/bitbake.conf | 37 |
2 files changed, 27 insertions, 19 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass index bc50c67d4b..7f2e81f139 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -1179,10 +1179,11 @@ def base_after_parse(d): override = bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1) if override != '0': paths = [] - for p in [ "${PF}", "${P}", "${PN}", "files", "" ]: - path = bb.data.expand(os.path.join("${FILE_DIRNAME}", p, "${MACHINE}"), d) - if os.path.isdir(path): - paths.append(path) + for a in [ "${MACHINE}" ] + bb.data.getVar('MACHINE_FALLBACK', d).split(): + for p in [ "${PF}", "${P}", "${PN}", "files", "" ]: + path = bb.data.expand(os.path.join("${FILE_DIRNAME}", p, a), d) + if os.path.isdir(path): + paths.append(path) if len(paths) != 0: for s in srcuri.split(): if not s.startswith("file://"): diff --git a/conf/bitbake.conf b/conf/bitbake.conf index 8b6956453b..d26efe84f0 100644 --- a/conf/bitbake.conf +++ b/conf/bitbake.conf @@ -615,21 +615,6 @@ BUILDCFG_VARS_append_arm = " TARGET_FPU" BUILDCFG_VARS_append_armeb = " TARGET_FPU" BUILDCFG_NEEDEDVARS ?= "TARGET_ARCH TARGET_OS" -### -### Config file processing -### - -# This means that an envionment variable named '<foo>_arm' overrides an -# environment variable '<foo>' (when ${TARGET_ARCH} is arm). And the same: an -# environment variable '<foo>_ramses' overrides both '<foo>' and '<foo>_arm -# when ${MACHINE} is 'ramses'. And finally '<foo>_local' overrides anything. -# -# This works for functions as well, they are really just environment variables. -# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration. -OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}" -# Alternative OVERRIDES definition without "fail fast", usually only for native building and Scratchbox toolchains. -#OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}" - ################################################################## # Include the rest of the config files. ################################################################## @@ -651,6 +636,28 @@ require conf/sanity.conf require conf/abi_version.conf require conf/enterprise.conf +### +### Config file processing +### + +# A list of machines that ought to be used when looking for +# overrides. For example, geodegx and geodelx machines can have geode +# as a fallback and then avoiding duplicated content between them. +MACHINE_FALLBACK ?= "" + +MACHINE_OVERRIDES = "${@':'.join([bb.data.getVar('MACHINE', d)] + bb.data.getVar('MACHINE_FALLBACK', d).split()) or ':'}" + +# This means that an envionment variable named '<foo>_arm' overrides an +# environment variable '<foo>' (when ${TARGET_ARCH} is arm). And the same: an +# environment variable '<foo>_ramses' overrides both '<foo>' and '<foo>_arm +# when ${MACHINE} is 'ramses'. And finally '<foo>_local' overrides anything. +# +# This works for functions as well, they are really just environment variables. +# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration. +OVERRIDES ?= "local:${MACHINE_OVERRIDES}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}" +# Alternative OVERRIDES definition without "fail fast", usually only for native building and Scratchbox toolchains. +#OVERRIDES ?= "local:${MACHINE_OVERRIDES}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}" + ################################################################## # Weak variables (usually to retain backwards compatibility) ################################################################## |