Support for disabling the PLT on ELF targets
Disable the PLT where possible to improve performance for indirect calls into shared libraries. This optimization is enabled by default where possible. - Add the `NonLazyBind` attribute to `rustllvm`: This attribute informs LLVM to skip PLT calls in codegen. - Disable PLT unconditionally: Apply the `NonLazyBind` attribute on every function. - Only enable no-plt when full relro is enabled: Ensures we only enable it when we have linker support. - Add `-Z plt` as a compiler option
This commit is contained in:
parent
2243fabd8f
commit
6009da0794
12 changed files with 89 additions and 7 deletions
|
@ -178,6 +178,8 @@ static Attribute::AttrKind fromRust(LLVMRustAttribute Kind) {
|
|||
return Attribute::SanitizeAddress;
|
||||
case SanitizeMemory:
|
||||
return Attribute::SanitizeMemory;
|
||||
case NonLazyBind:
|
||||
return Attribute::NonLazyBind;
|
||||
}
|
||||
report_fatal_error("bad AttributeKind");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue