Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 32781 - kdemultimedia-3.2.0_beta1 fails to build due to -j2 in emake
Summary: kdemultimedia-3.2.0_beta1 fails to build due to -j2 in emake
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: High blocker
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
: 42318 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-11-05 02:45 UTC by Denys Duchier
Modified: 2004-03-31 04:28 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Denys Duchier 2003-11-05 02:45:59 UTC
Here is what I see at the point of failure: 
 
make[4]: Entering directory 
`/var/tmp/portage/kdemultimedia-3.2.0_beta1/work/kdemultimedia-3.1.93/arts/midi' 
/usr/kde/3.2/bin/mcopidl -t -I/usr/kde/3.2/include/arts ./artsmidi.idl 
/bin/sh ../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. 
-I. -I../.. -I../../arts/runtime -I./freeverb -I/usr/kde/3.2/include/arts 
-I/usr/kde/3.2/include -I/usr/qt/3/include -I/usr/X11R6/include   
-DQT_THREAD_SUPPORT  -D_REENTRANT  -Wnon-virtual-dtor -Wno-long-long -Wundef 
-Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 
-D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -DNDEBUG -DNO_DEBUG 
-O2 -march=pentium3 -O2 -pipe -fomit-frame-pointer -Wformat-security 
-Wmissing-format-attribute -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 midimanager_impl.lo `test -f 'midimanager_impl.cc' 
|| echo './'`midimanager_impl.cc 
rm: cannot remove `': Invalid argument 
In file included from midimanager_impl.cc:23: 
midimanager_impl.h:26:22: artsmidi.h: No such file or directory 
In file included from midimanager_impl.cc:23: 
midimanager_impl.h:32: syntax error before `,' token 
midimanager_impl.h:37: syntax error before `;' token 
 
yet, artsmidi.h exists.  My guess was that this was caused by a race issue 
between the process that creates artsmidi.h and the process that compiles 
a file that depends on artsmidi.h.  Indeed, I restart the make by hand and 
it worked just fine. 
 
I suspect that the fix consists of adding the proper explicit dependencies 
on artsmidi.h 

Reproducible: Always
Steps to Reproduce:
1.
2.
3.



Portage 2.0.49-r15 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 
2.4.20-gentoo-r2) 
================================================================= 
System uname: 2.4.20-gentoo-r2 i686 Intel(R) Pentium(R) III Mobile CPU      
1200MHz 
Gentoo Base System version 1.4.3.10p1 
ACCEPT_KEYWORDS="x86" 
AUTOCLEAN="yes" 
CFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer" 
CHOST="i686-pc-linux-gnu" 
COMPILER="gcc3" 
CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config 
/usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /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" 
CXXFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer" 
DISTDIR="/usr/portage/distfiles" 
FEATURES="sandbox ccache autoaddcvs" 
GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ 
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo/ 
http://gentoo.oregonstate.edu/ 
http://www.ibiblio.org/pub/Linux/distributions/gentoo" 
MAKEOPTS="-j2" 
PKGDIR="/usr/portage/packages" 
PKGUSE="( =net-www/mozilla-1.4-r4 => gtk2 )" 
PORTAGE_TMPDIR="/var/tmp" 
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY="/project/ARCH/Work/duchier@loria.home--portage/config/portage" 
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" 
USE="x86 oss apm avi crypt cups encode foomaticdb gif jpeg libg++ mad mikmod 
mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib gtkhtml 
alsa gdbm berkdb slang readline arts tetex aalib bonobo svga tcltk java guile 
mysql X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gnome gtk 
qt kde motif opengl mozilla dvd sse ldap mozsvg"
Comment 1 Joerg Schaible 2004-02-18 16:09:32 UTC
I had a similar error for kdemultimedia-3.2.0 when I compiled new KDE from text console. I also got some strange syntax failures. Unfortunately the redirected log file from the build is scrambled and does not show the exact error. I tried this for four times and the build stopped every time with the same problem. Now, it got really strange when I started my half-compiled kde 3.2.0 and started the build in the Konsole ... now kdemultimedia was successful. Therefore I suppose also race conditions during the compilation. 
Comment 2 Caleb Tennis (RETIRED) gentoo-dev 2004-02-29 16:34:10 UTC
*** Bug 42318 has been marked as a duplicate of this bug. ***
Comment 3 Guy 2004-03-04 13:54:21 UTC
The following bugs are most like the same issue:

