mwitmer / guile-xcb

A guile implementation of the X protocol using xml/xcb
GNU General Public License v3.0
53 stars 10 forks source link

Concurrent builds with 'make -j' fail #6

Open rmloveland opened 9 years ago

rmloveland commented 9 years ago

Not sure if this is something you even want to support, but trying to build concurrently fails with 'make -j 2' like so:

~/Desktop/guile-xcb $ make -j 2
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/rml/Desktop/guile-xcb/build_aux/missing aclocal -I ./m4
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /home/rml/Desktop/guile-xcb/build_aux/missing autoconf
cd . && /bin/sh /home/rml/Desktop/guile-xcb/build_aux/missing automake --gnu
/bin/sh ./config.status --recheck
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for pkg-config... (cached) /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: checking for guile 2.0
configure: checking for guile 2.2
configure: found guile 2.2
checking for Guile site directory... /usr/share/guile/site/2.0
checking for guile... /usr/bin/guile
checking for guild... /usr/bin/guild
checking for guile-config... /usr/bin/guile-config
/usr/share/guile/site/2.0
/usr/lib64/guile/2.0/site-ccache
checking that generated files are newer than configure... done
configure: creating ./config.status
/bin/sh ./config.status
config.status: creating Makefile
restore=: && backupdir=".am$$" && \
amcwd=pwd && CDPATH="${ZSH_VERSION+.}:" && cd . && \
rm -rf $backupdir && mkdir $backupdir && \
if (/bin/sh /home/rml/Desktop/guile-xcb/build_aux/missing makeinfo --version) >/dev/null 2>&1; then \
for f in guile-xcb.info guile-xcb.info-[0-9] guile-xcb.info-[0-9][0-9] guile-xcb.i[0-9] guile-xcb.i[0-9][0-9]; do \
if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
done; \
else :; fi && \
cd "$am
cwd"; \
if /bin/sh /home/rml/Desktop/guile-xcb/build_aux/missing makeinfo -I . \
-o guile-xcb.info guile-xcb.texi; \
then \
rc=0; \
CDPATH="${ZSH_VERSION+.}:" && cd .; \
else \
rc=$?; \
CDPATH="${ZSH_VERSION+.}:" && cd . && \
$restore $backupdir/* echo "./guile-xcb.info" | sed 's|[^/]*$||'; \
fi; \
rm -rf $backupdir; exit $rc
GUILE_FLAGS="-C /home/rml/Desktop/guile-xcb" /usr/bin/guild compile flow/event-loop.scm --output=flow/event-loop.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /usr/bin/guild
;;; compiled /home/rml/.cache/guile/ccache/2.0-LE-8-2.0/usr/bin/guild.go
wrote flow/event-loop.go' GUILE_FLAGS="-C /home/rml/Desktop/guile-xcb" /usr/bin/guild compile xcb/xml/records.scm --output=xcb/xml/records.go guile-xcb.texi:72: warning: @findex missing argument wrotexcb/xml/records.go'
GUILE_FLAGS="-C /home/rml/Desktop/guile-xcb" /usr/bin/guild compile xcb/xml/enum.scm --output=xcb/xml/enum.go
wrote xcb/xml/enum.go' GUILE_FLAGS="-C /home/rml/Desktop/guile-xcb" /usr/bin/guild compile xcb/xml/type.scm --output=xcb/xml/type.go GUILE_FLAGS="-C /home/rml/Desktop/guile-xcb" /usr/bin/guild compile language/xml-xcb/support.scm --output=language/xml-xcb/support.go wrotelanguage/xml-xcb/support.go'
GUILE_FLAGS="-C /home/rml/Desktop/guile-xcb" /usr/bin/guild compile xcb/xml/union.scm --output=xcb/xml/union.go
Backtrace:
In system/base/target.scm:
59: 19 [with-target "x86_64-redhat-linux-gnu" ...]
In system/base/compile.scm:
150: 18 [compile-file "xcb/xml/union.scm" #:output-file ...]
43: 17 [call-once #<procedure f02a40 at system/base/compile.scm:56:5 ()>]
In ice-9/boot-9.scm:
171: 16 [with-throw-handler #t ...]
In system/base/compile.scm:
59: 15 [#<procedure f02a00 at system/base/compile.scm:58:9 ()>]
153: 14 [#<procedure f02a80 at system/base/compile.scm:151:8 (port)> #<closed: file 0>]
216: 13 [read-and-compile #<input: xcb/xml/union.scm 6> #:from ...]
232: 12 [lp () #f #<module (#{ g117}#) e85630>]
180: 11 [lp (#<procedure compile-tree-il (x e opts)>) (define-module # # ...) ...]
In ice-9/boot-9.scm:
2401: 10 [save-module-excursion #<procedure 1084990 at language/scheme/compile-tree-il.scm:29:3 ()>]
In language/scheme/compile-tree-il.scm:
31: 9 [#<procedure 1084990 at language/scheme/compile-tree-il.scm:29:3 ()>]
In ice-9/psyntax.scm:
1106: 8 [expand-top-sequence ((define-module # # # ...)) () ((top)) ...]
989: 7 [scan ((define-module (xcb xml union) #:use-module ...)) () ...]
279: 6 [scan ((#(syntax-object let # ...) (#) (# #) ...)) () ...]
In ice-9/eval.scm:
411: 5 [eval # ()]
In ice-9/boot-9.scm:
2951: 4 [define-module* (xcb xml union) #:filename ...]
2926: 3 [resolve-imports ((#) (#) (#) (#) ...)]
2867: 2 [resolve-interface (xcb xml type) #:select ...]
In unknown file:
?: 1 [scm-error misc-error #f "~A ~S" ("no code for module" (xcb xml type)) #f]
In ice-9/boot-9.scm:
106: 0 [#<procedure f029c0 at ice-9/boot-9.scm:97:6 (thrown-k . args)> misc-error ...]

ice-9/boot-9.scm:106:20: In procedure #<procedure f029c0 at ice-9/boot-9.scm:97:6 (thrown-k . args)>:
ice-9/boot-9.scm:106:20: no code for module (xcb xml type)
make: * [xcb/xml/union.go] Error 1
make:
* Waiting for unfinished jobs....
wrote `xcb/xml/type.go'

mwitmer commented 9 years ago

I'd like to support concurrent builds... on my system the same command works so it'd be tricky to debug that particular problem. Likely one of the xml files is being compiled to scheme before a module it refers to has finished compiling. The solution would probably be to have a make target for all the scm files and another one for the xml files