disable LTO for libunwind #297
No reviewers
Labels
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: M-Labs/artiq-zynq#297
Loading…
Reference in New Issue
No description provided.
Delete Branch "srenblad/artiq-zynq:fix_linking_issue"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Disable LTO in libunwind/build.rs
LTO causes unresolved symbol errors when building firmware. Appears to be caused by Clang/LLVM v14 upgrade.
LTO flag is not set for other libraries (libc, libksupport etc).
Fixes #245.
Testing:
nix build .#build_soc-demo-firmware
.Performance:
Based on the #161 PR I recreated the micro benchmark (1000 nested try-excepts) and compared with an old firmware build both using the
demo.json
variant.Mean time (s), n=10:
Old firmware (
35ea0ed2ca
): 0.005817This commit: 0.006256
Note the ~7.5% slowdown in performance for this benchmark. Is this acceptable @sb10q?
I have attached the benchmark code I used for reference.
LTO was added in #161 with the justification:
Solution is keep LLVM to the same version used by rustc.
Pull request closed