Matthias Clasen wrote: > > Actually, thinking about FcDirCacheValid some more, I don't see how the > single per-file timestamp can work at all with multi-platform cache > files. Imagine that a new font gets installed in a directory with a > multi-platform cache. If you then run fc-cache on i386, it'll update > only the i386 section of the cache, but update the timestamp, marking > the whole cache file as uptodate, so a later run on x86_64 will not > update the x86_64 segment. I think the only solution to this is to put > per-segment timestamps into the file, and use them to determine > cache-outdatedness on a per-platform basis. Or simply use one cache file > per platform... Oops, you're right. How about this: when we find that the cache is invalidated on any platform, we remove all stale sections from other platforms. That ought to be sufficient to avoid staleness (safety). Of course, an update to a file which is not stale preserves existing sections (liveness). With this solution, in order to fully update cache files, you'll have to run fc-cache on all relevant platforms once, which is the best we can do (without cross-platform cache creation) anyway. pat