]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_target/spec/wasm32_unknown_emscripten.rs
Auto merge of #68414 - michaelwoerister:share-drop-glue, r=alexcrichton
[rust.git] / src / librustc_target / spec / wasm32_unknown_emscripten.rs
index 6a2c8c495372f2d3483283aa7c6dd9065f975e41..1916639170e88d2d07ddc6d62b6f3df7f99a62b3 100644 (file)
@@ -1,21 +1,20 @@
 use super::wasm32_base;
-use super::{LinkArgs, LinkerFlavor, Target, TargetOptions, PanicStrategy};
+use super::{LinkArgs, LinkerFlavor, PanicStrategy, Target, TargetOptions};
 
 pub fn target() -> Result<Target, String> {
     let mut post_link_args = LinkArgs::new();
-    post_link_args.insert(LinkerFlavor::Em,
-                          vec!["-s".to_string(),
-                               "ERROR_ON_UNDEFINED_SYMBOLS=1".to_string(),
-                               "-s".to_string(),
-                               "ASSERTIONS=1".to_string(),
-                               "-s".to_string(),
-                               "DISABLE_EXCEPTION_CATCHING=1".to_string(),
-                               "-s".to_string(),
-                               "ABORTING_MALLOC=0".to_string(),
-                               // FIXME(tlively): Enable this linker option once libc type errors
-                               // are resolved. See https://github.com/rust-lang/libc/pull/1478.
-                               // "-Wl,--fatal-warnings".to_string(),
-                               ]);
+    post_link_args.insert(
+        LinkerFlavor::Em,
+        vec![
+            "-s".to_string(),
+            "ERROR_ON_UNDEFINED_SYMBOLS=1".to_string(),
+            "-s".to_string(),
+            "ASSERTIONS=1".to_string(),
+            "-s".to_string(),
+            "ABORTING_MALLOC=0".to_string(),
+            "-Wl,--fatal-warnings".to_string(),
+        ],
+    );
 
     let opts = TargetOptions {
         // emcc emits two files - a .js file to instantiate the wasm and supply platform
@@ -24,13 +23,10 @@ pub fn target() -> Result<Target, String> {
         linker: None,
         linker_is_gnu: true,
         is_like_emscripten: true,
-        // FIXME(tlively): Emscripten supports unwinding, but we would have to pass
-        // -enable-emscripten-cxx-exceptions to LLVM at codegen time and merge
-        // https://reviews.llvm.org/rG5c3cdef84b82464756bb571c13c31cf7773860c3to use it.
-        panic_strategy: PanicStrategy::Abort,
+        panic_strategy: PanicStrategy::Unwind,
         post_link_args,
         target_family: Some("unix".to_string()),
-        .. wasm32_base::options()
+        ..wasm32_base::options()
     };
     Ok(Target {
         llvm_target: "wasm32-unknown-emscripten".to_string(),