Explorar o código

Merge pull request #341 from vfreex/add-mips-compiler-rt-fallback

add mips/mips64 compiler-rt fallbacks so that libgcc is not required
Amanieu d'Antras %!s(int64=4) %!d(string=hai) anos
pai
achega
caa19a764e
Modificáronse 2 ficheiros con 21 adicións e 2 borrados
  1. 2 2
      .github/workflows/main.yml
  2. 19 0
      build.rs

+ 2 - 2
.github/workflows/main.yml

@@ -88,8 +88,8 @@ jobs:
     - run: rustup component add llvm-tools-preview
     - name: Download compiler-rt reference sources
       run: |
-        curl -L -o code.tar.gz https://github.com/rust-lang/llvm-project/archive/rustc/8.0-2019-03-18.tar.gz
-        tar xzf code.tar.gz --strip-components 1 llvm-project-rustc-8.0-2019-03-18/compiler-rt
+        curl -L -o code.tar.gz https://github.com/rust-lang/llvm-project/archive/rustc/10.0-2020-02-05.tar.gz
+        tar xzf code.tar.gz --strip-components 1 llvm-project-rustc-10.0-2020-02-05/compiler-rt
         echo "##[set-env name=RUST_COMPILER_RT_ROOT]./compiler-rt"
       shell: bash
 

+ 19 - 0
build.rs

@@ -421,6 +421,25 @@ mod c {
             }
         }
 
+        if target_arch == "mips" {
+            sources.extend(&[("__bswapsi2", "bswapsi2.c")]);
+        }
+
+        if target_arch == "mips64" {
+            sources.extend(&[
+                ("__extenddftf2", "extenddftf2.c"),
+                ("__netf2", "comparetf2.c"),
+                ("__addtf3", "addtf3.c"),
+                ("__multf3", "multf3.c"),
+                ("__subtf3", "subtf3.c"),
+                ("__fixtfsi", "fixtfsi.c"),
+                ("__floatsitf", "floatsitf.c"),
+                ("__fixunstfsi", "fixunstfsi.c"),
+                ("__floatunsitf", "floatunsitf.c"),
+                ("__fe_getround", "fp_mode.c"),
+            ]);
+        }
+
         // Remove the assembly implementations that won't compile for the target
         if llvm_target[0] == "thumbv6m" || llvm_target[0] == "thumbv8m.base" {
             let mut to_remove = Vec::new();