[cairo] SIGSEGV in fbFetch (pixman/src/fbcompose.c)

Daigo YANAGIMOTO daigo at ocg.ori.u-tokyo.ac.jp
Thu Sep 15 00:04:32 PDT 2005


Hi all,

I built cairo 1.0.0, atk 1.10.1, pango 1.10.0, gtk+ 2.8.3
and so on, on a sparc Solaris8 with Sun Forte 6 update 2
compiler in order to use Acrobat Reader 7 (needs gtk+ 2).
I use libraries of OpenWindows, xrender-0.8.3 and xft-2.1.2 in
linking.

Compiling cairo ended almost without any problems except for
adding

#include <X11/Xlib.h>

to src/cairo-xlib-xrender.h .
Compiling other libraries ended with no trouble, too.

However, when I run Acrobat Reader, it ends after displaying the
logo picture without any messages.
So, I tried dbx and found that "fetchProcForPicture" in
pixman/src/fbcompose.c assigns 0x0 to "fetch" function pointer
in "fbFetch" as the following (just a part of dbx display).

---------------------------------------------------------------
t at 1 (l at 1) signal SEGV (no mapping at the fault address) in (unknown) at 0x0
0x00000000:     <bad address 0x0>
Current function is fbFetch
 2673       fetch(bits, x, width, buffer, indexed);
(/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t at 1
  [1] 0x0(0x1835848, 0x0, 0x67, 0xffbe5b18, 0x0, 0x0), at 0xffffffffffffffff
=>[2] fbFetch(pict = 0x1883b10, x = 0, y = 0, width = 103, buffer = 0xffbe5b18), line 2673 in "fbcompose.c"
  [3] fbCompositeRect(data = 0xffbe5958, scanline_buffer = 0xffbe597c), line 3565 in "fbcompose.c"
  [4] pixman_compositeGeneral(op = PIXMAN_OPERATOR_OVER, pSrc = 0x18c4158, pMask = 0x18b7518, pDst = 0x1883b10, xSrc = 60, ySrc = 436, xMask = 0, yMask = 0, xDst = 0, yDst = 0, width = 103U, height = 7U), line 3677 in "fbcompose.c"
  [5] _cairo_pixman_composite(op = PIXMAN_OPERATOR_OVER, pSrc = 0x18c4158, pMask = 0x18b7518, pDst = 0x1883b10, xSrc = 60, ySrc = 436, xMask = 0, yMask = 0, xDst = 0, yDst = 0, width = 103, height = 7), line 1825 in "fbpict.c"
---------------------------------------------------------------

In my environment, there would be other cases than those listed
as pict->format_code in a switch statement in "fetchPixelProcForPicture".
In this case, pict->format_code is 134283264.
bpp=8, type=1, a=0, r=0, g=0, b=0 would cause this value.
Is there such a case?
And does anyone have hints for solution?

This trouble was the same when cairo, pango and gtk+ were built
with gcc 3.3.4 on Solaris8.
(In future, I want to build Mozilla, which sould be built with
Sun compilers for use of Java plugin, so I am particular about
Forte compiler)

Thanks in advance.

daigo

--
Daigo YANAGIMOTO (daigo at ori.u-tokyo.ac.jp)
Ocean Research Institute, University of Tokyo, Japan



More information about the cairo mailing list