Rev. 9970: Compile error and startup segfault
Hi,
I'm having a few problems after my last pull (I'm at rev. 9970 at the moment). Firstly, I couldn't compile straight away because widgets/icon.cpp uses the GStatBuf type which AFAICT was newly added to glib in a recent version (the latest version on Ubuntu 10.04 is glib 2.24.1, which doesn't know it). Would it be possible to recode this so that the latest version supplied by Ubuntu (or other distros, for that matter) is sufficient? After installing glib 2.26.1 from source, I managed to compile Inkscape but now it crashes on startup (see backtrace below). Any ideas?
Thanks, Max
------------------------------------------
Program received signal SIGABRT, Aborted. 0x0012d422 in __kernel_vsyscall () (gdb) bt #0 0x0012d422 in __kernel_vsyscall () #1 0x01728651 in raise () from /lib/tls/i686/cmov/libc.so.6 #2 0x0172ba82 in abort () from /lib/tls/i686/cmov/libc.so.6 #3 0x0166952f in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6 #4 0x01667465 in ?? () from /usr/lib/libstdc++.so.6 #5 0x016674a2 in std::terminate() () from /usr/lib/libstdc++.so.6 #6 0x016675e1 in __cxa_throw () from /usr/lib/libstdc++.so.6 #7 0x005fd090 in Glib::FileError::throw_func(_GError*) () from /usr/lib/libglibmm-2.4.so.1 #8 0x0060ae82 in Glib::Error::throw_exception(_GError*) () from /usr/lib/libglibmm-2.4.so.1 #9 0x005fd5ef in Glib::Dir::Dir(std::string const&) () from /usr/lib/libglibmm-2.4.so.1 #10 0x0832bbb8 in IconImpl::validateCache () at widgets/icon.cpp:421 #11 0x0832cdac in IconImpl::prerenderIcon (name=0x985e1f4 "edit-select-all-layers", lsize=GTK_ICON_SIZE_SMALL_TOOLBAR, psize=22) at widgets/icon.cpp:1337 #12 0x0832e237 in Inkscape::queueIconPrerender (name=..., lsize=Inkscape::ICON_SIZE_SMALL_TOOLBAR) at widgets/icon.cpp:1311 #13 0x085f8118 in create_action_for_verb (verb=<value optimized out>, view=<value optimized out>, size=Inkscape::ICON_SIZE_SMALL_TOOLBAR) at widgets/select-toolbar.cpp:387 #14 0x085f9866 in sp_select_toolbox_prep (desktop=0x8e78db0, mainActions=0x98e7e60, holder=0x8a4daa0) at widgets/select-toolbar.cpp:405 #15 0x08355dd5 in setup_aux_toolbox (toolbox=0x9229f30, desktop=0x8e78db0) at widgets/toolbox.cpp:1902 #16 0x0834b204 in Inkscape::UI::ToolboxFactory::setToolboxDesktop (toolbox=0x9229f30, desktop=0x8e78db0) at widgets/toolbox.cpp:1668 #17 0x08383184 in Inkscape::UI::UXManagerImpl::connectToDesktop (this=0x97c68e8, toolboxes=..., desktop=0x8e78db0) at ui/uxmanager.cpp:230 #18 0x08320b67 in SPDesktopWidget::createInstance (namedview=0x8a5b950) at widgets/desktop-widget.cpp:1464 #19 0x08320c82 in sp_desktop_widget_new (namedview=0x8a5b950) at widgets/desktop-widget.cpp:1413 #20 0x0809655f in sp_file_new (templ=...) at file.cpp:126 #21 0x08096934 in sp_file_new_default () at file.cpp:178 #22 0x08086565 in sp_main_gui (argc=1, argv=0xbffff754) at main.cpp:982 #23 0x080886d3 in main (argc=1, argv=0xbffff754) at main.cpp:717
On 21/12/10 15:44, Maximilian Albert wrote:
I'm having a few problems after my last pull (I'm at rev. 9970 at the moment). Firstly, I couldn't compile straight away because widgets/icon.cpp uses the GStatBuf type which AFAICT was newly added to glib in a recent version (the latest version on Ubuntu 10.04 is glib 2.24.1, which doesn't know it). Would it be possible to recode this so that the latest version supplied by Ubuntu (or other distros, for that matter) is sufficient? After installing glib 2.26.1 from source, I managed to compile Inkscape but now it crashes on startup (see backtrace below). Any ideas?
Until fixed, manually create the path for the icon cache:
$ mkdir -p ~/.cache/inkscape/icons
After that Inkscape will start without crash and use the icon cache. (AFAIU Inkscape uses http://library.gnome.org/devel/glib/stable/glib-Miscellaneous-Utility-Functions.html#g-get-user-cache-dir to determine the path to the user cache directory.)
(confirming both issues - build failure with glib 2.24.x, ok with glib 2.26.x on OS X 10.5.8, as well as initial crash as long as icon cache directory doesn't exist)
~suv
Maximilian Albert-2 wrote:
I'm having a few problems after my last pull (I'm at rev. 9970 at the moment). Firstly, I couldn't compile straight away because widgets/icon.cpp uses the GStatBuf type which AFAICT was newly added to glib in a recent version.
Same problem under Windows XP: I understand that a devlibs update is needed.
Maximilian Albert-2 wrote:
Would it be possible to recode this so that the latest version supplied by Ubuntu (or other distros, for that matter) is sufficient?
Idem.
On Dec 21, 2010, at 6:44 AM, Maximilian Albert wrote:
Hi,
I'm having a few problems after my last pull (I'm at rev. 9970 at the moment). Firstly, I couldn't compile straight away because widgets/icon.cpp uses the GStatBuf type which AFAICT was newly added to glib in a recent version (the latest version on Ubuntu 10.04 is glib 2.24.1, which doesn't know it). Would it be possible to recode this so that the latest version supplied by Ubuntu (or other distros, for that matter) is sufficient? After installing glib 2.26.1 from source, I managed to compile Inkscape but now it crashes on startup (see backtrace below). Any ideas?
It's not an issue with the type itself. The calls that use it are all marked as "Since 2.6", and I'm pretty sure that 2.24.1 is newer than 2.6.
I just need to pinpoint an extra <include> to add.
On Dec 21, 2010, at 10:53 AM, Jon Cruz wrote:
It's not an issue with the type itself. The calls that use it are all marked as "Since 2.6", and I'm pretty sure that 2.24.1 is newer than 2.6.
I just need to pinpoint an extra <include> to add.
Figured it out. The documentation lied, and that type was added post 2.24.
Fix is in as of revision 9972.
Hi,
many thanks to ~suv for the workaround and to Jon for the quick fix. Works fine now.
Cheers, Max
2010/12/21 Jon Cruz <jon@...18...>:
On Dec 21, 2010, at 10:53 AM, Jon Cruz wrote:
It's not an issue with the type itself. The calls that use it are all marked as "Since 2.6", and I'm pretty sure that 2.24.1 is newer than 2.6.
I just need to pinpoint an extra <include> to add.
Figured it out. The documentation lied, and that type was added post 2.24.
Fix is in as of revision 9972.
2010/12/21 Jon Cruz <jon@...18...>:
Figured it out. The documentation lied, and that type was added post 2.24.
The typedef was introduced sometime after 2.24. The calls existed since 2.6 but their parameter type was dependent on the platform. The documentation encourages to use GIO functions instead of g_stat. http://osdir.com/ml/general/2010-03/msg46467.html
Regards, Krzysztof
participants (5)
-
Jon Cruz
-
Krzysztof Kosiński
-
LucaDC
-
Maximilian Albert
-
~suv