[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