Openembedded Core Discussions
 help / color / mirror / Atom feed
From: "Alexander Kanavin" <alex.kanavin@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: Alexander Kanavin <alex.kanavin@gmail.com>
Subject: [PATCH 20/22] ccache.bbclass: use ccache from host distribution
Date: Mon, 28 Dec 2020 21:04:34 +0100	[thread overview]
Message-ID: <20201228200436.78130-20-alex.kanavin@gmail.com> (raw)
In-Reply-To: <20201228200436.78130-1-alex.kanavin@gmail.com>

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.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/classes/ccache.bbclass                  | 3 ++-
 meta/conf/bitbake.conf                       | 2 +-
 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 @@
 #
 # Usage:
+# - Install ccache package on the host distribution and set up a build directory
+#
 # - Enable ccache
 #   Add the following line to a conffile such as conf/local.conf:
 #   INHERIT += "ccache"
@@ -47,7 +49,6 @@ python() {
     # quilt-native doesn't need ccache since no c files
     if not (pn in ('ccache-native', 'quilt-native') or
             bb.utils.to_boolean(d.getVar('CCACHE_DISABLE'))):
-        d.appendVar('DEPENDS', ' ccache-native')
         d.setVar('CCACHE', 'ccache ')
 }
 
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 += " \
 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 ''}"
 
 # Link to these if present
-HOSTTOOLS_NONFATAL += "aws gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo"
+HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo"
 
 # Temporary add few more detected in bitbake world
 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):
         self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed)
 
     def test_ccache_tool(self):
-        bitbake("ccache-native")
-        bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir'], 'ccache-native')
-        p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/" + "ccache"
-        self.assertTrue(os.path.isfile(p), msg = "No ccache found (%s)" % p)
+        bb_vars = get_bb_vars(['HOSTTOOLS_DIR'], 'm4-native')
+        p = bb_vars['HOSTTOOLS_DIR'] + "/" + "ccache"
+        if not os.path.isfile(p):
+            self.skipTest("No ccache binary found in %s" % bb_vars['HOSTTOOLS_DIR'])
         self.write_config('INHERIT += "ccache"')
         self.add_command_to_tearDown('bitbake -c clean m4-native')
         bitbake("m4-native -c clean")
-- 
2.29.2


  parent reply	other threads:[~2020-12-28 20:05 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-28 20:04 [PATCH 01/22] devtool: gitsm:// should be handled same as git:// in upgrades Alexander Kanavin
2020-12-28 20:04 ` [PATCH 02/22] ovmf: upgrade 202008 -> 202011 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 03/22] libksba: update 1.4.0 -> 1.5.0 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 04/22] libjitterentropy: update 2.2.0 -> 3.0.0 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 05/22] icu: update 68.1 -> 68.2 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 06/22] gnutls: update 3.6.15 -> 3.7.0 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 07/22] gnupg: update 2.2.23 -> 2.2.26 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 08/22] boost: update 1.74.0 -> 1.75.0 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 09/22] kexec-tools: update 2.0.20 -> 2.0.21 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 10/22] vulkan-samples: update to latest revision Alexander Kanavin
2020-12-28 20:04 ` [PATCH 11/22] libpam: update 1.3.1 -> 1.5.1 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 12/22] autotools.bbclass: make it possible to inhibit m4 deletion Alexander Kanavin
2020-12-28 20:04 ` [PATCH 13/22] bash: update 5.0 -> 5.1 Alexander Kanavin
2021-01-07 17:57   ` [OE-core] " Richard Purdie
2021-01-07 18:43     ` Joshua Watt
2021-01-07 19:07       ` Otavio Salvador
2021-01-07 19:10         ` Alexander Kanavin
2021-01-07 21:55       ` Richard Purdie
2020-12-28 20:04 ` [PATCH 14/22] strace: update 5.9 -> 5.10 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 15/22] python3-pytest: update 6.1.2 -> 6.2.1 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 16/22] mtools: update 4.0.25 -> 4.0.26 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 17/22] gnu-config: update to latest revision Alexander Kanavin
2020-12-28 20:04 ` [PATCH 18/22] cmake: update 3.18.4 -> 3.19.2 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 19/22] ccache: upgrade 3.7.11 -> 4.1 Alexander Kanavin
2020-12-28 20:04 ` Alexander Kanavin [this message]
2020-12-28 20:04 ` [PATCH 21/22] runtime_test.py: correct output check for bash 5.1 Alexander Kanavin
2020-12-28 20:04 ` [PATCH 22/22] gawk: add missing ptest dependency Alexander Kanavin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201228200436.78130-20-alex.kanavin@gmail.com \
    --to=alex.kanavin@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox