ld: Check for alignment between FLASH_START and linker page size#495
Merged
ld: Check for alignment between FLASH_START and linker page size#495
Conversation
Member
|
I'm linking #477 here, as this seems to be a generalization of that issue. I have made too many wrong assumptions about linkers and ELF files to confidently say that this is the correct fix™, but it seems like a strict improvement. I'm wondering whether we can decrease the page-size even further and thus gain more flexible alignment (maybe down to the word size even)? That might just work, as we use |
A mismatch here causes undesirable ELFs.
79e25cf to
21fd49e
Compare
Contributor
Author
|
This is coupled with #503. |
Contributor
Author
|
I think we can merge this now. |
jrvanwhy
approved these changes
Aug 24, 2023
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.
This PR is on top of the make updates because that lets me test it. We only care about the latest commit: 79e25cf
The llvm linker seems to make sure the first segment is aligned to a flash page, and assumes the page size is 0x10000. This causes elfs with a segment before what we set as the start of flash:
These elfs are undesirable. This patch allows the linker to check if this case is going to happen.
The fix is adding
to build.rs.