Synfig crashing during synfig-studio build process on FreeBSD


#1

Hi everyone,

I am trying to get synfig-studio packages built for each supported version of FreeBSD. Synfig 1.0 is successfully building on all versions of FreeBSD, with the exception of FreeBSD 9.3 amd64. This version of FreeBSD uses GCC 4.2.1.

The following synfig command is used during the synfig-studio built process, but is dumping core on FreeBSD 9.3 amd64:

root@freebsd93:/usr/ports/graphics/synfigstudio/work/synfigstudio-1.0/images # synfig -q synfig_icon.sif -o 16x16/ _icon.png --time 0 -w 16 -h 16 Abort (core dumped)

When I load the core file from this synfig command into the gdb debugger, and do a backtrace it shows:

[code]root@freebsd93:/usr/ports/graphics/synfigstudio/work/synfigstudio-1.0/images # gdb /usr/local/bin/synfig
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB. Type “show warranty” for details.
This GDB was configured as “amd64-marcel-freebsd”…(no debugging symbols found)…
(gdb) core synfig.core
Core was generated by `synfig’.
Program terminated with signal 6, Aborted.
Reading symbols from /usr/local/lib/libsynfig.so.0…(no debugging symbols found)…done.
Loaded symbols for /usr/local/lib/libsynfig.so.0
Reading symbols from /usr/local/lib/libltdl.so.7…(no debugging symbols found)…done.
Loaded symbols for /usr/local/lib/libltdl.so.7
Reading symbols from /usr/local/lib/libMagick+±6.so.6…(no debugging symbols found)…done.
Loaded symbols for /usr/local/lib/libMagick+±6.so.6

… (skipping a large number of libraries here)

Loaded symbols for /libexec/ld-elf.so.1
#0 0x00000008059f504c in kill () from /lib/libc.so.7
[New Thread 80cc07400 (LWP 101848/synfig)]
(gdb) bt
#0 0x00000008059f504c in kill () from /lib/libc.so.7
#1 0x00000008059948b6 in strtok () from /lib/libc.so.7
#2 0x0000000813128325 in oil_cpu_detect_arch () from /usr/local/lib/liboil-0.3.so.0
#3 0x0000000813123da0 in oil_cpu_get_frequency () from /usr/local/lib/liboil-0.3.so.0
#4 0x0000000813124b35 in oil_init () from /usr/local/lib/liboil-0.3.so.0
#5 0x0000000812e4f4e7 in swfdec_init () from /usr/local/lib/libswfdec-0.8.so.0
#6 0x0000000812be48d9 in mlt_register () from /usr/local/lib/mlt/libmltswfdec.so
#7 0x00000008049772f3 in mlt_repository_init () from /usr/local/lib/libmlt.so.6
#8 0x0000000804976947 in mlt_factory_init () from /usr/local/lib/libmlt.so.6
#9 0x00000008047422f3 in Mlt::factory::init () from /usr/local/lib/libmlt++.so.3
#10 0x000000080107fc7e in synfig::SoundProcessor::subsys_init () from /usr/local/lib/libsynfig.so.0
#11 0x0000000800fe6f1b in synfig::Main::Main () from /usr/local/lib/libsynfig.so.0
#12 0x00000000004793f7 in main ()
(gdb)[/code]

Has anyone seen this issue before?

An interesting point is that when I compile liboil with debugging symbols to try and debug further, it no longer crashes. I believe this is typically a result of the program writing to an invalid memory address (e.g. a buffer overflow), which is typically less of an issue with debugging symbols on as it is often the debugging symbols which are being over-written rather than more critical memory.