Kaynağa Gözat

Merge pull request #263 from jethrogb/jb/sgx-target

Add SGX target
Alex Crichton 6 yıl önce
ebeveyn
işleme
4890819c37
3 değiştirilmiş dosya ile 18 ekleme ve 4 silme
  1. 2 2
      build.rs
  2. 2 1
      src/lib.rs
  3. 14 1
      src/math.rs

+ 2 - 2
build.rs

@@ -17,9 +17,9 @@ fn main() {
         return;
     }
 
-    // Forcibly enable memory intrinsics on wasm32 as we don't have a libc to
+    // Forcibly enable memory intrinsics on wasm32 & SGX as we don't have a libc to
     // provide them.
-    if target.contains("wasm32") {
+    if target.contains("wasm32") || target.contains("sgx") {
         println!("cargo:rustc-cfg=feature=\"mem\"");
     }
 

+ 2 - 1
src/lib.rs

@@ -48,7 +48,8 @@ pub mod int;
 pub mod float;
 
 #[cfg(any(all(target_arch = "wasm32", target_os = "unknown"),
-          all(target_arch = "arm", target_os = "none")))]
+          all(target_arch = "arm", target_os = "none"),
+          target_env = "sgx"))]
 pub mod math;
 pub mod mem;
 

+ 14 - 1
src/math.rs

@@ -15,7 +15,7 @@ macro_rules! no_mangle {
 }
 
 // only for the wasm32-unknown-unknown target
-#[cfg(all(target_arch = "wasm32", target_os = "unknown"))]
+#[cfg(any(all(target_arch = "wasm32", target_os = "unknown"), target_env = "sgx"))]
 no_mangle! {
     fn acos(x: f64) -> f64;
     fn asin(x: f64) -> f64;
@@ -51,6 +51,19 @@ no_mangle! {
     fn fmodf(x: f32, y: f32) -> f32;
     fn fma(x: f64, y: f64, z: f64) -> f64;
     fn fmaf(x: f32, y: f32, z: f32) -> f32;
+    fn acosf(n: f32) -> f32;
+    fn asinf(n: f32) -> f32;
+    fn atan2f(a: f32, b: f32) -> f32;
+    fn atanf(n: f32) -> f32;
+    fn cbrtf(n: f32) -> f32;
+    fn coshf(n: f32) -> f32;
+    fn expm1f(n: f32) -> f32;
+    fn fdimf(a: f32, b: f32) -> f32;
+    fn hypotf(x: f32, y: f32) -> f32;
+    fn log1pf(n: f32) -> f32;
+    fn sinhf(n: f32) -> f32;
+    fn tanf(n: f32) -> f32;
+    fn tanhf(n: f32) -> f32;
 }
 
 // only for the thumb*-none-eabi* targets