If you build either of the new Mozilla products (firefox-2.0.x,
seamonkey-1.1.x) out of the box or thunderbird-2.0.x with
--enable-canvas, there are linking failures in libgklayout.so with
undefined references to some X library functions. The fix in Seamonkey
right now is this:

sed -i -e '/MOZ_JS_LIBS/a\
\t\t$(MOZ_XFT_LIBS) \\' layout/build/Makefile.in

After looking into this a bit, I'd like to propose a change because I
think this is a little suboptimal. What I'd rather see is this:

cat >> layout/build/Makefile.in << "EOF"
ifdef MOZ_ENABLE_CANVAS
EXTRA_DSO_LDOPTS += -lX11 -lXrender
endif
EOF

The reason for the linking failures is because the canvas
functionality is making use of cairo-xlib-xrender. Canvas support is
now on by default for firefox and seamonkey. If the in-tree cairo is
being used, configure manually adds -lXrender -lX11 to the
MOZ_CAIRO_LIBS. But if you're using --enable-system-cairo, it simply
uses the pkg-config check for cairo. This doesn't include the specific
backend it needs in the canvas. It should also check for
cairo-xlib-xrender on the condition that the canvas is being used.
Here's the upstream bug which hasn't been resolved:

https://bugzilla.mozilla.org/attachment.cgi?id=242438

I can confirm that building firefox with --disable-canvas requires no
changes to the build.

So, I have two problems with what's in the book right now. First, it's
adding libraries for linking under all conditions. Second, by using
$(MOZ_XFT_LIBS), libXft, libfreetype, libfontconfig, and libz are
being pulled in. I'm certain that the only necessary libraries are
libX11 and libXrender judging by the undefined reference errors:
XFreePixmap, XRenderFindStandardFormat, XListPixmapFormats and XFree.

What do you guys think?

--
Dan
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to