From mboxrd@z Thu Jan 1 00:00:00 1970 From: Grant Erickson Date: Tue, 01 Apr 2008 15:43:17 -0700 Subject: [U-Boot-Users] Build Iterates Indefinitely on "Generating include/autoconf.mk" In-Reply-To: <20080327220807.26F95242FC@gemini.denx.de> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 3/27/08 3:08 PM, Wolfgang Denk wrote: > In message <000001c89049$3d85a440$2708a8c0@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