lmi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi] Transient ccache error


From: Greg Chicares
Subject: [lmi] Transient ccache error
Date: Wed, 22 Mar 2023 12:51:59 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0

I created a brand-new chroot and rebuilt everything therein.
Examining the output of 'ccache -svv', I saw numerous cache
misses, although I thought I had eliminated any possibility
of that (in lmi itself, that is; autotooled libraries always
have some misses, but I've given them their own ccache
directory).

To debug this, I did 'make clean' and set "CCACHE_DEBUG=1",
then rebuilt. Again, I saw numerous cache misses. I looked
at some of the "*.ccache-log" files for x86-pc-gnu, and saw:
  Compiler not expected to produce an object file
However, googling for that yields:
  No results found for "Compiler not expected to produce an object file"
so this problem would seem to be quite rare.

Then I removed all cache files with 'ccache --clear' and
rebuilt again, and everything was fine: the build succeeded,
with zero cache misses. Similarly, I expunged the newly
created chroot and recreated it, and everything was fine.

Now I can't reproduce the problem--and the "*.ccache-log"
files with that error message were expunged when I
recreated the chroot, so I can't investigate it further.
Perhaps it'll never happen again; still, it bothers me
that I can't even imagine how it could have occurred. This
cache is shared with a predecessor chroot, deliberately,
to make creation of a brand-new chroot (using exactly the
same compiler) faster. (In this case, that condition
didn't hold, because the predecessor chroot had
  $ gcc --version
  gcc (Debian 12.2.0-3) 12.2.0
while the newer chroot has
  gcc (Debian 12.2.0-14) 12.2.0
). I may have interrupted a build with Ctrl-C, but I'd
expect ccache to recover from that when a fresh build
runs to completion. And ccache, AIUI, caches preprocessed
source files, but not compiler commands, yet the build
commands in lmi's makefiles are designed to produce object
files; the only invocations that aren't designed that way
are the ones used for the 'physical_closure' target, but
building that target never (except in this transient case,
perhaps) causes 'ccache -svv' to show any cache misses.

Since the problem seems to have resolved itself, all I
can do is record what I know about it here.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]