wxGTK from SUSE 10.1 makes Emacs 22 segfault

Stephen Berman Stephen.Berman at gmx.net
Fri Dec 1 11:21:36 PST 2006


On Fri, 01 Dec 2006 10:24:29 +0100 "Stefan.Neis at t-online.de" <Stefan.Neis at t-online.de> wrote:

>           Hi,
>
>> I hope this list is appropriate for the following; 
>
> Yes and no...
> I.e. yes, if wxGTK causes problems, we want to know it,
> but no, in this instance it can't possibly be wxGTK causing
> the trouble. ;-)
>
>> if not, please advise me.

> Submitting it to SuSE might be the best option, IMHO it looks
> like they messed up the packaging...

My initial impulse was to post to a SUSE list, but then I thought I
might be more likely to get an answer about wxGTK here.  Now I'm
afraid that more than the packaging is messed up (see below).

>> On my SUSE 10.1 I run Emacs 22 built (from CVS/pretest sources) with
>> GTK support.  I installed the wxGTK package from the 10.1 installation
>> DVD (wxGTK-2.6.2.1-20.i586.rpm) and the next time I started Emacs, it
>> immediately segfaulted. 
>
> Reproducibly? I.e. have you tried more than once, prior to removing it?

Yes, 100% reproducibly, even after uninstalling and reinstalling.

>> When I removed wxGTK, Emacs started again as usual. 
>> Before removing wxGTK I ran Emacs under gdb and sent the
>> backtrace to the Emacs pretest mailing list.  The developer of the
>> Emacs GTK support code responded thus:
>> 
>> > This is so deep into Gtk/Pango so I think it is a bug there.  The
>> > last call in Emacs code is in frame 42, which calls
>> > gtk_widget_size_request.
> (snipp)
>
> So far I tend to agree...
>
>> anyway, Emacs has no problem with pango itself, but with wxGTK. 
>
> Not here though. The point is that none of the wxGTK libaries is
> involved, so I don't see how wxGTK could be the problem. Besides
> emacs itself, it's all plain gtk & pango, nothing related to wxGTK
> in your coredump.

I see that, but nevertheless, the segfault occurred only with wxGTK
installed and prior to that (and after uninstalling it) the GTK build
of Emacs had no problems with pango. 

> I didn't check what SuSE exactly put in that wxGTK-2.6.2 package,
> but by your description, it sounds like it might be replacing some
> gtk library that it really shouldn't touch.