bug # 40474
bug # 42825

Try the following:

# MAKEOPTS="-j1" emerge arts kdelibs kdemultimedia kde

On _some_ machines, there is probably a 'race' condition invoked when running "-j2" and higher. I had problems on 2 machines of 7. For both machines, the above solved my problem.
Comment 4 Grant Likely 2004-03-14 20:28:44 UTC
I've also hit this bug with kdemultimedia-3.2.1  The ebuild failed with the following error; however, when I went into the build directory and typed 'make' to continue where it left off, the problem disappeared.

I'm using distcc for compiles with -j4 passed to make and 2 machines doing the compile.

make[3]: Entering directory `/home/portage/tmp/portage/kdemultimedia-3.2.1/work/
kdemultimedia-3.2.1/kscd'
/usr/qt/3/bin/uic -L /usr/kde/3.2/lib/kde3/plugins/designer -nounload -o panel.h
 ./panel.ui
/usr/qt/3/bin/uic -L /usr/kde/3.2/lib/kde3/plugins/designer -nounload -o configW
idgetUI.h ./configWidgetUI.ui
/usr/qt/3/bin/moc ./kvolumecontrol.h -o kvolumecontrol.moc
/usr/qt/3/bin/moc ./kscd.h -o kscd.moc
/usr/qt/3/bin/moc ./configdlg.h -o configdlg.moc
/usr/qt/3/bin/moc ./ledlamp.h -o ledlamp.moc
/usr/qt/3/bin/moc ./CDDialogData.h -o CDDialogData.moc
/usr/qt/3/bin/moc ./CDDialog.h -o CDDialog.moc
/usr/qt/3/bin/moc ./docking.h -o docking.moc
/usr/qt/3/bin/moc ./inexact.h -o inexact.moc
/usr/qt/3/bin/moc ./mgconfdlg.h -o mgconfdlg.moc
/usr/qt/3/bin/moc ./bwlednum.h -o bwlednum.moc
/usr/kde/3.2/bin/dcopidl ./kscd.h > kscd.kidl || ( rm -f kscd.kidl ; false )
/usr/kde/3.2/bin/dcopidl2cpp --c++-suffix cpp --no-signals --no-stub kscd.kidl
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I/usr/kde/3.2/include -I/usr/qt/3/include
 -I/usr/X11R6/include   -DQT_THREAD_SUPPORT  -D_REENTRANT  -DNDEBUG -DNO_DEBUG -
O2 -march=athlon -O2 -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 kscd_skel.o `test -f 'kscd_skel.cpp' || echo './'`kscd_skel.cpp
In file included from kscd_skel.cpp:9:
kscd.h:110: error: parse error before `,' token
kscd.h:112: error: virtual outside class declaration
kscd.h:112: error: non-member function `const char* className()' cannot have `
   const' method qualifier
kscd.h:112: error: virtual outside class declaration
kscd.h:112: error: virtual outside class declaration
kscd.h:112: error: virtual outside class declaration
kscd.h:112: error: virtual outside class declaration
kscd.h: In function `QObject* qObject()':
kscd.h:112: error: invalid use of `this' in non-member function
kscd.h: At global scope:
kscd.h:112: error: parse error before `private'
kscd.h:113: error: parse error before `private'
kscd.h: In function `void stop()':
kscd.h:121: error: `stopClicked' undeclared (first use this function)
kscd.h:121: error: (Each undeclared identifier is reported only once for each
   function it appears in.)
