diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-03-28 00:02:23 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2021-03-28 01:49:15 +0300 |
| commit | 6615ee89be2290c96aa7d4ab24dc94e23a8c7080 (patch) | |
| tree | 2f417b415457bf9466af8ac25b1dce1defd2df49 /compiler/rustc_codegen_ssa/src/back/linker.rs | |
| parent | afaf33dcafe9c7068b63eb997df221aa08db7c29 (diff) | |
| download | rust-6615ee89be2290c96aa7d4ab24dc94e23a8c7080.tar.gz rust-6615ee89be2290c96aa7d4ab24dc94e23a8c7080.zip | |
linker: Use `--as-needed` by default when linker supports it
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/back/linker.rs')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/linker.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs index bb35e7ec894..592675d916a 100644 --- a/compiler/rustc_codegen_ssa/src/back/linker.rs +++ b/compiler/rustc_codegen_ssa/src/back/linker.rs @@ -130,6 +130,7 @@ pub trait Linker { fn group_end(&mut self); fn linker_plugin_lto(&mut self); fn add_eh_frame_header(&mut self) {} + fn add_as_needed(&mut self) {} fn finalize(&mut self); } @@ -641,6 +642,12 @@ impl<'a> Linker for GccLinker<'a> { fn add_eh_frame_header(&mut self) { self.linker_arg("--eh-frame-hdr"); } + + fn add_as_needed(&mut self) { + if self.sess.target.linker_is_gnu { + self.linker_arg("--as-needed"); + } + } } pub struct MsvcLinker<'a> { |
