about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYury Delendik <ydelendik@mozilla.com>2018-07-30 19:55:08 -0500
committerYury Delendik <ydelendik@mozilla.com>2018-07-30 19:58:26 -0500
commite9509d78bd1c790b49000bc469e8ad812ea88457 (patch)
treebb80e5189a75af292d4ca7dd103d8348e1afa661
parent54628c8ea844956f3f4f416b82067c634eb09f7b (diff)
downloadrust-e9509d78bd1c790b49000bc469e8ad812ea88457.tar.gz
rust-e9509d78bd1c790b49000bc469e8ad812ea88457.zip
Disable debug sections when optimization flags is set for LLD.
-rw-r--r--src/librustc_codegen_llvm/back/linker.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/librustc_codegen_llvm/back/linker.rs b/src/librustc_codegen_llvm/back/linker.rs
index 5f2f3733ec7..7253b5346b9 100644
--- a/src/librustc_codegen_llvm/back/linker.rs
+++ b/src/librustc_codegen_llvm/back/linker.rs
@@ -1006,6 +1006,18 @@ impl<'a> Linker for WasmLd<'a> {
             OptLevel::Size => "-O2",
             OptLevel::SizeMin => "-O2"
         });
+        match self.sess.opts.optimize {
+            OptLevel::No => (),
+            OptLevel::Less |
+            OptLevel::Default |
+            OptLevel::Aggressive |
+            OptLevel::Size |
+            OptLevel::SizeMin => {
+                // LLD generates incorrect debugging information when
+                // optimization is applied: strip debug sections.
+                self.cmd.arg("--strip-debug");
+            }
+        }
     }
 
     fn pgo_gen(&mut self) {