-
Notifications
You must be signed in to change notification settings - Fork 83
refactor the linker script #84
Conversation
to make it more compatible with LLD. This commit contains no functional changes. fixes #70 Overview of changes: - Alignment checks are enabled now that rust-lld (LLD 7.0) supports the modulo operator. - Removed some private symbols (e.g. __foo) in favor of ADDR and SIZEOF. - Turned .got into a NOLOAD section now that rust-lld supports it. - Replaced `ABSOLUTE(.)` with `.` as an old LLD overlap bug seems to be gone and ABSOLUTE seems to cause problems, like #70, on bigger programs. - Made the linker assertion messages more uniform. - Extended test suite to check that linking works with both rust-lld and GNU LD.
err, I meant @therealprof |
bors r+ |
👎 Rejected by too few approved reviews |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
bors retry |
84: refactor the linker script r=therealprof a=japaric to make it more compatible with LLD. This commit contains no functional changes. fixes #70 Overview of changes: - Alignment checks are enabled now that rust-lld (LLD 7.0) supports the modulo operator. - Removed some private symbols (e.g. __foo) in favor of ADDR and SIZEOF. - Turned .got into a NOLOAD section now that rust-lld supports it. - Replaced `ABSOLUTE(.)` with `.` as an old LLD overlap bug seems to be gone and ABSOLUTE seems to cause problems, like #70, on bigger programs. - Made the linker assertion messages more uniform. - Extended test suite to check that linking works with both rust-lld and GNU LD. r? therealprof (chosen at random) Co-authored-by: Jorge Aparicio <[email protected]>
Travis is failing (https://travis-ci.org/rust-embedded/cortex-m-rt/jobs/413297498#L544). I can't repro the error locally; I wonder if the problem is that the Travis builds are using an old gcc. |
Build failed |
gcc 4.8.2? That's ancient. Is there any way to use something a bit more 2018? |
The Adapted example, but untested:
|
This one seems to work but it also made some CI builds 4 times slower 😂. |
Haha, sorry about that! |
I bet even without caching it would be quicker to download the tarball of pre-built arm-gcc-embedded executables each time, since using edit: Travis even suggests not caching this sort of thing in their docs. |
I'll switch to the tarball then. |
Hey, it worked on the first try :-). re-r? @therealprof |
bors r+ |
👎 Rejected by too few approved reviews |
bors retry |
84: refactor the linker script r=therealprof a=japaric to make it more compatible with LLD. This commit contains no functional changes. fixes #70 Overview of changes: - Alignment checks are enabled now that rust-lld (LLD 7.0) supports the modulo operator. - Removed some private symbols (e.g. __foo) in favor of ADDR and SIZEOF. - Turned .got into a NOLOAD section now that rust-lld supports it. - Replaced `ABSOLUTE(.)` with `.` as an old LLD overlap bug seems to be gone and ABSOLUTE seems to cause problems, like #70, on bigger programs. - Made the linker assertion messages more uniform. - Extended test suite to check that linking works with both rust-lld and GNU LD. r? therealprof (chosen at random) Co-authored-by: Jorge Aparicio <[email protected]>
Build succeeded |
to make it more compatible with LLD. This commit contains no functional changes.
fixes #70
Overview of changes:
Alignment checks are enabled now that rust-lld (LLD 7.0) supports the modulo
operator.
Removed some private symbols (e.g. __foo) in favor of ADDR and SIZEOF.
Turned .got into a NOLOAD section now that rust-lld supports it.
Replaced
ABSOLUTE(.)
with.
as an old LLD overlap bug seems to be gone andABSOLUTE seems to cause problems, like Invalid .vector_table.exceptions section #70, on bigger programs.
Made the linker assertion messages more uniform.
Extended test suite to check that linking works with both rust-lld and GNU
LD.
r? therealprof (chosen at random)