[U-Boot-Users] Build Iterates Indefinitely on "Generating include/autoconf.mk"

Grant Erickson gerickson at nuovations.com
Wed Apr 2 00:43:17 CEST 2008


On 3/27/08 3:08 PM, Wolfgang Denk wrote:
> In message <000001c89049$3d85a440$2708a8c0 at CAM.ARTIMI.COM> you wrote:
>> Maybe `.LOW_RESOLUTION_TIME' could help?  Also, it might be worth trying a
>> run with the -d flag, in case it shows up why make thinks
>> include/autoconf.mk is never up-to-date; it might be informative to know WRT
>> what precisely make thinks it is outdated.
> 
> I think running with "-d" is a good idea, even though it will produce
> a disk full of output. But in theory the output should  be  identical
> for all setups.

Turning on '-d' was somewhat instructive in that in contrast to the previous
tests without '-d' all builds I have of make v3.81 on all file system types
fail (ext3fs, tmpfs, and nfs) whereas one version previously worked on all
file systems and all versions worked on ext3fs:

Without '-d':
-------------

    ------------------------------------------------------------------------
    Shell   Make                                     NFS     tmpfs    ext3
    ========================================================================
    bash    /usr/local/bin/make-3.81 (3.81)        SUCCESS  SUCCESS  SUCCESS
    bash    /usr/local/bin/gmake (3.81)            FAILURE  FAILURE  SUCCESS
    bash    ${HOME}/tmp/bin/make (3.81 w/ librt)   FAILURE  FAILURE  SUCCESS
    bash    ${HOME}/tmp/bin/make (3.81 w/o librt)  FAILURE  FAILURE  SUCCESS
    ========================================================================

With '-d':
----------

    ------------------------------------------------------------------------
    Shell   Make                                     NFS     tmpfs    ext3
    ========================================================================
    bash    /usr/local/bin/make-3.81 (3.81)        FAILURE  FAILURE  FAILURE
    bash    /usr/local/bin/gmake (3.81)            FAILURE  FAILURE  FAILURE
    bash    ${HOME}/tmp/bin/make (3.81 w/ librt)   FAILURE  FAILURE  FAILURE
    bash    ${HOME}/tmp/bin/make (3.81 w/o librt)  FAILURE  FAILURE  FAILURE
    ========================================================================

While the log files from all 12 runs (4 versions x 3 file systems) are
identical (with the obvious exceptions of paths, PIDs, etc.), what sticks
out in each is that make never thinks
`${ROOT}/u-boot/build/include/version_autogenerated.h' (aka VERSION_FILE)
exists even though it gets remade successfully each time it is requested.
This is, of course, a completely expected result since $(VERSION_FILE) is
tagged '.PHONY' in the main Makefile.

Removing $(VERSION_FILE) from the .PHONY list results in successes across
the entire 12 cell test matrix.

Any insights on why this very real file is tagged as .PHONY and why it
should not be eliminated from the .PHONY list?

Based on the test matrix above, is there any agreement that this is a
potential make bug in how .PHONY prerequisites are handled? Given this
apparent root cause, I would have expected failures consistently in the
ext3fs case as well as in the not-linked-against-librt-and-libpthread
version case (top row of the test matrix).

Regards,

Grant Erickson






More information about the U-Boot mailing list