aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-09-29Ensure __pre_init remains in binaryIan McIntyre
GNU's LTO has a tendency to remove __pre_init, which is written in inline assembly. It doesn't realize that the reset handler references this symbol, because the reset handler is also written in inline assembly. Not sure why LLVM's linker doesn't also optimize it away, but this commit ensures that __pre_init remains in the output file.
2023-09-29Use an absolute address for __dcdIan McIntyre
LLVM's lld and GNU's ld have different ways of handling assignments in output sections. Unless we specify ABSOLUTE, ld treats the number '0' as a relative address from the section start, 0x6000_0000. On the other hand, lld treats '0' as if it were written with ABSOLUTE, and it ignores the ABSOLUTE function. So depending on your linker, __dcd would change values. This commit forces an absolute number for __dcd, ensuring a consistent value no matter the linker.
2023-09-08Add optional DCD section in linker scriptsummivox
Users can define their device configuration data (DCD), and place the data in the .dcd section. If the .dcd section has content, the entry in the IVT points at the user's DCD. This plays well with imxrt-dcd.
2023-03-25Generate one linker script; add unit testsIan McIntyre
We can still maintain individual linker script components, then write them into one, larger linker script. We're effectively implementing the same behavior as INCLUDE while disallowing overrides of the linker search path to find the INCLUDEd files. Once we have one linker script, we can refactor for easier unit testing. This commit adds simple unit tests for the default builder, and some of the expected errors.
2022-12-01Update to cmrt 0.7.2, and use new featuresIan McIntyre
No need for us to set VTOR and the stack pointer anymore.
2022-12-01Explicitly match family variants in host implIan McIntyre
Might help the next person who wants to add a new family. There's a way to defeat this lint when the enum is (Partial)Eq: use if / else to emulate a fallthrough. I can't find _another_ lint that would prevent that pattern, so I'll try to be vigilent here.
2022-12-01First commitIan McIntyre