-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
I-compiletimeIssue: Problems and improvements with respect to compile times.Issue: Problems and improvements with respect to compile times.I-slowIssue: Problems and improvements with respect to performance of generated code.Issue: Problems and improvements with respect to performance of generated code.
Description
There's no equivalent to -Z no-landing-pads
for static/dynamic libraries. Since it's not possible to mark foreign functions as not throwing like it is with __attribute__((nothrow))
, Rust will always output lots of unwinding tables with a Rust-specific unwinding personality/calls. This would be a lot less bad if Rust actually read the C library headers with libclang and dealt with the attributes like nothrow
.
Metadata
Metadata
Assignees
Labels
I-compiletimeIssue: Problems and improvements with respect to compile times.Issue: Problems and improvements with respect to compile times.I-slowIssue: Problems and improvements with respect to performance of generated code.Issue: Problems and improvements with respect to performance of generated code.
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
Disable all unwinding on -Z no-landing-pads LTO
brson commentedon Jan 30, 2014
Can
-Z no-landing-pads
work for static and dynamic libraries?This is similar to #11871 where we have a language feature that has a runtime dependency, but it can't be turned off, and you wouldn't want to accidentally combine crates with the wrong options. Perhaps we can add something to the metadata to record which runtime features were in use, and start adding these options.
thestinger commentedon Jan 30, 2014
I think adding a flag to the metadata is the best idea. It would be really nice to omit the landing pads and invoke calls in the first place too.
thestinger commentedon Nov 1, 2014
Closing in favour of #18511.