Bugzilla – Bug 122542
chemtool segmentation fault
Last modified: 2005-10-25 11:11:38 UTC
The program Chemtool (2D chemical drawing program) gives a segmentation fault at startup due to a missing package (openbabel http://openbabel.sourceforge.net/) which is not included in SUSE linux 10.0
Let's suppose the executable of the program is located at /usr/X11R6/bin/chemtool, then please provide the output of `ldd /usr/X11R6/bin/chemtool'. A backtrace (made with gdb or ltrace/strace) would also be helpful. For further information, please read: http://bugs.opensuse.org
Chemtool is located in /usr/bin/chemtool ldd output follows: ldd /usr/bin/chemtool linux-gate.so.1 => (0xffffe000) libgtk-1.2.so.0 => /opt/gnome/lib/libgtk-1.2.so.0 (0x40030000) libgdk-1.2.so.0 => /opt/gnome/lib/libgdk-1.2.so.0 (0x40186000) libgmodule-1.2.so.0 => /opt/gnome/lib/libgmodule-1.2.so.0 (0x401bf000) libglib-1.2.so.0 => /opt/gnome/lib/libglib-1.2.so.0 (0x401c2000) libdl.so.2 => /lib/libdl.so.2 (0x401e8000) libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x401ec000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x401f4000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40203000) libm.so.6 => /lib/tls/libm.so.6 (0x402fc000) libc.so.6 => /lib/tls/libc.so.6 (0x40322000) /lib/ld-linux.so.2 (0x40000000) If you start chemtool from console you get this message: enrico@dhcppc0:~> chemtool sh: babel: command not found Consider installing Babel/OpenBabel for file format conversions... Segmentation fault
Every library was found, so this is not a library-problem. Please attach (!) the output of `ltrace /usr/bin/chemtool'.
It say's `consider' here which indicates that this external command is not required to run this problem. Let's see where it crashes exactly.
Created attachment 53763 [details] ltrace /usr/bin/chemtool
Ok, I can reproduce it, thanks for the report. I'll try to fix it soon.
It's caused by a bug in gcc-4.0, which makes things little bit complicated. A workaround is a) compile with an older gcc b) don't compile with -O2 c) apply this patch to the source (note that there isn't any bug in chemtool, this just avoids the gcc bug): --- main.c +++ main.c @@ -2909,7 +2909,7 @@ int tmplnum[125]; char bondnums[15][3]; char msgtmp[100]; - const char *fontsizelabel[7]={"8","10","12","14","17","20","24"}; + static const char *fontsizelabel[7]={"8","10","12","14","17","20","24"}; GtkWidget *aboutw,*helpw,*helptext; GtkWidget *vbox; GtkWidget *hbox; See also the note on authors home page: http://ruby.chemie.uni-freiburg.de/~martin/chemtool/chemtool.html
Thank you! I changed the summary of this bug to a more generic form. Can Novel provide an rpm compiled with the patch above?
(In reply to comment #9) > Can Novel provide an rpm compiled with the patch above? I don't know whether or not there will be an update for SUSE Linux 10.0, but you can try the patched package from OpenSUSE: http://ftp.opensuse.org/pub/opensuse/distribution/SL-OSS-edge/inst-source/suse/i586/chemtool-1.6.7-2.i586.rpm
Let's not do the update for 10.0. I've opened a bugreport for the GCC issue.
Actually, there was a bug in chemtool (part of stack overwritten), it just didn't show up until gcc-4.0 on i386. Many thanks to Richard Guenther for finding the bug. The fixed package should appear in OpenSUSE edge soon.