Control: retitle -1 ccache may wrongly output a cached dependency list
Control: severity -1 important

This is at least important, maybe serious.

On Wed, 1 Feb 2017 12:58:03 +0200 Marko Lindqvist <cazf...@gmail.com> wrote:
> Package: ccache
> Version: 3.3.3-1
> 
> Building SDL2_mixer-2.0.1
> (https://www.libsdl.org/projects/SDL_mixer/release/) multiple times
> with ccache enabled, following reproducible problem occurs.
> 
> 1) Build SDL2_mixer in first source tree. I've used separate builddir
> when doing so.
> 2) Delete source and build trees used in step 1 so that files in them
> will not be found later
> 3) Rebuild SDL2_mixer in another (differently named) tree
> 
>  Latter build fails with error messages complaining about files
> missing in the first, deleted, tree. Such paths should be stored
> nowhere as we are talking about completely clean builds here. Ccache
> is the thing that does store things between builds, so seems like
> likely culprint. Further, issue does not occur if one does 'ccache -C'
> before the second build.
> 
>  I'll send the exact error message once I have opportunity to
> reproduce this again. Anyway, it was about .deps (again; ccache
> involvement makes sense as those are created by compiler for which
> ccache caches stuff)

I also just hit this with the linux package.  On some architectures it
builds kernels with and without the PREEMPT_RT patches.  I found that a
dependency list generated from a PREEMPT_RT build may be reused for a
standard build; this caused a build failure because the patched source
directory had not yet been created.

The two commands are:

  gcc -Wp,-MD,scripts/genksyms/.parse.tab.o.d -Iscripts/genksyms -Wall 
-Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89  
-I/build/linux-4.9.10/scripts/genksyms -c -o scripts/genksyms/parse.tab.o 
scripts/genksyms/parse.tab.c
  gcc -Wp,-MD,scripts/genksyms/.parse.tab.o.d -Iscripts/genksyms -Wall 
-Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89  
-I/build/linux-4.9.10/debian/build/source_rt/scripts/genksyms -c -o 
scripts/genksyms/parse.tab.o scripts/genksyms/parse.tab.c

and the output in .parse.tab.o.d is (for the latter):

scripts/genksyms/parse.tab.o: scripts/genksyms/parse.tab.c \
 /usr/include/stdc-predef.h /usr/include/assert.h /usr/include/features.h \
 /usr/include/x86_64-linux-gnu/sys/cdefs.h \
 /usr/include/x86_64-linux-gnu/bits/wordsize.h \
 /usr/include/x86_64-linux-gnu/gnu/stubs.h \
 /usr/include/x86_64-linux-gnu/gnu/stubs-64.h /usr/include/stdlib.h \
 /usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h \
 /usr/include/x86_64-linux-gnu/bits/waitflags.h \
 /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
 /usr/include/x86_64-linux-gnu/sys/types.h \
 /usr/include/x86_64-linux-gnu/bits/types.h \
 /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/time.h \
 /usr/include/endian.h /usr/include/x86_64-linux-gnu/bits/endian.h \
 /usr/include/x86_64-linux-gnu/bits/byteswap.h \
 /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
 /usr/include/x86_64-linux-gnu/sys/select.h \
 /usr/include/x86_64-linux-gnu/bits/select.h \
 /usr/include/x86_64-linux-gnu/bits/sigset.h \
 /usr/include/x86_64-linux-gnu/bits/time.h \
 /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
 /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
 /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
 /usr/include/x86_64-linux-gnu/bits/stdlib-float.h /usr/include/string.h \
 /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
 /usr/include/x86_64-linux-gnu/bits/string2.h \
 /build/linux-4.9.10/debian/build/source_rt/scripts/genksyms/genksyms.h \
 /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
 /usr/include/wchar.h /usr/lib/gcc/x86_64-linux-gnu/6/include/stdarg.h \
 /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
 /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
 /usr/include/x86_64-linux-gnu/bits/stdio.h

Ben.

-- 
Ben Hutchings
Any sufficiently advanced bug is indistinguishable from a feature.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to