FIX(make): fix incremental builds by only releasing updated headers#2949
Merged
Alexsandruss merged 10 commits intouxlfoundation:mainfrom Oct 29, 2024
Merged
Conversation
222206f to
2c4652d
Compare
Contributor
Author
|
/intelci: run |
Contributor
Author
|
Thanks @Alexsandruss. It was still a draft, but the latest changes seem to fix the issue and don't add any new spaces. |
This reverts commit 366101e.
Co-authored-by: Alexander Andreev <[email protected]>
1786229 to
ba9f73d
Compare
Alexsandruss
approved these changes
Oct 29, 2024
13 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces a check using the
cmpcommand in the macros responsible for publishing header files from theincludedirectory to the__release_*directories. With this enhancement, headers are only released if their contents have changed.This improvement addresses an issue with make's caching mechanism, which relies on file timestamps. Previously, central header files like
library_version_info.hwere released every time make was invoked, regardless of whether their contents had changed. This caused the timestamps to always be newer than those of the source files, triggering unnecessary target updates and negating the benefits of incremental builds.With the proposed changes, only files that have actually changed (along with their dependencies) will be rebuilt, thereby preserving the efficiency of incremental builds.
Fixes #2944
and probably also #632
Checklist to comply with before moving PR from draft:
PR completeness and readability
Testing
does not apply - build chain only
Performance
does not apply - build chain only