According to the rpm (which can be obtained at
http://ftp.tu-chemnitz.de/pub/linux/opensuse/distribution/SL-10.1/inst-source/suse/i586/wxGTK-2.6.2.1-20.i586.rpm),
the following files are installed:

/usr/lib/libwx_baseu-2.6.so.0
/usr/lib/libwx_baseu-2.6.so.0.2.0
/usr/lib/libwx_baseu_net-2.6.so.0
/usr/lib/libwx_baseu_net-2.6.so.0.2.0
/usr/lib/libwx_baseu_xml-2.6.so.0
/usr/lib/libwx_baseu_xml-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_adv-2.6.so.0
/usr/lib/libwx_gtk2u_adv-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_animate-2.6.so.0
/usr/lib/libwx_gtk2u_animate-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_core-2.6.so.0
/usr/lib/libwx_gtk2u_core-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_fl-2.6.so.0
/usr/lib/libwx_gtk2u_fl-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_gizmos-2.6.so.0
/usr/lib/libwx_gtk2u_gizmos-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_gizmos_xrc-2.6.so.0
/usr/lib/libwx_gtk2u_gizmos_xrc-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_html-2.6.so.0
/usr/lib/libwx_gtk2u_html-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_media-2.6.so.0
/usr/lib/libwx_gtk2u_media-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_mmedia-2.6.so.0
/usr/lib/libwx_gtk2u_mmedia-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_ogl-2.6.so.0
/usr/lib/libwx_gtk2u_ogl-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_plot-2.6.so.0
/usr/lib/libwx_gtk2u_plot-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_qa-2.6.so.0
/usr/lib/libwx_gtk2u_qa-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_stc-2.6.so.0
/usr/lib/libwx_gtk2u_stc-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_svg-2.6.so.0
/usr/lib/libwx_gtk2u_svg-2.6.so.0.2.0
/usr/lib/libwx_gtk2u_xrc-2.6.so.0
/usr/lib/libwx_gtk2u_xrc-2.6.so.0.2.0
/usr/lib/wx
/usr/share/doc/packages/wxGTK
/usr/share/doc/packages/wxGTK/README.1st.txt
/usr/share/doc/packages/wxGTK/README.unicode
/usr/share/doc/packages/wxGTK/base
/usr/share/doc/packages/wxGTK/base/readme.txt
/usr/share/doc/packages/wxGTK/changes.txt
/usr/share/doc/packages/wxGTK/gpl.txt
/usr/share/doc/packages/wxGTK/gtk
/usr/share/doc/packages/wxGTK/gtk/COPYING.LIB
/usr/share/doc/packages/wxGTK/gtk/changes.txt
/usr/share/doc/packages/wxGTK/gtk/install.txt
/usr/share/doc/packages/wxGTK/gtk/licence.txt
/usr/share/doc/packages/wxGTK/gtk/makewxgtk
/usr/share/doc/packages/wxGTK/gtk/readme.txt
/usr/share/doc/packages/wxGTK/gtk/todo.txt
/usr/share/doc/packages/wxGTK/gtk/wxGNOME
/usr/share/doc/packages/wxGTK/gtk/wxGNOME/wxGNOME.html
/usr/share/doc/packages/wxGTK/lgpl.txt
/usr/share/doc/packages/wxGTK/licence.txt
/usr/share/doc/packages/wxGTK/licendoc.txt
/usr/share/doc/packages/wxGTK/preamble.txt
/usr/share/doc/packages/wxGTK/publicity
/usr/share/doc/packages/wxGTK/publicity/announce.txt
/usr/share/doc/packages/wxGTK/publicity/publicity.txt
/usr/share/doc/packages/wxGTK/publicity/slogans.txt
/usr/share/doc/packages/wxGTK/readme.txt
/usr/share/doc/packages/wxGTK/readme_vms.txt
/usr/share/doc/packages/wxGTK/toback24.txt
/usr/share/doc/packages/wxGTK/todo.txt
/usr/share/doc/packages/wxGTK/todo30.txt
/usr/share/locale/ca/LC_MESSAGES/wxstd.mo
/usr/share/locale/cs/LC_MESSAGES/wxstd.mo
/usr/share/locale/da/LC_MESSAGES/wxstd.mo
/usr/share/locale/de/LC_MESSAGES/wxstd.mo
/usr/share/locale/el/LC_MESSAGES/wxstd.mo
/usr/share/locale/es/LC_MESSAGES/wxstd.mo
/usr/share/locale/fi/LC_MESSAGES/wxstd.mo
/usr/share/locale/fr/LC_MESSAGES/wxstd.mo
/usr/share/locale/hu/LC_MESSAGES/wxstd.mo
/usr/share/locale/id/LC_MESSAGES/wxstd.mo
/usr/share/locale/it/LC_MESSAGES/wxmsw.mo
/usr/share/locale/it/LC_MESSAGES/wxstd.mo
/usr/share/locale/ja/LC_MESSAGES/wxstd.mo
/usr/share/locale/nl/LC_MESSAGES/wxstd.mo
/usr/share/locale/pl/LC_MESSAGES/wxstd.mo
/usr/share/locale/ru/LC_MESSAGES/wxstd.mo
/usr/share/locale/sl/LC_MESSAGES/wxstd.mo
/usr/share/locale/sv/LC_MESSAGES/wxstd.mo
/usr/share/locale/tr/LC_MESSAGES/wxstd.mo
/usr/share/locale/uk/LC_MESSAGES/wxstd.mo
/usr/share/locale/zh_CN/LC_MESSAGES/wxstd.mo
/usr/share/locale/zh_TW/LC_MESSAGES/wxstd.mo

Is there anything here that shouldn't be?

>                                             Or it might be adding
> some configuration data, that's confusing the existing libraries...

This might be the real problem.  Since you suggested SUSE may have
messed up the packaging, I decided to obtain the SUSE source rpm of
wxGTK and compile it myself.  I following these instructions in
install.txt:

  mkdir buildgtk
  cd buildgtk
  ../configure --with-gtk
  make
  su <type root password>
  make install
  ldconfig

It installed under /usr/local and the names of the libraries differed
from those in the SUSE binary rpm, and not all of those libraries were
built with the configuration I made.  Then I invoked the GTK build of
Emacs again -- and it segfaulted, with exactly the same backtrace as
before.  So it's not just SUSE's binary rpm that's causing problems
for Emacs, it's the source code itself.  

But things are even worse: I next ran `make uninstall' (as root),
following install.txt -- but nothing happened.  It turns out that the
`uninstall' rule in the Makefile is empty.  Is this a change to the
source by SUSE?  So then I deleted all the wx* files in /usr/local by
hand, ran ldconfig -- and to my distress GTK Emacs still segfaulted.
That's where I stand right now, unable to start the GTK build of Emacs
(the session I had running before I built wxGTK is not affected, but I
cannot start a new session).  So this seems to support your suggestion
that wxGTK altered the pango/GTK configuration.  I found all files
newer than the build time of wxGTK but nothing looked obviously
related to me.  Do you know which files might be altered by wxGTK?

I will post to SUSE about this and hope to get GTK Emacs back without
having to reinstall or rebuild pango, as a great number of
applications depend on it and would have to be reinstalled as well.

>             Regards,
>                          Stefan

Thanks for your help,
Steve Berman





More information about the wx-dev mailing list