I just had to reinstall an entire gentoo system. Started from 1.4rc1 livecd's. Installed base system then kde-3.0.5a. Dependencies emerged qt-3.1.0-r1. Qt compiled without problems. When I start QT designer for the kde menu, th splash screen is displayed then disappears and nothing happens. When I start it from the konsole (to have more details), following message appears : designer: dl-close.c:230: _dl_close: Assertion `imap->l_type == lt_loaded || imap->l_opencount > 0' failed. Abort So an assertion in the code is false. No idea where the problem comes from because the splash image is displayed...
I'm in a very similar situation, I had to reinstall my gentoo system as well, also using the 1.4rc1 livecd as a base system. I have kde-3.1rc5 installed and designer crashes on startup. I don't get any output though. Just a segfault. When I backtrace it I get the following: (gdb) bt #0 0x40ba3c81 in _int_free () from /lib/libc.so.6 #1 0x40ba2a6c in free () from /lib/libc.so.6 #2 0x40c36849 in _dl_close () from /lib/libc.so.6 #3 0x40027f6c in dlclose_doit () from /lib/libdl.so.2 #4 0x4000ae06 in _dl_catch_error_internal () from /lib/ld-linux.so.2 #5 0x400282e4 in _dlerror_run () from /lib/libdl.so.2 #6 0x40027fa2 in dlclose () from /lib/libdl.so.2 #7 0x40551fe9 in QLibraryPrivate::freeLibrary() () from /usr/qt/3/lib/libqt-mt.so.3 #8 0x40572a3c in QLibrary::unload() () from /usr/qt/3/lib/libqt-mt.so.3 #9 0x405565ef in QComLibrary::unload() () from /usr/qt/3/lib/libqt-mt.so.3 #10 0x40556598 in QComLibrary::~QComLibrary() () from /usr/qt/3/lib/libqt-mt.so.3 #11 0x4056fe3a in QGPluginManager::addLibrary(QLibrary*) () from /usr/qt/3/lib/libqt-mt.so.3 #12 0x4056fa37 in QGPluginManager::featureList() const () from /usr/qt/3/lib/libqt-mt.so.3 #13 0x080b7638 in QPtrList<QIconViewItem>::deleteItem(void*) () #14 0x0809508f in QValueListPrivate<QString>::insert(QValueListIterator<QString>, QString const&) () #15 0x0807e438 in QValueListPrivate<QString>::insert(QValueListIterator<QString>, QString const&) () #16 0x0807c4c2 in QHeader::label(int) const () #17 0x40b42e54 in __libc_start_main () from /lib/libc.so.6 I also have a full debug build of qt-3.1.1 which works fine. Unfortunately, there are other problems with that as seen per bug #12538. --Kaleb
i had the same problem, unmerging fam-oss was a workaround for this problem. qt-3.1.1 also solved this for me. Kaleb: do you have this problem with qt-3.1.0 or with qt-3.1.1?
It only crashes under qt-3.1.0. As I am using kde-3.1rc5, I wasn't restricted by bug #12538 so I just emerge qt-3.1.1 and it solved the problem. I never had fam-oss installed.
I have maybe solved this (at least on my machine it doesn't crash any more). I found some weird entries in my ~/.qt/qt_plugins_3.1rc, removed them and got designer up and running (woohoo! :). The entries were groups (eg. [3usr]) or normal entries (eg. qt/3/plugins/designer/libwi{ards.so=30101^e3^ei686 Linux g++-3.* full-config^eSat Jan 4 18:09:59 2003^e, notice the '{').
And no. My bad. I probably removed kdewidgets.so line from the file, which prevents it from crashing until a KDE widget is placed onto a form. Or the designer is restarted. Blah. I'm running 1.4rc2 on an athlon with kde-3.1rc5 and qt-3.1.1, and the only thing I could do to make it to work was to remove that kdewdgets.so (fam-oss is very much needed by KDE)
*** Bug 13876 has been marked as a duplicate of this bug. ***
I got designer to start up and allow KDE widgets by commenting out the lines for the dotnet, keramik, kthemestyle, light, and liquid entries in qt_plugins_3.1rc. The file seems to be regenerated when designer is started, so I had to make it read-only. I seem to be able to use KDE widgets normally, with the exception of the KListView, which still causes a segmentation fault.
I had instead to merge qt-3.1.1 and re-emerged kdelibs with CFLAGS="-march=pentium3 -O2 -pipe". Now I can use all widgets except for _one_ control (could not remember the name and have not my box at hand tight now) which is surely not a KListBox. Perhaps we could "merge" the kdewidgets.so and get a fully functional system? ;)
Disregard my editing of qt_plugins_3.1.rc ... it seems that designer will seemingly randomly work or not work and I was fooled into thinking it was in response to changes I made in that file.
OK, checked what is the "criminal" control: KFontCombo. Just put a KFontCombo instance on the form and crash! _All_ other kcontrols give no trouble, at least at design time ;). Using qt-3.1.1 with default ebuild flags and kdelibs-3.1_rc6 compiled with CFLAGS="-march=pentium3 -O2 -pipe" (Gentoo 1.4_rc2 and gcc 3.2.1-r6 here).
I have a full debug build setup on my system (kde3.1rc5 - qt-3.1.1) compiled with no optimization (well, kde is using -O3, but none on qt) and it crashes as well. It yields the following: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 15142)] 0x400082d9 in do_lookup () from /lib/ld-linux.so.2 (gdb) bt #0 0x400082d9 in do_lookup () from /lib/ld-linux.so.2 #1 0x40007023 in _dl_lookup_symbol_internal () from /lib/ld-linux.so.2 #2 0x4000a888 in fixup () from /lib/ld-linux.so.2 #3 0x4000aac0 in _dl_runtime_resolve () from /lib/ld-linux.so.2 #4 0x414523fe in KDEWidgetsPlugin::create(QString const&, QWidget*, char const*) () from /usr/kde/3.1/lib/kde3/plugins/designer/kdewidgets.so #5 0x404f1337 in QWidgetPluginPrivate::create(QString const&, QWidget*, char const*) (this=0x85c1ea8, key=@0xbfffe8b0, parent=0x87c2ec8, name=0x85257c8 "kFontCombo1") at widgets/qwidgetplugin.cpp:183 #6 0x0813697c in WidgetFactory::createWidget(QString const&, QWidget*, char const*, bool, QRect const*, Qt::Orientation) (className=@0xbfffe8b0, parent=0x87c2ec8, name=0x85257c8 "kFontCombo1", init=true, r=0x87c2890, orient=Horizontal) at widgetfactory.cpp:942 #7 0x081318c9 in WidgetFactory::create(int, QWidget*, char const*, bool, QRect const*, Qt::Orientation) (id=81, parent=0x87c2ec8, name=0x0, init=true, r=0x87c2890, orient=Horizontal) at widgetfactory.cpp:523 #8 0x0827e77b in FormWindow::insertWidget() (this=0x87c2810) at formwindow.cpp:352 #9 0x08284b92 in FormWindow::handleMouseRelease(QMouseEvent*, QWidget*) (this=0x87c2810, e=0xbffff050, w=0x87c2ec8) at formwindow.cpp:1063 #10 0x0808fbbd in MainWindow::eventFilter(QObject*, QEvent*) (this=0x8461008, o=0x87c2ec8, e=0xbffff050) at mainwindow.cpp:982 #11 0x402e07dd in QApplication::internalNotify(QObject*, QEvent*) (this=0xbffff530, receiver=0x87c2ec8, e=0xbffff050) at kernel/qapplication.cpp:2315 #12 0x402dfd25 in QApplication::notify(QObject*, QEvent*) (this=0xbffff530, receiver=0x87c2ec8, e=0xbffff050) at kernel/qapplication.cpp:2159 #13 0x40278eec in QApplication::sendSpontaneousEvent(QObject*, QEvent*) (receiver=0x87c2ec8, event=0xbffff050) at kernel/qapplication.h:481 #14 0x40271158 in QETWidget::translateMouseEvent(_XEvent const*) (this=0x87c2ec8, event=0xbffff330) at kernel/qapplication_x11.cpp:4217 #15 0x4026ebfb in QApplication::x11ProcessEvent(_XEvent*) (this=0xbffff530, event=0xbffff330) at kernel/qapplication_x11.cpp:3395 #16 0x40289bb9 in QEventLoop::processEvents(unsigned) (this=0x845d3d8, flags=4) at kernel/qeventloop_x11.cpp:169 #17 0x402fad39 in QEventLoop::enterLoop() (this=0x845d3d8) at kernel/qeventloop.cpp:191 #18 0x402fac52 in QEventLoop::exec() (this=0x845d3d8) at kernel/qeventloop.cpp:138 #19 0x402e0b41 in QApplication::exec() (this=0xbffff530) at kernel/qapplication.cpp:2471 #20 0x08086952 in main (argc=1, argv=0xbffff5e4) at main.cpp:214 #21 0x40d3ae54 in __libc_start_main () from /lib/libc.so.6 (gdb)
BTW, I just dumped the backtrace onto the kde-devel list, and will let you know what comes up.
In response to an email I put on the kde-dev list (I haven't tried this, but bet he is right): > Ok, I'm running qt-3.1.1 with kde-3.1rc5 (I have heard of the same problem > with rc6, so I don't expect that it would help to try it): I have both a > regular and a full debug build of qt, and both yield the same problem. As > soon as I try to place the kfontcombo on a dialog, boom! > > Is this a designer issue, or a kde-plugin issue? That's probably a glibc issue, actually. Try commenting out the call to dlclose in QLibrary.
Kaleb: take a look at this: http://bugs.kde.org/show_bug.cgi?id=44750 (Maksim Orlovich post for glibc issue). I'm using glibc 2.3.1-r2. Did not tried with older 2.2.5. I will post a request on forums.gentoo.org (portage & programming) and ask for feedback from other gentoo KDE users. Perhaps we can get more feedback.
"That's probably a glibc issue, actually. Try commenting out the call to dlclose in QLibrary." WOW!!! It really worked! Still I don't know it will cause leaks on the long run ... Just comment in $QT_SRC_DIR/src/toolsqlibrary_unix.cpp lines 144-149 and re-compile Qt. Now I can put KFontCombo on the form without crashing the designer!!! (Not tried with 3.1.0 but it works with my 3.1.1).
i've tried commenting out dlclose() and it works here (qt-3.1.1), but i'm not sure if it breaks anything. anyone tried this with qt-3.1.0 and can report success? if so, we should add the patch to portage. thanks.
Created attachment 7642 [details, diff] Workaround to make kdewidgets work with Qt Designer The attached patch disable dlclose() in qlibrary_unix.cpp for qt-3.1.0: I roughly verified that it works with kmail & konqueror (and qt designer, of course!). Maybe more feedback is needed.
thanks. i just committed qt-3.1.0-r2.ebuild and qt-3.1.1-r1.ebuild which fix this bug. please test.
db fix