Makefile.base: cleanup non selected source object files [backport 2021.10]#16953
Merged
benpicco merged 2 commits intoRIOT-OS:2021.10-branchfrom Oct 19, 2021
Conversation
Contributor
|
This needs a rebase |
19d798c to
51612fe
Compare
Contributor
Author
|
Rebased |
benpicco
approved these changes
Oct 11, 2021
Contributor
|
Oh sorry, the branch has become out of date again. |
Contributor
Author
|
Let's wait until #16977 is sorted. |
51612fe to
0bd1c9e
Compare
Contributor
Author
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.
Backport of #16945 and #16981
Contribution description
As explained in #16942, since #14754 we select all object files when linking, which is a problem when the selection of module sources change between two builds. This adds a cleanup for non selected source object files on modules.
Testing procedure
A minimal example that shows the current issue:
Compile once with
USEMODULE += external_module_implementation_aand once withUSEMODULE += external_module_implementation_b,message_implementationwill have two implementations at link time on master. With this PR this should be fixed.Issues/PRs references
#16942
Issue introduced by #14754
Contribution description
Since #16945 we cleanup unneeded object files. The list of "needed object files" is defined based on present source files, but bindist is a special case, as bindist objects should always be preserved. As described in #16977, the bindist example fails to link due to the cleanup. This PR avoids cleaning bindist modules object files when building.
Testing procedure
examples/bindistshould work (note that the binary check does not pass fornativeat least since the linking was fixed in build system: link object files #14754)Issues/PRs references
Fixes #16977
Issue introduced in #16945