Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 47556 - CPPVM does not build with make option -j<any number other than 1>
Summary: CPPVM does not build with make option -j<any number other than 1>
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: High minor
Assignee: Gentoo Cluster Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-04-11 14:55 UTC by Chet
Modified: 2010-09-10 18:59 UTC (History)
0 users

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 Chet 2004-04-11 14:55:19 UTC
When emerging cppvm-1.5.0-r1 I get an error about creating directory "obj/LINUX".  This only happens when doing a parallel make.  If you 'make -j1' it completes file.  It seems to be in a shell script included with the build called dirmk.

Reproducible: Always
Steps to Reproduce:
1. Set MAKEOPTS="-j2" in /etc/make.conf (or anything greater than 1)
2. emerge cppvm
3.

Actual Results:  
emerge --verbose --debug cppvm
Calculating dependencies
Parent:    None
Depstring: sys-cluster/cppvm
Candidates: ['sys-cluster/cppvm']
ebuild: sys-cluster/cppvm-1.5.0-r1
binpkg: 
None                                                                            
           \
Parent:    ebuild / sys-cluster/cppvm-1.5.0-r1 merge
Depstring: >=sys-cluster/pvm-3.4.1-r1
Candidates: []
Exiting... ebuild / sys-cluster/cppvm-1.5.0-r1 merge
Exiting... 
None                                                                            
        ...done!
