summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2020-12-28 21:04:34 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-12-31 11:53:26 +0000
commit95c76b9bd458a10277c9df37d15d86203ec8f10f (patch)
tree6f0937d7ea784cbc0b0f820920c7e373af38091f
parent2ccb91bc740878f030002fb1a373a708bd125645 (diff)
downloadpoky-95c76b9bd458a10277c9df37d15d86203ec8f10f.tar.gz
ccache.bbclass: use ccache from host distribution
ccache 4.x has hard dependencies on cmake-native (used as build system) and zstd, which means inserting ccache-native as DEPENDS into everything creates circular dependencies which are impossible to break. ccache 3.x did not have this problem as it used plain makefiles and an in-tree copy of zlib. (From OE-Core rev: f5b29367af4d8e5daea5771264774aa49519f9a8) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/ccache.bbclass3
-rw-r--r--meta/conf/bitbake.conf2
-rw-r--r--meta/lib/oeqa/selftest/cases/buildoptions.py8
3 files changed, 7 insertions, 6 deletions
diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
index b5457359ca..11a3f1cb52 100644
--- a/meta/classes/ccache.bbclass
+++ b/meta/classes/ccache.bbclass
@@ -1,5 +1,7 @@
1# 1#
2# Usage: 2# Usage:
3# - Install ccache package on the host distribution and set up a build directory
4#
3# - Enable ccache 5# - Enable ccache
4# Add the following line to a conffile such as conf/local.conf: 6# Add the following line to a conffile such as conf/local.conf:
5# INHERIT += "ccache" 7# INHERIT += "ccache"
@@ -47,7 +49,6 @@ python() {
47 # quilt-native doesn't need ccache since no c files 49 # quilt-native doesn't need ccache since no c files
48 if not (pn in ('ccache-native', 'quilt-native') or 50 if not (pn in ('ccache-native', 'quilt-native') or
49 bb.utils.to_boolean(d.getVar('CCACHE_DISABLE'))): 51 bb.utils.to_boolean(d.getVar('CCACHE_DISABLE'))):
50 d.appendVar('DEPENDS', ' ccache-native')
51 d.setVar('CCACHE', 'ccache ') 52 d.setVar('CCACHE', 'ccache ')
52} 53}
53 54
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 92b6866d4d..af614ff347 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -498,7 +498,7 @@ HOSTTOOLS += " \
498HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}" 498HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}"
499 499
500# Link to these if present 500# Link to these if present
501HOSTTOOLS_NONFATAL += "aws gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo" 501HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo"
502 502
503# Temporary add few more detected in bitbake world 503# Temporary add few more detected in bitbake world
504HOSTTOOLS_NONFATAL += "join nl size yes zcat" 504HOSTTOOLS_NONFATAL += "join nl size yes zcat"
diff --git a/meta/lib/oeqa/selftest/cases/buildoptions.py b/meta/lib/oeqa/selftest/cases/buildoptions.py
index e91f0bd18f..d0f6477300 100644
--- a/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -33,10 +33,10 @@ class ImageOptionsTests(OESelftestTestCase):
33 self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed) 33 self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed)
34 34
35 def test_ccache_tool(self): 35 def test_ccache_tool(self):
36 bitbake("ccache-native") 36 bb_vars = get_bb_vars(['HOSTTOOLS_DIR'], 'm4-native')
37 bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir'], 'ccache-native') 37 p = bb_vars['HOSTTOOLS_DIR'] + "/" + "ccache"
38 p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/" + "ccache" 38 if not os.path.isfile(p):
39 self.assertTrue(os.path.isfile(p), msg = "No ccache found (%s)" % p) 39 self.skipTest("No ccache binary found in %s" % bb_vars['HOSTTOOLS_DIR'])
40 self.write_config('INHERIT += "ccache"') 40 self.write_config('INHERIT += "ccache"')
41 self.add_command_to_tearDown('bitbake -c clean m4-native') 41 self.add_command_to_tearDown('bitbake -c clean m4-native')
42 bitbake("m4-native -c clean") 42 bitbake("m4-native -c clean")