]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/basic/architecture.c
Merge pull request #5131 from keszybz/environment-generators
[thirdparty/systemd.git] / src / basic / architecture.c
index 8e2c2b02d2dc9a90cc1135ad3e7c5fe55aef14dd..5a3dc08a4a7bb637f5079e481fa689e696f88ac9 100644 (file)
@@ -63,7 +63,7 @@ int uname_architecture(void) {
 #elif defined(__s390__) || defined(__s390x__)
                 { "s390x",      ARCHITECTURE_S390X    },
                 { "s390",       ARCHITECTURE_S390     },
-#elif defined(__sparc__) || defined(__sparc64__)
+#elif defined(__sparc__)
                 { "sparc64",    ARCHITECTURE_SPARC64  },
                 { "sparc",      ARCHITECTURE_SPARC    },
 #elif defined(__mips__) || defined(__mips64__)
@@ -123,6 +123,15 @@ int uname_architecture(void) {
                 { "crisv32",    ARCHITECTURE_CRIS     },
 #elif defined(__nios2__)
                 { "nios2",      ARCHITECTURE_NIOS2    },
+#elif defined(__riscv__) || defined(__riscv)
+        /* __riscv__ is obsolete, remove in 2018 */
+                { "riscv32",    ARCHITECTURE_RISCV32  },
+                { "riscv64",    ARCHITECTURE_RISCV64  },
+#  if __SIZEOF_POINTER__ == 4
+                { "riscv",      ARCHITECTURE_RISCV32  },
+#  elif __SIZEOF_POINTER__ == 8
+                { "riscv",      ARCHITECTURE_RISCV64  },
+#  endif
 #else
 #error "Please register your architecture here!"
 #endif
@@ -174,6 +183,8 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = {
         [ARCHITECTURE_TILEGX] = "tilegx",
         [ARCHITECTURE_CRIS] = "cris",
         [ARCHITECTURE_NIOS2] = "nios2",
+        [ARCHITECTURE_RISCV32] = "riscv32",
+        [ARCHITECTURE_RISCV64] = "riscv64",
 };
 
 DEFINE_STRING_TABLE_LOOKUP(architecture, int);