Bug 861

Summary: aclocal loses track of .m4 causing task do_configure to fail (gmp as illustrated here)
Product: [Build System, Metadata & Runtime] Meta-yocto Reporter: Dexuan Cui <dexuan.cui>
Component: meta-yoctoAssignee: Richard Purdie <richard.purdie>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: liangliang.wang, meta.mr.watcher, meta.watcher, poky.bs.watcher, poky.watcher, richard.purdie, yi.zhao
Version: 1.0   
Target Milestone: 1.1   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Dexuan Cui 2011-03-13 22:53:53 UTC
Looks we need to add a dependency on flac.

http://autobuilder.yoctoproject.org:8010/builders/nightly-external/builds/73/steps/shell_5/logs/stdio


ERROR: Function 'do_configure' failed (see /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/work/i586-poky-linux/gmp-5.0.1-r0/temp/log.do_configure.31251 for further information)
ERROR: Logfile of failure stored in: /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/work/i586-poky-linux/gmp-5.0.1-r0/temp/log.do_configure.31251
Log data follows:
| ERROR: Function 'do_configure' failed (see /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/work/i586-poky-linux/gmp-5.0.1-r0/temp/log.do_configure.31251 for further information)
| automake (GNU automake) 1.11.1
| Copyright (C) 2009 Free Software Foundation, Inc.
| License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
| This is free software: you are free to change and redistribute it.
| There is NO WARRANTY, to the extent permitted by law.
| 
| Written by Tom Tromey <tromey@redhat.com>
|        and Alexandre Duret-Lutz <adl@gnu.org>.
| AUTOV is 1.11
| NOTE: Executing autoreconf --verbose --install --force --exclude=autopoint -I/srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.11 -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/qemux86/usr/share/aclocal
| autoreconf: Entering directory `.'
| autoreconf: configure.in: not using Gettext
| autoreconf: running: aclocal -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.11 -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/qemux86/usr/share/aclocal -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.11 -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/qemux86/usr/share/aclocal --force
| aclocal: aclocal: file `/srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/qemux86/usr/share/aclocal/libFLAC.m4' does not exist
| autoreconf: aclocal failed with exit status: 1
| FATAL: autoreconf execution failed.
NOTE: package gmp-5.0.1-r0: task do_configure: Failed
NOTE: package flac-1.2.1-r0: task do_configure: Started
Comment 1 Dexuan Cui 2011-03-14 00:28:52 UTC
(In reply to comment #0)
> Looks we need to add a dependency on flac.
> ...
> | aclocal: aclocal: file
> `/srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/qemux86/usr/share/aclocal/libFLAC.m4'
> does not exist
> | autoreconf: aclocal failed with exit status: 1
> | FATAL: autoreconf execution failed.
> NOTE: package gmp-5.0.1-r0: task do_configure: Failed
> NOTE: package flac-1.2.1-r0: task do_configure: Started

BTW: I can't reproduce the issue locally.
gmp is an arithmetic library, I don't think it could depend on flac, an audio codec. I'm not sure what happened here.
Comment 2 Richard Purdie 2011-03-14 15:15:11 UTC
This probably happens if something removes a .m4 file such as the one for flac whilst a do_configure is running, iterating over the files. We do probably need to find a way to avoid this but equally, this bug will only affect incremental builds and they will succeed afterwards.
Comment 3 Yi Zhao 2011-05-10 00:00:15 UTC
With 20100506-4 build on autobuilder
git info: 856a5e496b7ddd814f6a94552d02074f0ab30842
This issue caused x86_64-arm toolchain build failure. The package gmp-nativesdk was build failed.

ERROR: Logfile of failure stored in: /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gmp-nativesdk-5.0.1-r0/temp/log.do_configure.3621
Log data follows:
| automake (GNU automake) 1.11.1
| Copyright (C) 2009 Free Software Foundation, Inc.
| License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
| This is free software: you are free to change and redistribute it.
| There is NO WARRANTY, to the extent permitted by law.
| 
| Written by Tom Tromey <tromey@redhat.com>
|        and Alexandre Duret-Lutz <adl@gnu.org>.
| AUTOV is 1.11
| NOTE: Executing autoreconf --verbose --install --force --exclude=autopoint -I/srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.11 -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-nativesdk-pokysdk-linux/opt/poky/1.0+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/aclocal
| autoreconf: Entering directory `.'
| autoreconf: configure.in: not using Gettext
| autoreconf: running: aclocal -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.11 -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-nativesdk-pokysdk-linux/opt/poky/1.0+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/aclocal -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-linux/usr/share/aclocal-1.11 -I /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-nativesdk-pokysdk-linux/opt/poky/1.0+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/aclocal --force
| autoreconf: configure.in: tracing
| autoreconf: running: libtoolize --copy --force
| libtoolize: putting auxiliary files in `.'.
| libtoolize: copying file `./ltmain.sh'
| libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
| libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
| libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
| libtoolize: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'
| autom4te: /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-nativesdk-pokysdk-linux/opt/poky/1.0+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/aclocal/argz.m4: no such file or directory
| aclocal: /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/sysroots/x86_64-linux/usr/bin/autom4te failed with exit status: 1
| autoreconf: aclocal failed with exit status: 1
| ERROR: autoreconf execution failed.
| ERROR: Function 'do_configure' failed (see /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gmp-nativesdk-5.0.1-r0/temp/log.do_configure.3621 for further information)
| ERROR: Function 'do_configure' failed (see /srv/home/pokybuild/poky-slave/nightly-external/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gmp-nativesdk-5.0.1-r0/temp/log.do_configure.3621 for further information)
NOTE: package gmp-nativesdk-5.0.1-r0: task do_configure: Failed

For more details, please see:
http://autobuilder.pokylinux.org:8010/builders/nightly-external/builds/117/steps/shell_47/logs/stdio
Comment 4 Richard Purdie 2011-05-10 07:16:08 UTC
Two solution ideas for this:

a) We add locking around the m4 files so when autoreconf is running, nothing can touch the sysroots. It will badly impact performance

b) We make a copy of the m4 files to a temporary directory (hardlink?) and then work against the copy.
Comment 5 Richard Purdie 2011-06-29 03:10:25 UTC
*** Bug 1200 has been marked as a duplicate of this bug. ***