Hello, My apologies for taking so long to get back to you.
> Hi, > > > This build failed on which arch. ? > > > > This is on an amd64 system. > > > In both files I see the declaration is the same: > > > > FRIBIDI_ENTRY FriBidiCharType > > fribidi_get_bidi_type ( > > FriBidiChar ch /* input character */ > > ) FRIBIDI_GNUC_CONST; > > > > FriBidiChar is defined in lib/fribidi-types.h: > > typedef FRIBIDI_UNICHAR FriBidiChar; > > > > in the same header file, FRIBIDI_UNICHAR is defined as follows: > > #ifndef FRIBIDI_UNICHAR > > # define FRIBIDI_UNICHAR FRIBIDI_UNICHAR_LOCAL > > #endif /* !FRIBIDI_UNICHAR */ > > > > FRIBIDI_UNICHAR_LOCAL is also defined in lib/fribidi-types.h (a 59 lines > > piece of code) > > > > Well, there are actually three possible definitions here (lines 52, 95, 98): > > http://sources.debian.net/src/fribidi/0.19.5-2/lib/fribidi-types.h?hl=52,95,98#L52 > > > I will, however, investigate further to check which of the preprocessor macros > kicks in. I will get back to you once this is done. > Looking into this indeed two different definitions of FRIBIDI_UNICHAR_LOCAL are being picked up. In lib/.libs/fribidi-bidi-types.o, FRIBIDI_UNICHAR_LOCAL expands to wchar_t (from line 95), whereas in bin/fribidi-bidi-types.o, FRIBIDI_UNICHAR_LOCAL expands to fribidi_uint32 (from line 97). This difference is caused by SIZEOF_WCHAR_T being undefined (!) in bin/fribidi-bidi-types.o. This, again, is the result of bin/fribidi-bidi-types.c not actually including config.h, whereas lib/fribidi-bidi-types.c would include lib/common.h, when eventually does include config.h. It seems the problem would best be fixed by uniformly having #if HAVE_CONFIG_H+0 # include <config.h> #endif as first preprocessor directive in every .c file (this is taken from common.h). Best, Michael
pgplE0ewx5dA3.pgp
Description: PGP signature