Bug 3558 - guile fails to compile in world build - maybe parallelism issue
Summary: guile fails to compile in world build - maybe parallelism issue
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: devtools / tool chain (show other bugs)
Version: 1.4
Hardware: x86 Multiple
: Medium+ major
Target Milestone: 1.4 M2
Assignee: Bogdan Marinescu
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2012-12-10 22:13 UTC by Saul Wold
Modified: 2013-01-10 11:28 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Saul Wold 2012-12-10 22:13:58 UTC
This looks like it might be a parallelism issue with Guile.

| make[2]: Entering directory `/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/work/i586-poky-linux/guile/2.0.6-r2/guile-2.0.6/libguile'
| \
| if [ "yes" = "yes" ]; then \
| 	gcc -DHAVE_CONFIG_H  -I.. \
| 	   -c -o gen-scmconfig.o gen-scmconfig.c; \
| bogdan.a.marinescu@intel.comelse \
| 	i586-poky-linux-gcc  -m32   -march=i586 --sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86 -DHAVE_CONFIG_H   -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -Wall -Wmissing-prototypes -Wdeclaration-after-statement -Wpointer-arith -Wswitch-enum -fno-strict-aliasing -fvisibility=hidden -O2 -pipe -g -feliminate-unused-debug-types -c -o gen-scmconfig.o gen-scmconfig.c; \
| fi
| /bin/grep '^VM_DEFINE' vm-i-system.c > vm-i-system.i
| /bin/grep '^VM_DEFINE' vm-i-scheme.c > vm-i-scheme.i
| /bin/grep '^VM_DEFINE' vm-i-loader.c > vm-i-loader.i
| \
| rm -f gen-scmconfig; \
| if [ "yes" = "yes" ]; then \
| 	gcc -o gen-scmconfig gen-scmconfig.o; \
| else \
| 	../i586-poky-linux-libtool  --tag=CC   --mode=link i586-poky-linux-gcc  -m32   -march=i586 --sysroot=/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86 -Wall -Wmissing-prototypes -Wdeclaration-after-statement -Wpointer-arith -Wswitch-enum -fno-strict-aliasing -fvisibility=hidden -O2 -pipe -g -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o gen-scmconfig gen-scmconfig.o  -lcrypt -lm ; \
| fi
| (rm -f scmconfig.h.tmp; \
| cat ./scmconfig.h.top > scmconfig.h.tmp; \
| ./gen-scmconfig >> scmconfig.h.tmp; \
| chmod 444 scmconfig.h.tmp; \
| rm -f scmconfig.h; \
| mv scmconfig.h.tmp scmconfig.h)
| ../libguile/guile-snarf -o alist.x alist.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o arbiters.x arbiters.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o array-handle.x array-handle.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o array-map.x array-map.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o arrays.x arrays.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o async.x async.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o backtrace.x backtrace.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o boolean.x boolean.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o bitvectors.x bitvectors.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o bytevectors.x bytevectors.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o chars.x chars.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o control.x control.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o continuations.x continuations.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o debug.x debug.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o deprecated.x deprecated.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o deprecation.x deprecation.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o dynl.x dynl.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o dynwind.x dynwind.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o eq.x eq.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o error.x error.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o eval.x eval.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o evalext.x evalext.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o expand.x expand.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o extensions.x extensions.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| ../libguile/guile-snarf -o feature.x feature.c -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -I/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib/libffi-3.0.11/include    -O2 -pipe -g -feliminate-unused-debug-types
| dynl.c:54:30: fatal error: libguile/libpath.h: No such file or directory
| compilation terminated.
| make[2]: *** [dynl.x] Error 1
| make[2]: *** Waiting for unfinished jobs....
| mv libpath.tmp libpath.h
| make[2]: Leaving directory `/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/work/i586-poky-linux/guile/2.0.6-r2/guile-2.0.6/libguile'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/work/i586-poky-linux/guile/2.0.6-r2/guile-2.0.6'
| make: *** [all] Error 2
| ERROR: oe_runmake failed
| ERROR: Function failed: do_compile (see /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/work/i586-poky-linux/guile/2.0.6-r2/temp/log.do_compile.32055 for further information)
NOTE: recipe guile-2.0.6-r2: task do_compile: Failed
Comment 1 Bogdan Marinescu 2013-01-09 08:25:08 UTC
I can't reproduce this. How is your parallel build configured (BB_NUMBER_THREADS/PARALLEL_MAKE)? Did this error appear on an autobuilder?
Comment 2 Ross Burton 2013-01-09 08:29:21 UTC
Yes, it was on the autobuilder (paths with /srv/home/pokybuild/yocto-autobuilder are the give-away).

Parallism problems are generally very rare and replicating isn't always easy... the telepathy-glib failures happened roughly once a month.
Comment 3 Bogdan Marinescu 2013-01-09 08:30:08 UTC
Waiting for reproducibility instructions.
Comment 4 Ross Burton 2013-01-09 08:54:04 UTC
Reproduction instructions: build guile.  If it succeeds, try again.

When debugging problems like this which are rare, you have to start with the makefiles.  Look at the failing build log and try and work out how it could have happened.  Often it's obvious as to what the problem is because there's a missing dependency and then you can construct the failure by invoking rules manually in a specific order.

Don't spend all day on this, but solving random failures is always useful.
Comment 5 Bogdan Marinescu 2013-01-09 12:13:20 UTC
Patch sent (guile: add explicit dependency to avoid parallel build issue).
Comment 6 Bogdan Marinescu 2013-01-10 11:28:16 UTC
Patch merged.