>>> emerge (1 of 1) sys-cluster/cppvm-1.5.0-r1 to /
+ /usr/sbin/ebuild.sh clean
+ dyn_clean
+ rm -rf /var/tmp/portage/cppvm-1.5.0-r1/image
+ rm -rf /var/tmp/portage/cppvm-1.5.0-r1/build-info
+ has keeptemp autoaddcvs ccache sandbox
+ hasq keeptemp autoaddcvs ccache sandbox
+ local x
+ local me=keeptemp
+ shift
+ '[' autoaddcvs == keeptemp ']'
+ '[' ccache == keeptemp ']'
+ '[' sandbox == keeptemp ']'
+ return 1
+ return 1
+ rm -rf '/var/tmp/portage/cppvm-1.5.0-r1/temp/*'
+ has keepwork autoaddcvs ccache sandbox
+ hasq keepwork autoaddcvs ccache sandbox
+ local x
+ local me=keepwork
+ shift
+ '[' autoaddcvs == keepwork ']'
+ '[' ccache == keepwork ']'
+ '[' sandbox == keepwork ']'
+ return 1
+ return 1
+ rm -rf /var/tmp/portage/cppvm-1.5.0-r1/.compiled
+ rm -rf /var/tmp/portage/cppvm-1.5.0-r1/.unpacked
+ rm -rf /var/tmp/portage/cppvm-1.5.0-r1/work
+ '[' -f /var/tmp/portage/cppvm-1.5.0-r1/.unpacked ']'
+ true
+ set +x
>>> md5 src_uri ;-) cppvm.tar.gz
+ /usr/sbin/ebuild.sh setup
+ dyn_setup
+ '[' GNU == Linux ']'
+ pkg_setup
+ return
+ set +x
+ dyn_unpack
+ trap abort_unpack SIGINT SIGQUIT
+ local newstuff=no
+ '[' -e /var/tmp/portage/cppvm-1.5.0-r1/work ']'
+ '[' -e /var/tmp/portage/cppvm-1.5.0-r1/work ']'
+ install -m0700 -d /var/tmp/portage/cppvm-1.5.0-r1/work
+ '[' -d /var/tmp/portage/cppvm-1.5.0-r1/work ']'
+ cd /var/tmp/portage/cppvm-1.5.0-r1/work
+ echo '>>> Unpacking source...'
>>> Unpacking source...
+ src_unpack
+ unpack cppvm.tar.gz
+ local x
+ local y
+ local myfail
+ local tarvars
+ '[' GNU == BSD ']'
+ tarvars=--no-same-owner
+ myfail=failure unpacking cppvm.tar.gz
++ pwd
+ echo '>>> Unpacking cppvm.tar.gz to /var/tmp/portage/cppvm-1.5.0-r1/work'
>>> Unpacking cppvm.tar.gz to /var/tmp/portage/cppvm-1.5.0-r1/work
++ echo cppvm.tar.gz
++ sed 's:.*\.\(tar\)\.[a-zA-Z0-9]*:\1:'
+ y=tar
+ '[' tar == tar ']'
+ tar --no-same-owner -xzf /usr/portage/distfiles/cppvm.tar.gz
+ touch /var/tmp/portage/cppvm-1.5.0-r1/.unpacked
+ echo '>>> Source unpacked.'
>>> Source unpacked.
+ cd /var/tmp/portage/cppvm-1.5.0-r1
+ trap SIGINT SIGQUIT
+ set +x
+ dyn_compile
+ trap abort_compile SIGINT SIGQUIT
+ '[' '-O3 -march=pentium3 -fprefetch-loop-arrays -funroll-loops -pipe' '!=' 
unset ']'
+ export CFLAGS
+ '[' '-O3 -march=pentium3 -fprefetch-loop-arrays -funroll-loops -pipe' '!=' 
unset ']'
+ export CXXFLAGS
+ '[' unset '!=' unset ']'
+ '[' unset '!=' unset ']'
+ '[' unset '!=' unset ']'
+ '[' unset '!=' unset ']'
+ '[' unset == unset ']'
+ export DISTCC_DIR=/var/tmp/.distcc
+ DISTCC_DIR=/var/tmp/.distcc
+ '[' '!' -z /var/tmp/.distcc ']'
+ addwrite /var/tmp/.distcc
+ export 
SANDBOX_WRITE=/dev/zero:/dev/fd/:/dev/null:/dev/pts/:/dev/vc/:/dev/tty:/tmp/:/de
v/shm/ngpt:/var/log/scrollkeeper.log:/root/.gconfd/lock:/root/.bash_history:/usr
/tmp/conftest:/usr/lib/conftest:/usr/tmp/cf:/usr/lib/cf:/var/tmp:/tmp:/var/tmp:/
tmp/:/var/tmp/:/dev/shm:/var/tmp:/root/.ccache:/var/tmp/.distcc
+ 
SANDBOX_WRITE=/dev/zero:/dev/fd/:/dev/null:/dev/pts/:/dev/vc/:/dev/tty:/tmp/:/de
v/shm/ngpt:/var/log/scrollkeeper.log:/root/.gconfd/lock:/root/.bash_history:/usr
/tmp/conftest:/usr/lib/conftest:/usr/tmp/cf:/usr/lib/cf:/var/tmp:/tmp:/var/tmp:/
tmp/:/var/tmp/:/dev/shm:/var/tmp:/root/.ccache:/var/tmp/.distcc
+ has noauto autoaddcvs ccache sandbox
+ cd /var/tmp/portage/cppvm-1.5.0-r1
+ '[' '!' -e build-info ']'
+ mkdir build-info
+ cp /usr/portage/sys-cluster/cppvm/cppvm-1.5.0-r1.ebuild build-info/cppvm-
1.5.0-r1.ebuild
+ '[' /var/tmp/portage/cppvm-1.5.0-r1/.compiled -nt /var/tmp/portage/cppvm-
1.5.0-r1/work ']'
+ '[' -d /var/tmp/portage/cppvm-1.5.0-r1/work/cppvm-1.5.0 ']'
+ export S D
+ export PWORKDIR=/var/tmp/portage/cppvm-1.5.0-r1/work
+ PWORKDIR=/var/tmp/portage/cppvm-1.5.0-r1/work
+ src_compile
+ cd /var/tmp/portage/cppvm-1.5.0-r1/work/cppvm
+ emake
creating subdirectory obj/LINUX
creating subdirectory obj/LINUX
mkdir: cannot create directory `obj/LINUX': File exists
make: *** [obj/LINUX/pvm_arch.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** Waiting for unfinished jobs....
Compiling src/pvm_arbo.cpp => obj/LINUX/pvm_arbo.o
make: *** Waiting for unfinished jobs....
+ diefunc src_compile 29 2
+ local funcname=src_compile lineno=29 exitcode=2
+ shift 3
+ echo

+ echo '!!! ERROR: sys-cluster/cppvm-1.5.0-r1 failed.'
!!! ERROR: sys-cluster/cppvm-1.5.0-r1 failed.
+ echo '!!! Function src_compile, Line 29, Exitcode 2'
!!! Function src_compile, Line 29, Exitcode 2
+ echo '!!! (no error message)'
!!! (no error message)
+ echo

+ exit 1


Expected Results:  
Successful install of cppvm.

This was done right after an 'emerge sync' and 'emerge portage'.  If you switch 
MAKEOPTS to "-j1" it completes fine.  Seems to be a race condition with 
multiple instances trying to check/create the obj/LINUX directory at the same 
time through the dirmk shell script (included in the .tar.gz file).

Possibly switching the dirmk command with 'mkdir -p' could alleviate this 
problem?

Please let me know if this is enough info.  Unfortunately this is my first bug 
I've filed so I'm not sure if I've done it correctly.
Comment 1 Donnie Berkholz (RETIRED) gentoo-dev 2004-04-25 15:02:39 UTC
Preventing parallel builds.