[ccache] Old code ccache hit always come back unless CCACHE_DISABLE is used

g.esp at free.fr g.esp at free.fr
Thu Jun 7 14:16:53 MDT 2012



----- Mail original -----
> De: "g esp" <g.esp at free.fr>
> À: "Joel Rosdahl" <joel at rosdahl.net>
> Cc: ccache at lists.samba.org
> Envoyé: Mardi 5 Juin 2012 22:48:48
> Objet: Re: [ccache] Old code ccache hit always come back unless CCACHE_DISABLE is used
> 
> 
> 
> ----- Mail original -----
> > De: "Joel Rosdahl" <joel at rosdahl.net>
> > À: "g esp" <g.esp at free.fr>
> > Cc: ccache at lists.samba.org
> > Envoyé: Samedi 2 Juin 2012 18:29:30
> > Objet: Re: [ccache] Old code ccache hit always come back unless
> > CCACHE_DISABLE is used
> > 
> > On 1 June 2012 12:12,  <g.esp at free.fr> wrote:
> > > On the no-fPIE case, using CCACHE_CPP2=1 change compilation to
> > > work.
> > > Any next recompilation even without CCACHE_CPP2=1 result in cache
> > > hit.
> > 
> > Yes, so this means that the compiler has a bug. You should be able
> > to
> > reproduce it by running these two commands:
> > 
> > /usr/bin/gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -include
> > ../config.h
> > -I../include -DLOCALEDIR="/usr/share/locale" -fsigned-char -Os
> > -march=i486 -mtune=pentium -pipe -fomit-frame-pointer -c -MT
> > lscpu.o
> > -MD -MP -MF .deps/lscpu.Tpo -E lscpu.c -o lscpu.i
> > /usr/bin/gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -include
> > ../config.h
> > -I../include -DLOCALEDIR="/usr/share/locale" -fsigned-char -Os
> > -march=i486 -mtune=pentium -pipe -fomit-frame-pointer -c lscpu.i -o
> > lscpu.o
> > 
> > As mentioned, the ccache workaround for this kind of bug is to set
> > CCACHE_CPP2=1.
> > 
> > -- Joel
> > 
> True, the second part fail for gcc-4.4.5 with
> lscpu.c: In function 'read_hypervisor':
> lscpu.c:446: error: can't find a register in class 'BREG' while
> reloading 'asm'
> lscpu.c:446: error: 'asm' operand has impossible constraints
> 
> the good new is that the issue is workaround on util-linux-2.21.2 as
> more recent compiler warn for undefined operation there
> 
This was wrong, that still fail with my gcc-4.4.5.
Just that I used during testing a wrong variable name instead of CCACHE_RECACHE, so I received from ccache the result of previous compilation made with CCACHE_CPP2=1.

So CCACHE_CPP2=1 is required for me to compile lscpu.

Gilles


More information about the ccache mailing list