Bug 16350

Summary: cairo-test.c: make check fails for cairo 1.6.4 on Mac OS X 10.4.11 PPC
Product: cairo Reporter: cfr <reescf>
Component: generalAssignee: Carl Worth <cworth>
Status: RESOLVED INVALID QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: critical    
Priority: medium    
Version: 1.6.4   
Hardware: PowerPC   
OS: Mac OS X (All)   
Whiteboard:
i915 platform: i915 features:

Description cfr 2008-06-14 07:24:45 UTC
Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007;
root:xnu-792.24.17~1/RELEASE_PPC
gcc 4.0.1

1) ./configure --disable-quartz
2) edit Makefiles to replace "-include render.h renderproto.h" with "-include
render.h -include renderproto.h"
3) edit libtool to replace "-dynamiclib" with "-dynamiclib -flat_namespace"
4) make
5) make check

Also tried without step 3 with the same results.

Making check in src
make  check-TESTS
Compiler doesn't support symbol visibility; skipping test
PASS: check-def.sh
Compiler doesn't support symbol visibility; skipping test
PASS: check-plt.sh
Checking public headers for missing cairo_public decorators
PASS: check-headers.sh
Checking source files for missing or misplaced #include "cairoint.h"
PASS: check-cairoint.sh
Checking documentation for incorrect syntax
PASS: check-doc-syntax.sh
==================
All 5 tests passed
==================
Making check in doc
Making check in public
make  check-TESTS
At least one of cairo-undocumented.txt and cairo-unused.txt not found.
Skipping test.
PASS: check-doc-coverage.sh
Checking documentation for incorrect syntax
PASS: check-doc-syntax.sh
==================
All 2 tests passed
==================
make[2]: Nothing to be done for `check-am'.
Making check in boilerplate
make[1]: Nothing to be done for `check'.
Making check in test
Making check in pdiff
make[2]: Nothing to be done for `check'.
Making check in .
make  imagediff png-flatten  
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -D_GNU_SOURCE -I. -I./pdiff -I../boilerplate -I../pixman/src -I../src -I../src -I/usr/local/include/freetype2 -I/usr/local/include   -I/usr/local/include   -I/usr/local/include/libpng12   -include render.h -include renderproto.h -DXTHREADS -I/usr/local/include -I/usr/local/include/X11/extensions -I/usr/X11R6/include    -I/usr/X11R6/include -I/usr/local/include/pixman-1     -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wdeclaration-after-statement -Wold-style-definition -Wno-missing-field-initializers -Wno-unused-parameter -Wno-long-long -Winline -fno-strict-aliasing    -g -O2 -MT cairo-test.lo -MD -MP -MF .deps/cairo-test.Tpo -c -o cairo-test.lo cairo-test.c
 gcc -DHAVE_CONFIG_H -I. -I.. -D_GNU_SOURCE -I. -I./pdiff -I../boilerplate -I../pixman/src -I../src -I../src -I/usr/local/include/freetype2 -I/usr/local/include -I/usr/local/include -I/usr/local/include/libpng12 -include render.h -include renderproto.h -DXTHREADS -I/usr/local/include -I/usr/local/include/X11/extensions -I/usr/X11R6/include -I/usr/X11R6/include -I/usr/local/include/pixman-1 -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wdeclaration-after-statement -Wold-style-definition -Wno-missing-field-initializers -Wno-unused-parameter -Wno-long-long -Winline -fno-strict-aliasing -g -O2 -MT cairo-test.lo -MD -MP -MF .deps/cairo-test.Tpo -c cairo-test.c  -fno-common -DPIC -o .libs/cairo-test.o
cairo-test.c: In function 'cairo_test_fini':
cairo-test.c:132: error: implicit declaration of function 'FcFini'
cairo-test.c:132: warning: nested extern declaration of 'FcFini'
cairo-test.c: In function 'cairo_test_expecting':
cairo-test.c:560: warning: format '%d' expects type 'int', but argument 6 has type 'size_t'
make[3]: *** [cairo-test.lo] Error 1
make[3]: Target `imagediff' not remade because of errors.
make[3]: Target `png-flatten' not remade because of errors.
make[2]: *** [check-am] Error 2
make[1]: *** [check-recursive] Error 1
make: *** [check-recursive] Error 1

I don't know enough to know whether this is a serious problem or not.

- cfr
Comment 1 cfr 2008-06-18 13:35:01 UTC
Update:

If I edit test/cairo-test.c so that the line "#include <fontconfig/fontconfig.h>" instead reads "#include </usr/local/include/fontconfig/fontconfig.h>", I get past this error. The same error then occurs regarding test/font-options.c and the same edit lets me get past it. This finally gets through make check with  11 of 173 tests failing (ignoring all those requiring the DISPLAY variable to be set which it isn't in this environment). But all those failures look minor to me.  So, setting aside the tests which require X11, these edits let me get through the test suite.

But I cannot figure out how to get through it without hard-coding the include path for fontconfig.h. I think what is happening is that configure is finding the updated version of fontconfig in /usr/local and make compiles against that, but when I run the test suite, it is using the old version of fontconfig in /usr/X11R6 which does not include the FcFini function and I do not know how to stop it doing this.

(Note, I ignore the tests requiring X11 because these parts of Cairo's test suite always fail for me so it seemed better to concentrate on the tests which usually pass.)

- cfr
Comment 2 Chris Wilson 2008-10-10 15:52:29 UTC
This reads like a system configuration issue causing it to compile against one version of the library but link against the other. A nuisance, but hopefully you'll have better success with 1.8.0 as quite a lot of effort went into making the build system more robust across the various architectures (notably win32 and OS/X).
You're right to concentrate on only the new failures between releases (though reducing the total number of failures to zero is the ultimate goal, whilst increasing the decision coverage...) So please do try the latest stable release and let us know how it fares. Thanks.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.