kscd.h: In function `void previous()':
kscd.h:122: error: `prevClicked' undeclared (first use this function)
kscd.h: In function `void next()':
kscd.h:123: error: `nextClicked' undeclared (first use this function)
kscd.h: In function `void jumpTo(int)':
kscd.h:124: error: `jumpToTime' undeclared (first use this function)
kscd.h: In function `void eject()':
kscd.h:125: error: `ejectClicked' undeclared (first use this function)
kscd.h: In function `void quit()':
kscd.h:126: error: `quitClicked' undeclared (first use this function)
kscd.h: In function `void toggleLoop()':
kscd.h:127: error: `loopClicked' undeclared (first use this function)
kscd.h: In function `void toggleShuffle()':
kscd.h:128: error: `randomSelected' undeclared (first use this function)
kscd.h: In function `void toggleTimeDisplay()':
kscd.h:129: error: `cycleplaytimemode' undeclared (first use this function)
kscd.h: In function `void cddbDialog()':
kscd.h:130: error: `CDDialogSelected' undeclared (first use this function)
kscd.h: In function `void optionDialog()':
kscd.h:131: error: `showConfig' undeclared (first use this function)
kscd.h: In function `void setTrack(int)':
kscd.h:132: error: `trackSelected' undeclared (first use this function)
kscd.h: In function `int getVolume()':
kscd.h:134: error: `volume' undeclared (first use this function)
kscd.h: At global scope:
kscd.h:141: error: parse error before `public'
kscd.h:143: error: destructors must be member functions
kscd.h:145: error: virtual outside class declaration
kscd.h: In function `bool dock()':
kscd.h:147: error: `docking' undeclared (first use this function)
kscd.h: In function `bool stopOnExit()':
kscd.h:149: error: `stopexit' undeclared (first use this function)
kscd.h: In function `bool autoPlay()':
kscd.h:151: error: `autoplay' undeclared (first use this function)
kscd.h: In function `bool ejectOnFinish()':
kscd.h:153: error: `ejectonfinish' undeclared (first use this function)
kscd.h: In function `unsigned int skipInterval()':
kscd.h:156: error: `skipDelta' undeclared (first use this function)
kscd.h: In function `QColor ledColor()':
kscd.h:158: error: `led_color' undeclared (first use this function)
kscd.h: In function `QColor bgColor()':
kscd.h:159: error: `background_color' undeclared (first use this function)
kscd.h: In function `QString devicePath()':
kscd.h:162: error: `cd_device_str' undeclared (first use this function)
kscd.h: In function `QString audioSystem()':
kscd.h:163: error: `audio_system_str' undeclared (first use this function)
kscd.h: In function `QString audioDevice()':
kscd.h:165: error: `audio_systems_list' undeclared (first use this function)
kscd.h: At global scope:
kscd.h:167: error: parse error before `protected'
kscd.h:171: error: parse error before `public'
kscd.h:174: error: `void randomSelected()' used prior to declaration
kscd.h:179: error: `void nextClicked()' used prior to declaration
kscd.h:180: error: `void prevClicked()' used prior to declaration
kscd.h:181: error: `void stopClicked()' used prior to declaration
kscd.h:182: error: `void ejectClicked()' used prior to declaration
kscd.h:183: error: `void jumpToTime(int)' used prior to declaration
kscd.h:184: error: `void quitClicked()' used prior to declaration
kscd.h:187: error: `void loopClicked()' used prior to declaration
kscd.h:189: error: `void trackSelected(int)' used prior to declaration
kscd.h:190: error: `void showConfig()' used prior to declaration
kscd.h:197: error: `void cycleplaytimemode()' used prior to declaration
kscd.h:207: error: parse error before `protected'
kscd.h:212: error: parse error before `protected'
kscd.h:233: error: parse error before `private'
kscd.h:243: error: `QColor background_color' used prior to declaration
kscd.h:244: error: `QColor led_color' used prior to declaration
kscd.h:266: error: `unsigned int skipDelta' used prior to declaration
kscd.h:267: error: `int volume' used prior to declaration
kscd.h:277: error: `QString cd_device_str' used prior to declaration
kscd.h:278: error: `QString audio_system_str' used prior to declaration
kscd.h:279: error: `QString audio_device_str' used prior to declaration
kscd.h:280: error: `QStringList audio_systems_list' used prior to declaration
kscd.h:314: error: `bool docking' used prior to declaration
kscd.h:315: error: `bool autoplay' used prior to declaration
kscd.h:316: error: `bool stopexit' used prior to declaration
kscd.h:317: error: `bool ejectonfinish' used prior to declaration
kscd.h:321: error: parse error before `public'
kscd.h:326: error: `void CDDialogSelected()' used prior to declaration
kscd.h:330: error: parse error before `private'
kscd.h:341: error: parse error before `}' token
kscd_skel.cpp:63: error: invalid use of undefined type `class KSCD'
kscd.h:110: error: forward declaration of `class KSCD'
kscd_skel.cpp: In member function `bool KSCD::process(const QCString&, const
   QByteArray&, QCString&, QByteArray&)':
