In fccfg.c, in the function FcConfigCompareValue, the following two calls are
m = FcConfigPromote (m, v);
v = FcConfigPromote (v, m);
the problem is, `m' and `v' are passed into FcConfigCompareValue, and the
prototype for FcConfigCompareValue in `fcint.h' declares them both as const.
This means that the definition for your function (which doesn't have them as
const) conflicts with the declaration.
The Tru64 UNIX vendor C compiler caught this, and most other vendor compilers do
too -- apparently the compiler you've been using (gcc, I would guess) doesn't.
The easy fix I chose was to remove the `const' from the declaration in fcint.h.
Patch is attached.
Created attachment 11 [details] [review]
remove const from FcConfigCompareValue declaration
The prototype is necessary for many C++ programs. We can easily work around
this by creating local variables to hold the coerced values.
I added a couple of non-const locals to fix this.
Double-lucky bug number! Lets close this after 12 years. :)