blob: 4215626e52d6fc88c34dabef1f37b99dd21fbf63 [file] [log] [blame]
#![doc(hidden)]
// The stack unwinding ABI in ARM is specified as part of EABI. Although
// libunwind has not been ported to Tock OS (and likely will not be), LLVM still
// assumes some of the symbols are present. This causes linking errors
// (undefined symbol __aeabi_unwind_cpp_pr...). In environments without
// libunwind, it appears to be common practice to declare the symbols as empty
// functions; for example, the Linux Kernel does so in arch/arm/kernel/unwind.c.
// We do so here as well. The addition of these symbols to libtock-rs was
// discussed at https://groups.google.com/forum/#!topic/tock-dev/eov8fJmskLk.
#[cfg(target_arch = "arm")]
#[no_mangle]
pub extern "C" fn __aeabi_unwind_cpp_pr0() {}
#[cfg(target_arch = "arm")]
#[no_mangle]
pub extern "C" fn __aeabi_unwind_cpp_pr1() {}
#[cfg(target_arch = "arm")]
#[no_mangle]
pub extern "C" fn __aeabi_unwind_cpp_pr2() {}