The fcLangCharSets array in fc-lang/fclang.h, despite not being that large at 6044 bytes in total, is spread across 146 variables. None of this data is constant so it is not shared between processes and must be relocated at startup. Is it possible to write this data in a form which requires no run-time calculations? As far as I can tell the data in fcLangCharSets is readonly at runtime, although there is code which manipulates other FcLangCharSet structs.
This might be fixable now. With the mmap cache, it should in principle be possible to generate the charsets in fclang.h in mmappable form, with integer indices instead of pointers.
Yes. It is fixable now, and ought to be about an evening's work for me. I'll try to get to it soon.
I've committed a patch for this bug, but some testing would be useful.
This is fixed now (and Takashi Iwai fixed some subtle bugs here; thanks!).
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.