diff --git a/crates/runtime/src/libcalls.rs b/crates/runtime/src/libcalls.rs index 626cae4082..2ce3bfc7d3 100644 --- a/crates/runtime/src/libcalls.rs +++ b/crates/runtime/src/libcalls.rs @@ -122,6 +122,17 @@ pub mod trampolines { Err(panic) => crate::traphandlers::resume_panic(panic), } } + + // This works around a `rustc` bug where compiling with LTO + // will sometimes strip out some of these symbols resulting + // in a linking failure. + #[allow(non_upper_case_globals)] + #[used] + static []: unsafe extern "C" fn( + *mut VMContext, + $( $pname : libcall!(@ty $param), )* + ) $( -> libcall!(@ty $result))? = []; + )* }};