[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