[cairo] Recommendations for 1.4.0
Dave Yeo
daveryeo at telus.net
Sat Mar 3 22:45:34 PST 2007
On Sat, 03 Mar 2007 16:13:20 -0500, Behdad Esfahbod wrote:
> - Fix mutex initialization in win32, os2, and beos backends. They are
>out of synch with the actually mutexes declared, and that causes link
>errors if not using pthread on win32. I'm wondering if we should go for
>the backup plan:
>
>http://lists.freedesktop.org/archives/cairo/2007-February/009679.html
Ok, I tried compiling and doing a make check on 1.3.16. First problem
is that in test/makefile.am we need this patch
--- Makefile.am.bak Fri Mar 2 21:04:02 2007
+++ Makefile.am Sat Mar 3 22:24:54 2007
@@ -465,7 +465,7 @@
LDADD += -lpthread
endif
-SUPPORT_PROGS += imagediff png-flatten
+SUPPORT_PROGS += imagediff$(EXEEXT) png-flatten$(EXEEXT)
if CAIRO_CAN_TEST_PDF_SURFACE
SUPPORT_PROGS += pdf2png
please apply. Actually looking at above pdf2png should also have
$(EXEEXT) added.
Anyways make check then ends with this
f:/usr/bin/sh.exe ../libtool --tag=CC --mode=link gcc.exe -g -O2 -o
imagediff.exe imagediff.o libcairotest.la -lpthread -lm
gcc.exe -g -O2 -o imagediff.exe imagediff.o
./.libs/cairotest.a -L/usr/local/lib
/usr/src/cairo-1.3.16/src/.libs/cairo.a
/usr/local/lib/libfontconfig_dll.a /usr/local/lib/libfreetype_dll.a
/usr/local/lib/expat.a /usr/local/lib/libpng12_dll.a -lz
-lpthread -lm -L/usr/local/lib -L/usr/local/lib
cairo-font.c:96
(/usr/src/cairo-1.3.16/src/.libs/cairo.a(cairo-font.o)): Undefined
symbol _cairo_font_face_mutex referenced from text segment
cairo-font.c:104
(/usr/src/cairo-1.3.16/src/.libs/cairo.a(cairo-font.o)): Undefined
symbol _cairo_font_face_mutex referenced from text segment
...
cairo-font.c:0 (/usr/src/cairo-1.3.16/src/.libs/cairo.a(cairo-font.o)):
More undefined symbol _cairo_font_face_mutex refs follow
make[3]: *** [imagediff.exe] Error 1
which I take is the mutex problem referred above
Dave
ps also something needs to be done about pthread on OS/2, I usually
edit config.h to comment out
#define HAVE_PTHREAD_H 1
in config.h
A better fix would be along the lines of win32 where you can have or
not have pthreads. Or perhaps a configure option.
pps also here configure has to be called with --enable-os2
--disable-xlib, not a big deal but xlib needs an older libc (EMX) and
is not compatible with the newer libc (klibc).
More information about the cairo
mailing list