summary refs log tree commit diff
path: root/lib/systems
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-10 17:31:07 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-10 18:02:00 -0400
commit1fe81a4bcd25dba9319bc1bb49b078872f28ffa6 (patch)
tree7b3e9f467f4f7912645760fcbc73efc5bed47409 /lib/systems
parentc9f6a82b619675a4ee1eb4fe9eac57efb69232fe (diff)
downloadnixlib-1fe81a4bcd25dba9319bc1bb49b078872f28ffa6.tar
nixlib-1fe81a4bcd25dba9319bc1bb49b078872f28ffa6.tar.gz
nixlib-1fe81a4bcd25dba9319bc1bb49b078872f28ffa6.tar.bz2
nixlib-1fe81a4bcd25dba9319bc1bb49b078872f28ffa6.tar.lz
nixlib-1fe81a4bcd25dba9319bc1bb49b078872f28ffa6.tar.xz
nixlib-1fe81a4bcd25dba9319bc1bb49b078872f28ffa6.tar.zst
nixlib-1fe81a4bcd25dba9319bc1bb49b078872f28ffa6.zip
lib: Clean up float/fpu options
ARM ABIs now have a float field. This is used as a fallback to lessen
our use of `platform.gcc.float`. I didn't know what the MIPs convention
is so I kept using `platform.gcc.float` in that case.
Diffstat (limited to 'lib/systems')
-rw-r--r--lib/systems/examples.nix9
-rw-r--r--lib/systems/parse.nix32
-rw-r--r--lib/systems/platforms.nix6
3 files changed, 20 insertions, 27 deletions
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 80e320406bf4..32c24bab7c98 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -11,21 +11,16 @@ rec {
 
   sheevaplug = rec {
     config = "armv5tel-unknown-linux-gnueabi";
-    float = "soft";
     platform = platforms.sheevaplug;
   };
 
   raspberryPi = rec {
     config = "armv6l-unknown-linux-gnueabihf";
-    float = "hard";
-    fpu = "vfp";
     platform = platforms.raspberrypi;
   };
 
   armv7l-hf-multiplatform = rec {
     config = "armv7a-unknown-linux-gnueabihf";
-    float = "hard";
-    fpu = "vfpv3-d16";
     platform = platforms.armv7l-hf-multiplatform;
   };
 
@@ -47,26 +42,24 @@ rec {
 
   pogoplug4 = rec {
     config = "armv5tel-unknown-linux-gnueabi";
-    float = "soft";
     platform = platforms.pogoplug4;
   };
 
   ben-nanonote = rec {
     config = "mipsel-unknown-linux-uclibc";
-    float = "soft";
     platform = {
       name = "ben_nanonote";
       kernelMajor = "2.6";
       kernelArch = "mips";
       gcc = {
         arch = "mips32";
+        float = "soft";
       };
     };
   };
 
   fuloongminipc = rec {
     config = "mipsel-unknown-linux-gnu";
-    float = "hard";
     platform = platforms.fuloong2f_n32;
   };
 
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 7ba06f129db8..3667766aa9f7 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -182,20 +182,24 @@ rec {
   types.abi = enum (attrValues abis);
 
   abis = setTypes types.openAbi {
-    android = {};
-    cygnus = {};
-    gnu = {};
-    msvc = {};
-    eabi = {};
-    androideabi = {};
-    gnueabi = {};
-    gnueabihf = {};
-    musleabi = {};
-    musleabihf = {};
-    musl = {};
-    uclibceabihf = {};
-    uclibceabi = {};
-    uclibc = {};
+    cygnus       = {};
+    msvc         = {};
+    eabi         = {};
+
+    androideabi  = {};
+    android      = {};
+
+    gnueabi      = { float = "soft"; };
+    gnueabihf    = { float = "hard"; };
+    gnu          = {};
+
+    musleabi     = { float = "soft"; };
+    musleabihf   = { float = "hard"; };
+    musl         = {};
+
+    uclibceabihf = { float = "soft"; };
+    uclibceabi   = { float = "hard"; };
+    uclibc       = {};
 
     unknown = {};
   };
diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix
index f39e890fbf1c..d6587ac49a89 100644
--- a/lib/systems/platforms.nix
+++ b/lib/systems/platforms.nix
@@ -25,7 +25,6 @@ rec {
 
     gcc = {
       arch = "armv5te";
-      float = "soft";
     };
 
     kernelMajor = "2.6";
@@ -158,7 +157,6 @@ rec {
     kernelDTB = true; # Beyond 3.10
     gcc = {
       arch = "armv5te";
-      float = "soft";
     };
   };
 
@@ -336,7 +334,6 @@ rec {
     gcc = {
       cpu = "cortex-a9";
       fpu = "vfpv3";
-      float = "hard";
     };
   };
 
@@ -363,7 +360,6 @@ rec {
     gcc = {
       cpu = "cortex-a9";
       fpu = "neon";
-      float = "hard";
     };
   };
 
@@ -449,6 +445,7 @@ rec {
     kernelTarget = "vmlinux";
     gcc = {
       arch = "loongson2f";
+      float = "hard";
       abi = "n32";
     };
   };
@@ -498,7 +495,6 @@ rec {
       # and the above page suggests NEON is only an improvement with hand-written assembly.
       arch = "armv7-a";
       fpu = "vfpv3-d16";
-      float = "hard";
 
       # For Raspberry Pi the 2 the best would be:
       #   cpu = "cortex-a7";