[Fontconfig] Format of cache file are different on 32bit and
64bit system.
Patrick Lam
plam at MIT.EDU
Sat Mar 25 19:28:30 PST 2006
Owen Taylor wrote:
>> Fundamentally it's impossible to use the same mmapped structures for
>> both the 32bit and 64bit architectures, so in principle there should be
>> two copies of the data in the cache file.
>
> While I'm not going to encourage changing the file format, at this
> point :-), the "fundamentally it's impossible" statement strikes me as
> incorrect ... the GTK+ memmapped cache file formats, are, for example,
> architecture independent.
It might not, strictly speaking, be completely impossible, but it's
pretty difficult to do so, since there are a lot more interwoven
pointers within the fontconfig data structures than within the GTK+ data
structures.
> If you rely on simply dumping native structures onto disk, how do you
> deal with differences in architecture and endianess for, say, cache
> files in a NFS mounted home directory? Or are there copies for
> every architecture in the file, not just 32/64 bit?
I generate a signature of each arch, which contains the sizes of all of
the relevant data structures and the arch's endianness. When fontconfig
is run on a new arch, it generates caches for that arch; if you run
fc-cache, then it generates per-directory caches in
/var/cache/fontconfig, and if you just run a fontconfig client, it
updates ~/.fonts.cache. Both the global and per-directory cache can
contain arbitrary numbers of arches.
pat
More information about the Fontconfig
mailing list