1From a54561be5588ac9b16d3c20760b9b554168bb8aa Mon Sep 17 00:00:00 2001 2From: Peter Seiderer <pseiderer@users.noreply.github.com> 3Date: Thu, 31 Oct 2019 21:26:27 +0100 4Subject: [PATCH] Pseiderer/add nios2 and xtensa 001 (#119) 5 6* double-conversion: enable for nios2 7 8Nios2 supports double conversion, tested using qemu: 9 10./main || echo "correct" 11correct 12uname -a 13Linux buildroot 4.19.16 #4 Sat Aug 3 14:46:48 CEST 2019 nios2 GNU/Linux 14 15Solves build error 16 17In file included from double-conversion.h:42:0, 18 from number_decimalquantity.cpp:19: 19double-conversion-utils.h:119:2: error: #error Target architecture was not detected as supported by Double-Conversion. 20 #error Target architecture was not detected as supported by Double-Conversion. 21 22detected by buildroot autobuilders: 23http://autobuild.buildroot.net/results/91e/91eaec34708d91f8a05af189243be0b7cabce31b/ 24 25Patch sent upstream: https://github.com/unicode-org/icu/pull/725 26Bug report: https://unicode-org.atlassian.net/browse/ICU-20751 27 28[Bernd: Fixed path] 29Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> 30[Added Changelog entry] 31Signed-off-by: Peter Seiderer <ps.report@gmx.net> 32 33* double-conversion: enable for xtensa 34 35Signed-off-by: Peter Seiderer <ps.report@gmx.net> 36 37[Retrieved (dand backported) from: 38https://github.com/google/double-conversion/commit/a54561be5588ac9b16d3c20760b9b554168bb8aa] 39Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 40--- 41Note: 42 43Double-conversion tested with: 44 45 $ cat div.c 46double Div_double(double x, double y) { return x / y; } 47 48 $ cat main.c 49double Div_double(double x, double y); 50 51int main(int argc, char** argv) { 52 double result = Div_double(89255.0, 1e22); 53 if (result == 89255e-22) { 54 printf("correct result %e\n", result); 55 return 1; 56 } else { 57 printf("wrong result %e\n", result); 58 return 0; 59 } 60} 61 62Tested for xtensa (using qemu_xtensa_lx60_defconfig plus BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE): 63 64 $ ./host/bin/xtensa-buildroot-linux-uclibc-gcc -c div.c 65 $ ./host/bin/xtensa-buildroot-linux-uclibc-gcc -c main.c 66 $ ./host/bin/xtensa-buildroot-linux-uclibc-gcc -o main main.o div.o 67 68 $ ./host/bin/qemu-xtensa -L staging main 69correct result 8.925500e-18 70--- 71 Changelog | 4 ++++ 72 double-conversion/utils.h | 3 ++- 73 2 files changed, 6 insertions(+), 1 deletion(-) 74 75diff --git a/deps/double-conversion/double-conversion/utils.h b/deps/double-conversion/double-conversion/utils.h 76index 221467f..98ec28b 100644 77--- a/deps/double-conversion/double-conversion/utils.h 78+++ b/deps/double-conversion/double-conversion/utils.h 79@@ -94,6 +94,7 @@ int main(int argc, char** argv) { 80 defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ 81 defined(__hppa__) || defined(__ia64__) || \ 82 defined(__mips__) || \ 83+ defined(__nios2__) || \ 84 defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ 85 defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ 86 defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ 87@@ -102,7 +103,7 @@ int main(int argc, char** argv) { 88 defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ 89 defined(__riscv) || defined(__e2k__) || \ 90 defined(__or1k__) || defined(__arc__) || \ 91- defined(__microblaze__) 92+ defined(__microblaze__) || defined(__XTENSA__) 93 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 94 #elif defined(__mc68000__) 95 #undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 96