Subject: bug#12397: 24.2; gtk3 (from Macports); visible-bell trips cairo assertion

From: Simon Leinen <[email-masked]>
Date: Sun, 23 Sep 2012 21:31:52 +0200

On Thu, Sep 20, 2012 at 4:59 AM, Chong Yidong <[email-masked]> wrote:

> Simon Leinen <[email-masked]> writes:
>
> > My .emacs sets visible-bell to t.  When I compile Emacs on MacOS X with
> > Gtk3 (from Macports) as the X toolkit and run it, it crashes almost
> > instantly with a failed assertion in cairo_pattern_destroy().
> >
> > I can reproduce this using emacs -Q by saying:
> >
> >   M-: (setq visible-bell t)
> >   M-x ding
>
> FWIW, I cannot reproduce this with either 24.2 or latest trunk,
> x86_64-unknown-linux-gnu, GTK+ Version 3.4.2.
>
[...]

> A crash so deep in Cairo seems to indicate that this is a Cairo-on-Mac
> bug.  There doesn't seem to be anything suspicious in the Emacs part of
> the backtrace.

You are right.  I think I'm trapped in "DLL hell" - some libraries are
taken from /opt/local/lib (MacPorts), but some from /usr/X11/lib, including
an apparently older libcairo.  It's surprising that things work at all - so
far the only crashes I noticed were with visible-bell.

I'll have to find out how to get the build system to use the right
libraries...

: leinen@Simons-MacBook-Air[Mail]; otool -L
/var/tmp/emacs/build-gcc-4.2/src/emacs
/var/tmp/emacs/build-gcc-4.2/src/emacs:
/opt/local/lib/libgtk-3.0.dylib (compatibility version 401.0.0, current
version 401.4.0)
/opt/local/lib/libgdk-3.0.dylib (compatibility version 401.0.0, current
version 401.4.0)
/opt/local/lib/libatk-1.0.0.dylib (compatibility version 20210.0.0, current
version 20210.1.0)
/opt/local/lib/libgio-2.0.0.dylib (compatibility version 3201.0.0, current
version 3201.4.0)
/opt/local/lib/libpangocairo-1.0.0.dylib (compatibility version 3001.0.0,
current version 3001.1.0)
/opt/local/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 2601.0.0,
current version 2601.3.0)
/usr/local/lib/libcairo-gobject.2.dylib (compatibility version 11203.0.0,
current version 11203.3.0)
/opt/local/lib/libpangoft2-1.0.0.dylib (compatibility version 3001.0.0,
current version 3001.1.0)
/opt/local/lib/libpango-1.0.0.dylib (compatibility version 3001.0.0,
current version 3001.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
159.1.0)
/usr/X11/lib/libfreetype.6.dylib (compatibility version 14.0.0, current
version 14.2.0)
/usr/X11/lib/libfontconfig.1.dylib (compatibility version 6.0.0, current
version 6.4.0)
/usr/X11/lib/libcairo.2.dylib (compatibility version 11003.0.0, current
version 11003.2.0)
/opt/local/lib/libgobject-2.0.0.dylib (compatibility version 3201.0.0,
current version 3201.4.0)
/opt/local/lib/libglib-2.0.0.dylib (compatibility version 3201.0.0, current
version 3201.4.0)
/usr/local/Cellar/gettext/0.18.1.1/lib/libintl.8.dylib (compatibility
version 10.0.0, current version 10.1.0)
/usr/X11/lib/libSM.6.dylib (compatibility version 7.0.0, current version
7.1.0)
/usr/X11/lib/libICE.6.dylib (compatibility version 10.0.0, current version
10.0.0)
/opt/local/lib/libtiff.3.dylib (compatibility version 13.0.0, current
version 13.5.0)
/opt/local/lib/libjpeg.8.dylib (compatibility version 13.0.0, current
version 13.0.0)
/usr/X11/lib/libpng15.15.dylib (compatibility version 20.0.0, current
version 20.0.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version
1.2.7)
/opt/local/lib/libgif.4.dylib (compatibility version 6.0.0, current version
6.7.0)
/usr/X11/lib/libXpm.4.dylib (compatibility version 16.0.0, current version
16.0.0)
/usr/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version
10.0.0)
/usr/X11/lib/libXrender.1.dylib (compatibility version 5.0.0, current
version 5.0.0)
/usr/X11/lib/libXft.2.dylib (compatibility version 5.0.0, current version
5.0.0)
/opt/local/lib/librsvg-2.2.dylib (compatibility version 39.0.0, current
version 39.3.0)
/opt/local/lib/libMagickWand.5.dylib (compatibility version 6.0.0, current
version 6.0.0)
/opt/local/lib/libMagickCore.5.dylib (compatibility version 6.0.0, current
version 6.0.0)
/opt/local/lib/libdbus-1.3.dylib (compatibility version 9.0.0, current
version 9.9.0)
/opt/local/lib/libxml2.2.dylib (compatibility version 11.0.0, current
version 11.0.0)
/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version
46.1.0)
/opt/local/lib/libncurses.5.dylib (compatibility version 5.0.0, current
version 5.0.0)
/opt/local/lib/libgconf-2.4.dylib (compatibility version 6.0.0, current
version 6.5.0)
/opt/local/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current
version 1.0.6)
/opt/local/lib/libotf.0.dylib (compatibility version 1.0.0, current version
1.0.0)
/opt/local/lib/libgnutls.26.dylib (compatibility version 49.0.0, current
version 49.3.0)

Best regards,
-- 
Simon.