[Fontconfig] Broken "-enable-large-file" handling
Juergen Borleis
fb at kreuzholzen.de
Thu Apr 30 18:51:59 UTC 2020
Hi,
a while ago I run my embedded device via NFS root and stumbled across an issue
in fontconfig: if your embedded device is a 32 bit system, but the host which
exports the NFS is a 64 bit system with a large filesystem, it can happen, it
exports 64 bit inodes via NFS the 32 bit system cannot handle - unless you
use "-enable-large-file" (which is the regular solution for this issue).
But in my case fontconfig stopped working, since the directories it searches for
XML files had inodes which fits into a 32 bit value, but the inodes of the XML
files in these directories didn't. So, from the fontconfig point of view there
are no XML files at all - and I wondered why it didn't honor my adapted XML
files...
Since the fonconfig's "configure" script already deals
with "--enable-large-file", we only need to ensure *all* source files have to
include its result: the "config.h".
A few source files already do that, but the most do not. And that was the root
cause of my inode size issue. Two solutions are possible:
1) adding the "#include <config.h>" in all source files
2) forcing the inclusion of the "config.h" via a
"-include $(top_builddir)/config.h"
parameter to the compiler.
1) needs to touch all source files, 2) needs to add the mentioned parameter to
the "AM_CPPFLAGS" variable (and removing the "#include <config.h>" from a few
source files).
What would be an acceptable patch? I already made one for solution 2) and for my
use case fontconfig works again.
Regards,
Juergen
More information about the Fontconfig
mailing list