From 3d005629b82153c5bc20f7e82e1ad861dc0b7dc5 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Tue, 24 Jul 2018 13:26:50 -0500 Subject: [PATCH] expose fmod{,f} symbols on thumb these symbols are required for the built-in operation `f32 % f32` --- src/lib.rs | 4 +--- src/math.rs | 11 +++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3e665a8..5c87e90 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -47,10 +47,8 @@ mod macros; pub mod int; pub mod float; -pub mod mem; -// only for the wasm32-unknown-unknown target -#[cfg(all(target_arch = "wasm32", target_os = "unknown"))] pub mod math; +pub mod mem; #[cfg(target_arch = "arm")] pub mod arm; diff --git a/src/math.rs b/src/math.rs index f1eaaa5..6eddc3d 100644 --- a/src/math.rs +++ b/src/math.rs @@ -14,6 +14,8 @@ macro_rules! no_mangle { } } +// only for the wasm32-unknown-unknown target +#[cfg(all(target_arch = "wasm32", target_os = "unknown"))] no_mangle! { fn acos(x: f64) -> f64; fn asin(x: f64) -> f64; @@ -50,3 +52,12 @@ no_mangle! { fn fma(x: f64, y: f64, z: f64) -> f64; fn fmaf(x: f32, y: f32, z: f32) -> f32; } + +// only for the thumb*-none-eabi* targets +#[cfg(all(target_arch = "arm", target_os = "none"))] +no_mangle! { + // `f64 % f64` + fn fmod(x: f64, y: f64) -> f64; + // `f32 % f32` + fn fmodf(x: f32, y: f32) -> f32; +}