diff options
author | Alexander Kanavin <alex.kanavin@gmail.com> | 2020-12-28 21:04:34 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-12-31 11:53:26 +0000 |
commit | 95c76b9bd458a10277c9df37d15d86203ec8f10f (patch) | |
tree | 6f0937d7ea784cbc0b0f820920c7e373af38091f | |
parent | 2ccb91bc740878f030002fb1a373a708bd125645 (diff) | |
download | poky-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.bbclass | 3 | ||||
-rw-r--r-- | meta/conf/bitbake.conf | 2 | ||||
-rw-r--r-- | meta/lib/oeqa/selftest/cases/buildoptions.py | 8 |
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 += " \ | |||
498 | HOSTTOOLS += "${@'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 ''}" | 498 | HOSTTOOLS += "${@'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 |
501 | HOSTTOOLS_NONFATAL += "aws gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo" | 501 | HOSTTOOLS_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 |
504 | HOSTTOOLS_NONFATAL += "join nl size yes zcat" | 504 | HOSTTOOLS_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") |