I'm trying to install kdemultimedia 3.3.0 (I have 3.1.2 installed, though they seem to live in different SLOTs), and the build keeps failing at the same spot. There's a couple of somewhat worrying things in here, but I'll just paste the whole thing: /bin/sh ../../../libtool --silent --mode=link --tag=CXX g++ -DNDEBUG -DNO_DEBUG -O2 -O2 -mcpu=i686 -pipe -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -o noatun_kjofol.la -rpath /usr/kde/3.3/lib/kde3 -L/usr/X11R6/lib -L/usr/qt/3/lib -L/usr/kde/3.3/lib -module -avoid-version -no-undefined -Wl,--no-undefined -Wl,--allow-shlib-undefined kjloader.lo kjwidget.lo kjbutton.lo kjseeker.lo kjsliders.lo kjfont.lo kjtextdisplay.lo kjvis.lo kjequalizer.lo kjbackground.lo noatunui.lo parser.lo kjprefs.lo kjskinselectorwidget.lo kjguisettingswidget.lo -lkio ../../../noatun/library/libnoatun.la -lkio -lm ../../../arts/modules/libartsmodules.la *** Warning: Linking the shared library noatun_kjofol.la against the loadable module *** libnoatunarts.so is not portable! /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/../../../../i686-pc-linux-gnu/bin/ld:.libs/kjbackground.o: file format not recognized; treating as linker script /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/../../../../i686-pc-linux-gnu/bin/ld:.libs/kjbackground.o:1: syntax error collect2: ld returned 1 exit status make[5]: *** [noatun_kjofol.la] Error 1 make[5]: Leaving directory `/var/tmp/portage/kdemultimedia-3.3.0/work/kdemultimedia-3.3.0/noatun/modules/kjofol-skin' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/var/tmp/portage/kdemultimedia-3.3.0/work/kdemultimedia-3.3.0/noatun/modules/kjofol-skin' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/kdemultimedia-3.3.0/work/kdemultimedia-3.3.0/noatun/modules' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/kdemultimedia-3.3.0/work/kdemultimedia-3.3.0/noatun' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdemultimedia-3.3.0/work/kdemultimedia-3.3.0' make: *** [all] Error 2 !!! ERROR: kde-base/kdemultimedia-3.3.0 failed. !!! Function kde_src_compile, Line 142, Exitcode 2 !!! died running emake, kde_src_compile:make First off of course is the strange warning about libnoatunarts.so, and then there's the bit about kjbackground.o. I'm pretty sure that I've seen other warnings about the libnoatunarts.so scroll by a few times with no noticeable detrimental effects, though, so I'm not sure if that has much to do with whatever's actually going on. At any rate, I've tried the emerge a few times now and it does always die in the same spot, so I'm inclined to think it's something screwy with my system rather than a memory problem or something. Reproducible: Always Steps to Reproduce: root@cj:~# emerge info Portage 2.0.50-r11 (default-x86-1.4, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.4.21) ================================================================= System uname: 2.4.21 i686 Pentium III (Coppermine) Gentoo Base System version 1.4.16 distcc 2.0.1 i686-pc-linux-gnu (protocol 1) (default port 3632) [disabled] ccache version 2.2 [enabled] Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -O3 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs buildpkg ccache sandbox" GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X apm arts avi berkdb bitmap-fonts bonobo cdr crypt cups encode esd f77 foomaticdb gdbm gif gnome gpm gtk gtk2 gtkhtml guile imap imlib java jpeg kde ldap libg++ libwww mad mbox mikmod motif mozilla mpeg mysql ncurses nls oci8 offensive oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl svga tcltk tcpd truetype x86 xml2 xmms xprint xv zlib"
The warning is probably okay. Did you try removing the portage cache between re-emerges? That's probably why it keeps failing in the same place.
You mean the stuff that'd be under /var/tmp/portage/kdemultimedia-3.3.0 ? I'll clean that out, give it a shot, and let you know. Thanks!
Well, if that *was* what you were talking about, it seems to have had little effect on the situation. I wiped the entire /var/tmp/portage/kdemultimedia-3.3.0 directory before starting up the emerge again (and watched as it unpacked the tarball at the beginning), and the process died in the exact same spot again.
Created attachment 42325 [details] kjbackground.o Hm, interesting. I just went into /var/tmp/portage/kdemultimedia-3.3.0/work/kdemultimedia-3.3.0/noatun/modules/kjofol-skin/.libs to have a look at the kjbackground.o file which was causing problems, and it seems to be comprised of a little snippet of C code. I've attached it here. I'll see if I can scroll back through the compilation process a bit to see what was going on when it supposedly created that object file. All the other .o files in that directory seem to have built properly.
Yeah, I really don't know. kjbackground is mentioned a number of lines above that, but nothing seems amiss: /bin/sh ../../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../noatun/library -I../../../noatun/library -I../../../arts/modules -I../../../arts/midi -I../../../arts/modules/synth -I../../../arts/modules/common -I../../../arts/modules/effects -I../../../arts/modules/mixers -I../../../arts/gui/common -I/usr/kde/3.3/include/kio -I/usr/kde/3.3/include/arts -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -O2 -mcpu=i686 -pipe -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o kjbackground.lo `test -f 'kjbackground.cpp' || echo './'`kjbackground.cpp /bin/sh ../../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../noatun/library -I../../../noatun/library -I../../../arts/modules -I../../../arts/midi -I../../../arts/modules/synth -I../../../arts/modules/common -I../../../arts/modules/effects -I../../../arts/modules/mixers -I../../../arts/gui/common -I/usr/kde/3.3/include/kio -I/usr/kde/3.3/include/arts -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -O2 -mcpu=i686 -pipe -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o noatunui.lo `test -f 'noatunui.cpp' || echo './'`noatunui.cpp There's a --silent flag I see in there; perhaps there was an error that didn't get reported?
Hm, well, here's yet more info for you (sorry if this is getting annoying) - If I actually go into /var/tmp/portage/kdemultimedia-3.0.0/work/kdemultimedia-3.0.0/noatun/modules/kjofol-skin and run "make" I get the same output. If I remove kjbackground.lo and .libs/kjbackground.o, however, and re-run "make", the library gets built without problems. Weird, eh? I'll see if there's anything else I can dig up on this, too.
Well, a bit more info now. Simply removing those two files actually *inside* the ebuild and then re-running make does *not* fix the problem, but when I run make outside of the build system then things work properly. So that means that something inside the environment is causing problems here. I've hacked up the kde eclass on this box to print out the whole environment when it's running these commands, so hopefully I should be able to narrow it down a bit. If you're at all curious what I've changed, I've turned the "make" portion of the KDE eclass into this: make) export PATH="${KDEDIR}/bin:${PATH}" debug-print-section make emake einfo doing stuff MYPWD=`pwd` einfo chdir to /var/tmp/portage/kdemultimedia-3.3.0/work/kdemultimedia-3.3.0/noatun/modules/kjofol-skin cd /var/tmp/portage/kdemultimedia-3.3.0/work/kdemultimedia-3.3.0/noatun/modules/kjofol-skin einfo Current pwd: `pwd` einfo Current kjbackground files: find . -name "*kjbackground*" -ls einfo executing rm kjbackground.lo .libs/kjbackground.o rm kjbackground.lo .libs/kjbackground.o einfo kjbackground files now: find . -name "*kjbackground*" -ls einfo Running make. Environment: set make einfo Done with make, chdir to $MYPWD cd $MYPWD einfo now back to your regularly scheduled program emake || die "died running emake, $FUNCNAME:make" ;; That internal "make," like I said before, doesn't actually work when run from inside the ebuild itself. More later, apologies for the continued spam.
Keep on, I'm interested in this strange behavior but I'm sorry that I cannot help you, I can't understand the reason of this garbage in file. But the fact that it's reproducible is at least a good thing.
Well, okay, this is somewhat weird, but I've nailed down where the problem is coming from, anyway. Turns out it's an issue with ccache. When running the process via Portage, I have /usr/lib/ccache/bin in my PATH rather early on, and when that's present, it exhibits this strange behavior. Also of note is that when I was able to repeat this problem a few times I took ccache out of my FEATURES in /etc/make.conf just to make sure that I wasn't adding any unnecessary complications to the matter, but a quick look at emerge info tells me that ccache is still active. It seems that there's a default FEATURES line specified in /etc/make.globals which includes ccache. Is there a way to explicitly disable a FEATURE in /etc/make.conf? I can't seem to get changes in make.conf to get rid of the FEATUREs set in make.globals completely.
FYI, someone else was having this problem with kdepim in bug #52872
Ok, finally you found the reason. To force out ccache you have to put '-ccache' in FEATURES in /etc/make.conf (or uninstalling ccache ;-) _ I think that this bug should be resolved.
Ah, nevermind, bug #67739 to the rescue, seems I can use "-ccache" in FEATURES in make.conf to get that behavior. I wonder if that would be worth a mention in the comments in make.conf?
Yeah, I suppose there's not much left to be done here, close away!
Forgot to close it. It was a ccache problem so I'm marking it as invalid.