Gentoo Archives: gentoo-alt

From: Wolfram Kahl <kahl@××××××××××××.ca>
To: gentoo-alt@l.g.o
Subject: [gentoo-alt] bootstrap-prefix.sh: Parallel make error with bison?
Date: Sun, 24 Aug 2014 02:38:50
Message-Id: 20140824023849.GF22502@ritchie.cas.mcmaster.ca
1 Hello,
2
3 I just started an attempt at installing a Gentoo prefix with bootstrap-prefix.sh,
4 and hit a problem that looks like inadmissible make parallelisation:
5 It recognised the 8 cores, and I accepted the proposed 5 for -j;
6 the following four log fragments (separated by ``[...]'')
7 look like three parallel make subprocesses are trying to use and remove
8 the same stamp file at almost the same time, triggering a race condition:
9
10 ==========================================================================
11 config.status: creating po/Makefile
12 config.status: executing tests/atconfig commands
13 >>> Source configured.
14 >>> Compiling source in /nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2 ...
15 make -j5
16 rm -f examples/extracted.stamp examples/extracted.stamp.tmp
17 rm -f lib/alloca.h-t lib/alloca.h && \
18 { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
19 cat ./lib/alloca.in.h; \
20 } > lib/alloca.h-t && \
21 mv -f lib/alloca.h-t lib/alloca.h
22 rm -f lib/configmake.h-t && \
23 { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
24 echo '#define PREFIX "/nfs/u30/kahl/GentooPrefix2014/usr"'; \
25 [...]
26 mv lib/spawn.h-t lib/spawn.h
27 make[1]: Entering directory `/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2'
28 rm -f examples/extracted.stamp examples/extracted.stamp.tmp
29 make[1]: Entering directory `/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2'
30 rm -f examples/extracted.stamp examples/extracted.stamp.tmp
31 make[1]: Entering directory `/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2'
32 rm -f examples/extracted.stamp examples/extracted.stamp.tmp
33 touch examples/extracted.stamp.tmp
34 touch examples/extracted.stamp.tmp
35 touch examples/extracted.stamp.tmp
36 VERSION="3.0.2" /bin/true ./examples/extexi ./doc/bison.texi -- examples/calc++/calc++-driver.cc examples/calc++/calc++-driver.hh examples/calc++/calc++-scanner.ll examples
37 /calc++/calc++.cc examples/calc++/calc++-parser.yy examples/mfcalc/calc.h examples/mfcalc/mfcalc.y examples/rpcalc/rpcalc.y
38 VERSION="3.0.2" /bin/true ./examples/extexi ./doc/bison.texi -- examples/calc++/calc++-driver.cc examples/calc++/calc++-driver.hh examples/calc++/calc++-scanner.ll examples
39 /calc++/calc++.cc examples/calc++/calc++-parser.yy examples/mfcalc/calc.h examples/mfcalc/mfcalc.y examples/rpcalc/rpcalc.y
40 VERSION="3.0.2" /bin/true ./examples/extexi ./doc/bison.texi -- examples/calc++/calc++-driver.cc examples/calc++/calc++-driver.hh examples/calc++/calc++-scanner.ll examples
41 /calc++/calc++.cc examples/calc++/calc++-parser.yy examples/mfcalc/calc.h examples/mfcalc/mfcalc.y examples/rpcalc/rpcalc.y
42 mv examples/extracted.stamp.tmp examples/extracted.stamp
43 mv examples/extracted.stamp.tmp examples/extracted.stamp
44 mv examples/extracted.stamp.tmp examples/extracted.stamp
45 make[1]: Leaving directory `/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2'
46 mv: cannot stat `examples/extracted.stamp.tmp': No such file or directory
47 make[1]: *** [examples/extracted.stamp] Error 1
48 make[1]: Leaving directory `/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2'
49 rm -f lib/stdio.h-t lib/stdio.h && \
50 { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
51 sed -e 's|@''GUARD_PREFIX''@|GL|g' \
52 -e 's|@''INCLUDE_NEXT''@|include_next|g' \
53 [...]
54 -e '/definition of _GL_ARG_NONNULL/r lib/arg-nonnull.h' \
55 -e '/definition of _GL_WARN_ON_USE/r lib/warn-on-use.h'; \
56 } > lib/stdio.h-t && \
57 mv lib/stdio.h-t lib/stdio.h
58 mv: cannot stat `examples/extracted.stamp.tmp': No such file or directory
59 make[1]: *** [examples/extracted.stamp] Error 1
60 make[1]: Leaving directory `/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2'
61 make: *** [examples/mfcalc/mfcalc.y] Error 2
62 make: *** Waiting for unfinished jobs....
63 make: *** [examples/rpcalc/rpcalc.y] Error 2
64 * ERROR: sys-devel/bison-3.0.2::gentoo_prefix failed (compile phase):
65 * emake failed
66 *
67 * If you need support, post the output of `emerge --info '=sys-devel/bison-3.0.2::gentoo_prefix'`,
68 * the complete build log and the output of `emerge -pqv '=sys-devel/bison-3.0.2::gentoo_prefix'`.
69 * The complete build log is located at '/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/temp/build.log'.
70 * The ebuild environment file is located at '/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/temp/environment'.
71 * Working directory: '/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2'
72 * S: '/nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/work/bison-3.0.2'
73
74 >>> Failed to emerge sys-devel/bison-3.0.2, Log file:
75 [...]
76 Hmmmm, I was already afraid of this to happen. Running
77 /nfs/u30/kahl/GentooPrefix2014/bin/bash ./bootstrap-prefix.sh "/nfs/u30/kahl/GentooPrefix2014" stage3
78 somewhere failed :( Details might be found in the build log:
79 /nfs/u30/kahl/GentooPrefix2014/var/tmp/portage/sys-devel/bison-3.0.2/temp/build.log
80 I have no clue, really. Please find friendly folks in #gentoo-prefix on
81 irc.gentoo.org, gentoo-alt@l.g.o mailing list, or file a bug
82 at bugs.gentoo.org under Gentoo/Alt, Prefix Support. This is most
83 inconvenient, and it crushed my ego. Sorry, I give up.
84
85
86 ==========================================================================
87
88 Is my impression right that ``make -j1'' would likely fix this?
89 If yes, how can I get it into the ``General Bootstrap Process''
90 only for bison?
91 And is there any way of restarting it from bison?
92
93 (I know I am working over NFS --- a year ago
94 (apparently before the ``General Bootstrap Process'' existed?)
95 I tried a more manual installation with /var/tmp/kahl/gentoo
96 symbolically linked as $PREFIX/var/tmp :
97 This was quite a hassle, and on the machine where I am trying this now,
98 they are apparently cleaning out old files from /var/tmp,
99 so I would have to do some trickery to make this safe.
100 In any case it would still be nice if the ``General Bootstrap Process''
101 supported such ``virtual mounts'' for /tmp and /var/tmp.
102 )
103
104
105 Thanks!
106
107 Wolfram

Replies