I am currently trying to update my kdelibs in order to be able to upgrade Qt. I have currently kdelibs-3.1.3 installed and type the following to emerge kdelibs-3.1.4: >> emerge kdelibs As a result the compilation fails with the following error messages: /bin/sh ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdefx -I../dcop -I../libltdl -I../kdecore -I../kdeui -I../kio -I../kio/kio -I../kio/kfile -I.. -I/usr/qt/3/include -I/usr/X11R6/include -I/usr/kde/3.1/include -I/usr/include/libart-2.0 -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG -O2 -march=athlon -O3 -pipe -fno-exceptions -fno-check-new -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_COMPAT -c -o kstaticdeleter.lo `test -f 'kstaticdeleter.cpp' || echo './'`kstaticdeleter.cpp /bin/sh ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdefx -I../dcop -I../libltdl -I../kdecore -I../kdeui -I../kio -I../kio/kio -I../kio/kfile -I.. -I/usr/qt/3/include -I/usr/X11R6/include -I/usr/kde/3.1/include -I/usr/include/libart-2.0 -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG -O2 -march=athlon -O3 -pipe -fno-exceptions -fno-check-new -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_COMPAT -c -o kappdcopiface.lo `test -f 'kappdcopiface.cpp' || echo './'`kappdcopiface.cpp /usr/qt/3/bin/moc ./kclipboard.h -o kclipboard.moc /usr/qt/3/bin/moc ./kcheckaccelerators.h -o kcheckaccelerators.moc /bin/sh ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../kdefx -I../dcop -I../libltdl -I../kdecore -I../kdeui -I../kio -I../kio/kio -I../kio/kfile -I.. -I/usr/qt/3/include -I/usr/X11R6/include -I/usr/kde/3.1/include -I/usr/include/libart-2.0 -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG -O2 -march=athlon -O3 -pipe -fno-exceptions -fno-check-new -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_COMPAT -c -o kdeversion.lo `test -f 'kdeversion.cpp' || echo './'`kdeversion.cpp ../dcop/dcopidl/dcopidl ./ksycoca.h > ksycoca.kidl || ( rm -f ksycoca.kidl ; false ) make[3]: *** [ksycoca.kidl] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory `/var/tmp/portage/kdelibs-3.1.4/work/kdelibs-3.1.4/kdecore' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/kdelibs-3.1.4/work/kdelibs-3.1.4/kdecore' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdelibs-3.1.4/work/kdelibs-3.1.4' make: *** [all] Error 2 !!! ERROR: kde-base/kdelibs-3.1.4 failed. !!! Function kde_src_compile, Line 137, Exitcode 2 !!! died running emake, kde_src_compile:make As the report below shows I am running emerge out of a KDE kterm, but the same problem persists if compiling from the console without KDE or X running. Interestingly though with my tries sometimes I get to the next step, ie the last error messages look like this: ../dcop/dcopidl/dcopidl ./ksycoca.h > ksycoca.kidl || ( rm -f ksycoca.kidl ; false ) ../dcop/dcopidl/dcopidl ./kappdcopiface.h > kappdcopiface.kidl || ( rm -f kappdcopiface.kidl ; false ) Reproducible: Always Steps to Reproduce: 1. run emerge kdelibs with having kdelibs-3.1.3 installed Actual Results: emerge fails to complete Expected Results: Emerge compiles and installs the newest kdelibs 3.1.4. bash-2.05b# emerge --verbose info Portage 2.0.49-r5 (default-x86-1.4, gcc-3.3.1, glibc-2.3.2-r1, 2.4.20-gentoo-r1) ================================================================= System uname: 2.4.20-gentoo-r1 i686 AMD Athlon(tm) processor ACCEPT_KEYWORDS="x86 ~x86" ACCEPT_LICENSE="" ARCH="x86" AUTOCLEAN="yes" BASH_ENV="/etc/portage/bashrc" CATALINA_HOME="/opt/tomcat" CC="gcc" CFLAGS="-march=athlon -O3 -pipe" CHOST="i686-pc-linux-gnu" CLASSPATH="/opt/blackdown-jdk-1.3.1/jre/lib/rt.jar:." CLEAN_DELAY="5" COLORTERM="" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /opt/tomcat/conf /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CVS_RSH="ssh" CXX="g++" CXXFLAGS="-march=athlon -O3 -pipe" DISPLAY=":0" DISTDIR="/usr/portage/distfiles" EDITOR="/usr/bin/vim" FEATURES="sandbox ccache autoaddcvs" FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp -P ${DISTDIR} ${URI}" GDK_USE_XFT="1" GENTOO_MIRRORS="ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ http://ftp.easynet.nl/mirror/gentoo// ftp://ftp.easynet.nl/mirror/gentoo// http://212.219.56.152/sites/www.ibiblio.org/gentoo/" GS_LIB="/home/alex/.kde/share/fonts" GTK_RC_FILES="/etc/gtk/gtkrc:/home/alex/.gtkrc:/home/alex/.gtkrc-kde" GUILE_LOAD_PATH="/usr/share/guile/1.6" G_BROKEN_FILENAMES="1" HOME="/root" HOSTNAME="mainserver.rudyk.arinternet" INFODIR="/usr/share/info:/usr/X11R6/info" INFOPATH="/usr/share/info:/usr/share/gcc-data/i686-pc-linux-gnu/3.3/info" INPUTRC="/etc/inputrc" JAVAC="/opt/blackdown-jdk-1.3.1/bin/javac" JAVA_HOME="/opt/blackdown-jdk-1.3.1" JDK_HOME="/opt/blackdown-jdk-1.3.1" KDEDIR="/usr/kde/3.1" KDEDIRS="/usr" KDE_MULTIHEAD="false" KONSOLE_DCOP="DCOPRef(konsole-3062,konsole)" KONSOLE_DCOP_SESSION="DCOPRef(konsole-3062,session-5)" LESS="-R" LESSOPEN="|lesspipe.sh %s" LOGNAME="alex" MAKEOPTS="-j2" MANPATH="/usr/share/man:/usr/local/share/man:/usr/share/gcc-data/i686-pc-linux-gnu/3.3/man:/usr/X11R6/man:/opt/blackdown-jdk-1.3.1/man" MOZILLA_FIVE_HOME="/usr/lib/mozilla" NOCOLOR="false" PAGER="/usr/bin/less" PATH="/sbin:/bin:/usr/sbin:/usr/bin" PKGDIR="/usr/portage/packages" PORTAGE_BINHOST_CHUNKSIZE="3000" PORTAGE_CACHEDIR="/var/cache/edb/dep/" PORTAGE_CALLER="emerge" PORTAGE_GID="250" PORTAGE_MASTER_PID="3125" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PRELINK_PATH="" PRELINK_PATH_MASK="" PWD="/home/alex" QMAKESPEC="linux-g++" QTDIR="/usr/qt/3" RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp -P ${DISTDIR} ${URI}" RPMDIR="/usr/portage/rpm" RSYNC_RETRIES="3" RSYNC_TIMEOUT="180" SANE_CONFIG_DIR="/etc/sane.d" SESSION_MANAGER="local/mainserver.rudyk.arinternet:/tmp/.ICE-unix/3039" SHLVL="4" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" TERM="xterm" USE="x86 foomaticdb libg++ mad mikmod mpeg nls xv gtkhtml gdbm slang bonobo tcltk guile gpm tcpd libwww python esd motif aalib 3dnow acpi apache2 apm arts avi berkdb cdr crypt cups curl dga directfb dvd encode gd gnome gif gphoto2 gtk gtk2 imap imlib ipv6 java jpeg kde ldap mbox mmx mozilla mysql ncurses oggvorbis opengl oss pam pdflib perl png qt quicktime readline samba scanner sdl spell ssl svga tetex tiff truetype usb wmf X xmms xml2 zlib" USER="alex" USERLAND="GNU" USE_EXPAND="VIDEO_CARDS INPUT_DEVICES LINGUAS" USE_ORDER="env:conf:auto:defaults" XARGS="xargs -r" XDM_MANAGED="/var/run/xdmctl/xdmctl-:0,maysd,mayfn,sched" XINITRC="/etc/X11/xinit/xinitrc" XSESSION="kde-3.1.3" _="/usr/bin/emerge"
The solution has already been pointed out in the Gentoo forums: http://forums.gentoo.org/viewtopic.php?p=532591#532591 It is necessary to downgrade gcc to 3.3.1-r1 from 3.3.1-r2 (achieved with an "emerge gcc") before emerging the new kdelibs, this is also the way Portage tries to do it with an emerge -u world. Since the problem seems not to lie with kdelibs but rather with the combination of gcc 3.3.1-r2 and the new kdelibs and has in practice been fixed by the "downgrade" I don't think any other fix is really needed...
How about somebody mask newer versions of gcc or get a real fix out rather than let things keep going on broken?
Strike my last comment, downgrading gcc doesn't solve a darn thing. dcopidl is segfaulting right after doing a futex() call. Can't run gdb on it, but it looks like it malloc's some memory, does a set_thread_area(), signal stuff, rlimits, opens /dev/urandom, reads 32 bytes, more memory, then the futex(), which yields the segfault. Considering that it segfaults before main() even runs, I suspect it's in the cpp setup code. I'm not a cpp person, someone else looking into it would be very much appreciated.