[Fontconfig] Broken "-enable-large-file" handling
Juergen Borleis
fb at kreuzholzen.de
Wed May 13 08:26:34 UTC 2020
Hi Akira,
Akira TAGOH wrote:
> Sorry for the late reply, I was away from my computer for a while.
No problem.
> On Fri, May 1, 2020 at 4:20 AM Juergen Borleis <fb at kreuzholzen.de> wrote:
> > 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
>
> This should be already done though `#include "fcint.h"`. do you have
> -DHAVE_CONFIG_H on your compiler option?
> or are there any situations where it is not doing so? that should be
> what we need to fix then.
It took me a while to find again the root cause of the problem: the error
happens in "fcxml.c" in function FcConfigParseAndLoadDir(). The while-loop
terminates immediately due to the readdir()'s return value of NULL. According
to the manual, NULL can be just the end of the directory stream or an error,
depending on the *errno* value. Thus, currently FcConfigParseAndLoadDir() just
returns an empty directory - but the "errno" variable is 75 in my case: Value
too large for the defined data type.
This issue can be solved by including "fcint.h" as the *first* include
instruction. All other files are doing so, but not "fcxml.c". On the other hand
hiding the "config.h" inclusion in a separate file seems error prone to me. But
its up to you, what the correct fix for this issue is.
Regards
Jürgen
More information about the Fontconfig
mailing list