kscd_skel.cpp:74: error: `play' undeclared (first use this function)
kscd_skel.cpp:168: error: cannot call member function `virtual bool
   DCOPObject::process(const QCString&, const QByteArray&, QCString&,
   QByteArray&)' without object
kscd_skel.cpp: At global scope:
kscd_skel.cpp:174: error: invalid use of undefined type `class KSCD'
kscd.h:110: error: forward declaration of `class KSCD'
kscd_skel.cpp: In member function `QCStringList KSCD::interfaces()':
kscd_skel.cpp:175: error: cannot call member function `virtual QCStringList
   DCOPObject::interfaces()' without object
kscd_skel.cpp: At global scope:
kscd_skel.cpp:181: error: invalid use of undefined type `class KSCD'
kscd.h:110: error: forward declaration of `class KSCD'
kscd_skel.cpp: In member function `QCStringList KSCD::functions()':
kscd_skel.cpp:182: error: cannot call member function `virtual QCStringList
   DCOPObject::functions()' without object
distcc[12466] ERROR: compile on siegfried failed
make[3]: *** [kscd_skel.o] Error 1
make[3]: *** Waiting for unfinished jobs....
Session management error: Could not open network socket
Session management error: Could not open network socket
make[3]: Leaving directory `/home/portage/tmp/portage/kdemultimedia-3.2.1/work/kdemultimedia-3.2.1/kscd'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/portage/tmp/portage/kdemultimedia-3.2.1/work/kdemultimedia-3.2.1/kscd'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/portage/tmp/portage/kdemultimedia-3.2.1/work/kdemultimedia-3.2.1' 
make: *** [all] Error 2

!!! ERROR: kde-base/kdemultimedia-3.2.1 failed.
!!! Function kde_src_compile, Line 128, Exitcode 2
!!! died running emake, kde_src_compile:make

Comment 5 Caleb Tennis (RETIRED) gentoo-dev 2004-03-16 05:23:24 UTC
this is now fixed in the 3.2.1 ebuild and upstream.
Comment 6 Imad R. Faiad 2004-03-27 07:11:00 UTC
caleb, I am getting the exact same error, while building an image
for mass deployment, this time using the 2.6 headers and nptl.
i am just curious what is causing this error, because the last
time i had kde 3.2.1 built it was in a distcc environment with MAKEOPTS="-j25"
(yes -j25, 12 pIV boxen with ht!) and it went flawlessly.
I am not using distcc this time around, i just droped MAKEOPTS from "-j3"
to "-j1", if it doesn't work will clear ccache and try again.
will let you know how it goes.
Comment 7 Imad R. Faiad 2004-03-27 08:00:04 UTC
caleb, just to let you know that setting MAKEOPTS="-j1" and
re-emerging did the trick, did not need to clear the ccache.
i am still wondering though, how i managed to cruise through
this ebuild some week or so ago in a distcc environment
with MAKEOPTS="-j25"
??
mystery??
thanks for all your much appreciated hard work in supporting
the kde, qt ebuilds...
best regards
Comment 8 Paul de Vrieze (RETIRED) gentoo-dev 2004-03-27 10:46:42 UTC
There is no predictable path that is followed by make to go through a broken dependency graph (which almost all decomposed makefiles lead to). As such it can work one time and not the other. As a distcc environment is significantly different from a single host it is more than likely that the path followed was different and did not lead to (or appear to lead to) miscompilation.
Comment 9 Caleb Tennis (RETIRED) gentoo-dev 2004-03-31 04:28:56 UTC
It should technically be fixed now - I have patched the ebuild and worked upstream to get the fix incorporated in the Makefile to generate the proper dependencies.