[ccache] CCACHE_HARDLINK and timestamps

Martin Pool mbp at sourcefrog.net
Tue Apr 18 07:28:49 GMT 2006


On  7 Apr 2006, Richard Laager <rlaager at wiktel.com> wrote:
> On Fri, 2006-04-07 at 14:28 +1000, Martin Pool wrote:
> > On 06/04/2006, at 1:09 PM, Richard Laager wrote:
> > 
> > > The man page says:
> > > "Using hard links is faster, but can confuse programs like ???make??? that
> > > rely on modification times."
> > >
> > > Perhaps I'm missing something obvious, but wouldn't it be easy to  
> > > link()
> > > then do the equivalent of `touch` on the file? Would changing the
> > > timestamp on the file in the cache cause any problems?
> > 
> > The mtime is stored in the inode, which is shared between all links  
> > to the file.  If you did that then any other directories that  
> > contained the object file would also see its mtime change, possibly  
> > causing a rebuild over there.  Still, it does seem like it'd be  
> > better to touch the file.
> 
> Right, but rebuilding too often is safer than not rebuilding when
> necessary. Also, since the output of ccache is the object code, the
> unnecessary rebuilding that would happen is just linking, which isn't
> *as* bad as, say, compiling. Finally, the relinking is only going to
> happen when you re-run make in that other directory. I'd imagine people
> generally run make when they have made changes and need a rebuild, so
> the relinking impact in the vast majority of cases (possibly all?) is
> zero.
> 
> Perhaps I'll look at making a patch. If necessary, I could make a
> separate parameter control the touching.

Well, that sounds pretty reasonable to me.  But tridge has gone very
quiet on this list...

-- 
Martin


More information about the ccache mailing list