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
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(),