[OpenWrt-Devel] [PATCH] build: improve ccache support

Michael Jones mike at meshplusplus.com
Mon Jun 1 14:34:51 EDT 2020


On Mon, Jun 1, 2020 at 1:22 PM Felix Fietkau <nbd at nbd.name> wrote:

> On 2020-06-01 19:11, Michael Jones wrote:
> >
> >
> > On Mon, Jun 1, 2020 at 10:33 AM Roman Yeryomin <roman at advem.lv
> > <mailto:roman at advem.lv>> wrote:
> >
> >     Set CCACHE_DIR to $(TOPDIR)/.ccache and CCACHE_BASEDIR to $(TOPDIR).
> >     This allows to do clean and dirclean. Cache hit rate for test build
> >     after dirclean is ~65%.
> >     If CCACHE is enabled stats are printed out at the end of building
> >     process.
> >
> >     Signed-off-by: Roman Yeryomin <roman at advem.lv <mailto:roman at advem.lv
> >>
> >
> >
> > This certainly looks like an improvement.
> >
> > However, there is an important usage case that this change doesn't
> address.
> >
> > Frequently when I am working on OpenWRT related things, I have many
> > different workspaces all tied to the same git repository hosted
> > externally. The reason for this is to allow multiple builds to live and
> > run independently.
> >
> > Having the CCACHE_DIR be located *inside* the repository doesn't share
> > the cache between multiple workspaces.
> >
> > So can the CCACHE_DIR be made configurable at build time based on the
> > .config file? Perhaps it can default to this, and only be set to the
> > value in .config if provided? For my purposes, I would always set the
> > CCACHE_DIR to a path that all of my workspaces use.
> I don't think there's a need for that config option. You could simply
> add a .ccache symlink in your source dir and point it to your shared
> cache. I do the same with dl on my trees.
>
> - Felix
>

I disagree.

Having build behavior change based on a symlink is undesirable.

If it were a config option, it becomes a documented feature that is easily
discoverable in the menu config.

Additionally, having the ccache directory be a configuration option allows
it to persist across clones of the git repository, if the .config file is
stored in git. A symlink would need to be manually re-configured on each
clone.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20200601/f8f463bd/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list