Add RISC-V support Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1318905] Signed-off-by: Ricardo Salveti diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess index d5d667d..1277a86 100755 --- a/build/autoconf/config.guess +++ b/build/autoconf/config.guess @@ -1029,6 +1029,9 @@ EOF ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure index 6fe6591..56e6730 100644 --- a/build/moz.configure/init.configure +++ b/build/moz.configure/init.configure @@ -362,6 +362,9 @@ def split_triplet(triplet): elif cpu.startswith('aarch64'): canonical_cpu = 'aarch64' endianness = 'little' + elif cpu in ('riscv32', 'riscv64'): + canonical_cpu = cpu + endianness = 'little' else: die('Unknown CPU type: %s' % cpu) diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h index 15dd4bf..4f37218 100644 --- a/mfbt/double-conversion/utils.h +++ b/mfbt/double-conversion/utils.h @@ -60,7 +60,8 @@ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ defined(__SH4__) || defined(__alpha__) || \ defined(_MIPS_ARCH_MIPS32R2) || \ - defined(__AARCH64EL__) || defined(__aarch64__) + defined(__AARCH64EL__) || defined(__aarch64__) || \ + defined(__riscv) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) #if defined(_WIN32) diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py index dfc7cf8..4f8d666 100644 --- a/python/mozbuild/mozbuild/configure/constants.py +++ b/python/mozbuild/mozbuild/configure/constants.py @@ -48,6 +48,8 @@ CPU_bitness = { 'mips64': 64, 'ppc': 32, 'ppc64': 64, + 'riscv32': 32, + 'riscv64': 64, 's390': 32, 's390x': 64, 'sparc': 32, @@ -79,6 +81,8 @@ CPU_preprocessor_checks = OrderedDict(( ('s390', '__s390__'), ('ppc64', '__powerpc64__'), ('ppc', '__powerpc__'), + ('riscv32', '__riscv && __SIZEOF_POINTER__ == 4'), + ('riscv64', '__riscv && __SIZEOF_POINTER__ == 8'), ('Alpha', '__alpha__'), ('hppa', '__hppa__'), ('sparc64', '__sparc__ && __arch64__'),