New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
make keeps redoing some of the earlier done work. #22134
Comments
Rebuild of .stamp_$(final_build_id) is the expensive one. |
This is an example of the how a missing fetched stamp file causes make to skip checksum verification.
This happens because check_or_remove_sources has the following shell code
Effectively, this shell code tests presence of the fetched stamp file. If the stamp file is missing no checksum verification is performed and the sources are considered good. |
@hebasto, @theuni any thoughts on this? I think it'd be worthwhile to remove such a long, unnecessary step: #22134 (comment) |
Only a few developers in this repo really could concern about efficiency of consequential runs of
And I appreciate such behavior, because when using consequential runs of |
Keeping the behavior intact is an option, given that this apparently does not bother users. |
There doesn't seem to be much interest in implementing this feature. Please feel free to submit a pull request if this is something that you still want. |
This issue is about depends subsystem only.
Once everything is built, subsequent runs of make result in
make redoing some of the earlier done work.
There are 2 files which are being rebuilt.
config.site and .stamp_$(final_build_id).
config.site is rebuilt because
When a file depends on a phony prerequisite, the file is rebuilt every time. In
this case, config.site is rebuilt every time.
.stamp_$(final_build_id) is rebuild because
.PHONY: $(1)
See funcs.mk:239.
does not create any file.
See funcs.mk:240.
When a file depends on a phony prerequisite, the file is rebuilt every time. In
this case, .stamp_$(final_build_id) is rebuilt every time.
What can be done about this?
There are a few options.
Regarding config.site.
the purpose of computing the hash of the earlier downloaded tarball and
comparing against the hash stored earlier in the stamp file?
If some malicious person could substitute the local copy of the tarball, then
that same person could store the new hash in the stamp file.
i see, that check-sources and check-packages were introduced in commit
235b3a7. The comment says this is for travis.
Given that travis is no longer used, we should figure out if this commit can
be reverted.
introduce sentinel files.
E.g.
In addition, both of these rules will need to have prerequisites.
In addition, the same trouble with .stamp_$(final_build_id) has to be fixed,
because config.site depends on .stamp_$(final_build_id).
As for .stamp_$(final_build_id), either the rule can be modified to create a
sentinel file and each package can be marked to be not phony or the keep the
makefile as is.
The text was updated successfully, but these errors were encountered: