From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] ccache: Integrate ccache-native
Date: Wed, 22 Jun 2011 16:53:20 +0100 [thread overview]
Message-ID: <1308758000.20015.77.camel@rex> (raw)
In-Reply-To: <1a80a4e3bd1868367784ed77e7912935eb30748b.1308302102.git.wenzong.fan@windriver.com>
On Fri, 2011-06-17 at 17:19 +0800, wenzong.fan@windriver.com wrote:
> From: Wenzong Fan <wenzong.fan@windriver.com>
>
> 1) Add ccache as a native tool, for getting it built automatically make
> it as the dependency of bzip2; Also, the ccache will be included by SDK
> images;
>
> 2) Set CCACHE on a per recipe basis and add task 'mkccachedir' to create
> the CCACHE_DIR while start a package building;
>
> 3) Remove the duplicate 'ccache.inc' from 'meta/class/'.
>
> Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
> ---
> meta/classes/base.bbclass | 1 +
> meta/classes/ccache.bbclass | 21 +++++++++++++++++++++
> meta/classes/ccache.inc | 11 -----------
> meta/conf/bitbake.conf | 1 +
> meta/recipes-core/tasks/task-core-sdk.bb | 1 +
> meta/recipes-devtools/ccache/ccache.inc | 16 ++++++++++++++++
> meta/recipes-devtools/ccache/ccache_3.1.5.bb | 8 ++++++++
> meta/recipes-extended/bzip2/bzip2_1.0.6.bb | 2 ++
> 8 files changed, 50 insertions(+), 11 deletions(-)
> create mode 100644 meta/classes/ccache.bbclass
> delete mode 100644 meta/classes/ccache.inc
> create mode 100644 meta/recipes-devtools/ccache/ccache.inc
> create mode 100644 meta/recipes-devtools/ccache/ccache_3.1.5.bb
>
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index 119b052..a329b4e 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -2,6 +2,7 @@ BB_DEFAULT_TASK ?= "build"
>
> inherit patch
> inherit staging
> +inherit ccache
>
> inherit mirrors
> inherit utils
> diff --git a/meta/classes/ccache.bbclass b/meta/classes/ccache.bbclass
> new file mode 100644
> index 0000000..be37c18
> --- /dev/null
> +++ b/meta/classes/ccache.bbclass
> @@ -0,0 +1,21 @@
> +# Make ${CCACHE_DIR} if it is not existing
> +
> +python ccache_do_mkccachedir(){
> + import os
> +
> + ccache = bb.data.getVar('CCACHE', d, True)
> + ccache_dir = bb.data.getVar('CCACHE_DIR', d, True)
> + if len(ccache) == 0 or len(ccache_dir) == 0:
> + return
> +
> + try:
> + if not os.path.isdir(ccache_dir):
> + bb.note("Creating " + ccache_dir)
> + os.makedirs(ccache_dir)
> + except bb.fetch2.BBFetchException, e:
> + raise bb.build.FuncFailed(e)
> +}
> +
> +addtask mkccachedir before do_configure
> +
> +EXPORT_FUNCTIONS do_mkccachedir
You can do this in a much simpler way by just adding:
do_configure[dirs] += "${CCACHE_DIR}"
> diff --git a/meta/classes/ccache.inc b/meta/classes/ccache.inc
> deleted file mode 100644
> index d830a1b..0000000
> --- a/meta/classes/ccache.inc
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -# Make ccache use a TMPDIR specific ccache directory if using the crosscompiler,
> -# since it isn't likely to be useful with any other toolchain than the one we just
> -# built, and would otherwise push more useful things out of the default cache.
> -
> -CCACHE_DIR_TARGET = "${TMPDIR}/ccache"
> -
> -python () {
> - if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
> - bb.data.setVar('CCACHE_DIR', '${CCACHE_DIR_TARGET}', d)
> - bb.data.setVarFlag('CCACHE_DIR', 'export', '1', d)
> -}
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index 6d8a674..64b3651 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -391,6 +391,7 @@ export PATH
> CCACHE = "${@bb.which(bb.data.getVar('PATH', d, 1), 'ccache') and 'ccache '}"
> TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
>
> +export CCACHE_DIR = "${TMPDIR}/ccache/${TARGET_SYS}/${PN}"
Should this be HOST_SYS instead of TARGET_SYS?
> export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
> export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
> export F77 = "${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
> diff --git a/meta/recipes-core/tasks/task-core-sdk.bb b/meta/recipes-core/tasks/task-core-sdk.bb
> index 4aee0c2..52fdd75 100644
> --- a/meta/recipes-core/tasks/task-core-sdk.bb
> +++ b/meta/recipes-core/tasks/task-core-sdk.bb
> @@ -25,6 +25,7 @@ RDEPENDS_task-core-sdk = "\
> coreutils \
> cpp \
> cpp-symlinks \
> + ccache \
> diffutils \
> gcc \
> gcc-symlinks \
> diff --git a/meta/recipes-devtools/ccache/ccache.inc b/meta/recipes-devtools/ccache/ccache.inc
> new file mode 100644
> index 0000000..e9f7344
> --- /dev/null
> +++ b/meta/recipes-devtools/ccache/ccache.inc
> @@ -0,0 +1,16 @@
> +SUMMARY = "a fast C/C++ compiler cache"
> +DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \
> +by caching the result of previous compilations and detecting when the \
> +same compilation is being done again. Supported languages are C, C\+\+, \
> +Objective-C and Objective-C++."
> +HOMEPAGE = "http://ccache.samba.org"
> +SECTION = "devel"
> +LICENSE = "GPLv3+"
> +
> +SRC_URI = "http://samba.org/ftp/ccache/ccache-${PV}.tar.gz"
> +
> +inherit autotools
> +
> +BBCLASSEXTEND = "native"
> +
> +TARGET_CC_ARCH += "${LDFLAGS}"
> diff --git a/meta/recipes-devtools/ccache/ccache_3.1.5.bb b/meta/recipes-devtools/ccache/ccache_3.1.5.bb
> new file mode 100644
> index 0000000..9a967b2
> --- /dev/null
> +++ b/meta/recipes-devtools/ccache/ccache_3.1.5.bb
> @@ -0,0 +1,8 @@
> +require ccache.inc
> +
> +PR = "r0"
> +LICENSE = "GPLv3+"
> +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=80e92ec45d4fca91f127864fb9e5d932"
> +
> +SRC_URI[md5sum] = "b1a9684828eae68382d6afc98ce80d24"
> +SRC_URI[sha256sum] = "54afc35c672ce451e04a478cfc0eb74c1ba184e27ef24881206602aa0eb94d63"
> diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.6.bb b/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
> index f5b9ac1..4d445a5 100644
Please split this patch into a couple of changes, one of which just adds
the ccache-native recipe.
> --- a/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
> +++ b/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
> @@ -6,6 +6,8 @@ HOMEPAGE = "http://www.bzip.org/"
> SECTION = "console/utils"
> LICENSE = "bzip2"
> LIC_FILES_CHKSUM = "file://LICENSE;beginline=8;endline=37;md5=40d9d1eb05736d1bfc86cfdd9106e6b2"
> +
> +DEPENDS = "ccache-native"
> PR = "r3"
>
> SRC_URI = "http://www.bzip.org/${PV}/${BPN}-${PV}.tar.gz \
I'm not sure how we're going to trigger the generation of ccache-native
and I can understand the attraction of doing this but it isn't
acceptable unfortunately. Lets just drop this component of the patch for
now.
Cheers,
Richard
next prev parent reply other threads:[~2011-06-22 15:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-17 9:19 [PATCH 0/1] Integrate ccache-native wenzong.fan
2011-06-17 9:19 ` [PATCH 1/1] ccache: " wenzong.fan
2011-06-22 15:53 ` Richard Purdie [this message]
2011-06-21 15:45 ` [PATCH 0/1] " Mark Hatle
2011-06-22 1:37 ` wenzong fan
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=1308758000.20015.77.camel@rex \
--to=richard.purdie@linuxfoundation.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.