diff options
Diffstat (limited to 'meta/classes/siteinfo.bbclass')
-rw-r--r-- | meta/classes/siteinfo.bbclass | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass index 03d4c4fd20..6a2e4bf560 100644 --- a/meta/classes/siteinfo.bbclass +++ b/meta/classes/siteinfo.bbclass @@ -153,7 +153,7 @@ python () { bb.fatal("Please add your architecture to siteinfo.bbclass") } -def siteinfo_get_files(d, no_cache = False): +def siteinfo_get_files(d, aclocalcache = False): sitedata = siteinfo_data(d) sitefiles = "" for path in d.getVar("BBPATH", True).split(":"): @@ -162,11 +162,17 @@ def siteinfo_get_files(d, no_cache = False): if os.path.exists(filename): sitefiles += filename + " " - if no_cache: return sitefiles + if not aclocalcache: + return sitefiles - # Now check for siteconfig cache files - # Use the files copied to the aclocal cache generated by autotools.bbclass - # to avoid races + # Now check for siteconfig cache files in the directory setup by autotools.bbclass to + # avoid races. + # + # ACLOCALDIR may or may not exist so cache should only be set to True from autotools.bbclass + # after files have been copied into this location. To do otherwise risks parsing/signature + # issues and the directory being created/removed whilst this code executes. This can happen + # when a multilib recipe is parsed along with its base variant which may be running at the time + # causing rare but nasty failures path_siteconfig = d.getVar('ACLOCALDIR', True) if path_siteconfig and os.path.isdir(path_siteconfig): for i in os.listdir(path_siteconfig): @@ -174,7 +180,6 @@ def siteinfo_get_files(d, no_cache = False): continue filename = os.path.join(path_siteconfig, i) sitefiles += filename + " " - return sitefiles # |