-
Notifications
You must be signed in to change notification settings - Fork 153
Description
Motivations
Rust has support for cross-language LTO called Linker-plugin-based LTO and it can further decrease binary size with minimal configuration. Not only ESP-IDF could benefit from it but also every other Rust crate that pulls in C code.
Solution
Unfortunately it needs clang as the C compiler and linker. I saw that ldproxy only supports gcc and simply replacing it with clang or linker-flavor=ld.lld gives a lot of unrecognized command line options. I only tried the Xtensa architecture so far.
Has anyone experimented with this? Is it possible to change the linker to clang and pass -flto=full to the compiler? Can I read somewhere about why ldproxy had to be created?
Alternatives
Add clang support for ldproxy
Additional context
In my testing this can make a 15% reduction in binary size
If this is too difficult to implement or does not belong here, feel free to close this issue
Metadata
Metadata
Assignees
Labels
Type
Projects
Status