Browse Source

mips: add hidden NaN choice, refresh uClibc-ng configs

Waldemar Brodkorb 7 years ago
parent
commit
ce0e01a34c

+ 1 - 1
package/uclibc-ng/Makefile

@@ -40,7 +40,7 @@ ifneq ($(ADK_TARGET_USE_STATIC_LIBS)$(ADK_TARGET_BINFMT_FLAT),y)
 		$(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
 	$(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc-*.so \
 		$(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
-	$(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc.so.* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
+	$(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc*.so.* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
 	-for file in libcrypt libdl libm libnsl libresolv libutil libuargp; do \
 		$(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH); \
 		$(CP) $(STAGING_TARGET_DIR)/lib/$$file-*.so \

+ 15 - 0
target/config/Config.in.archopts

@@ -21,6 +21,21 @@ config ADK_TARGET_INSTRUCTION_SET
 	default "arm" if ADK_TARGET_ARCH_ARM_WITH_ARM
 	default "thumb" if ADK_TARGET_ARCH_ARM_WITH_THUMB
 
+config ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
+	bool
+	depends on ADK_TARGET_ARCH_MIPS \
+		|| ADK_TARGET_ARCH_MIPS64
+
+config ADK_TARGET_ARCH_MIPS_WITH_NAN_2008
+	bool
+	depends on ADK_TARGET_ARCH_MIPS \
+		|| ADK_TARGET_ARCH_MIPS64
+
+config ADK_TARGET_NAN_MODE
+	string
+	default "legacy" if ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
+	default "2008" if ADK_TARGET_ARCH_MIPS_WITH_NAN_2008
+
 config ADK_TARGET_WITH_DEVICETREE
 	bool
 	depends on ADK_TARGET_ARCH_ARM

+ 6 - 0
target/config/Config.in.cpu

@@ -670,6 +670,7 @@ config ADK_TARGET_CPU_MIPS_MIPS32
 	select ADK_TARGET_WITH_MMU
 	select ADK_TARGET_CPU_WITH_FPU
 	select ADK_KERNEL_CPU_MIPS32_R1
+	select ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
 	depends on ADK_TARGET_ARCH_MIPS
 
 config ADK_TARGET_CPU_MIPS_MIPS32R2
@@ -678,6 +679,7 @@ config ADK_TARGET_CPU_MIPS_MIPS32R2
 	select ADK_TARGET_WITH_MMU
 	select ADK_TARGET_CPU_WITH_FPU
 	select ADK_KERNEL_CPU_MIPS32_R2
+	select ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
 	depends on ADK_TARGET_ARCH_MIPS
 
 config ADK_TARGET_CPU_MIPS_MIPS32R6
@@ -686,6 +688,7 @@ config ADK_TARGET_CPU_MIPS_MIPS32R6
 	select ADK_TARGET_WITH_MMU
 	select ADK_TARGET_CPU_WITH_FPU
 	select ADK_KERNEL_CPU_MIPS32_R6
+	select ADK_TARGET_ARCH_MIPS_WITH_NAN_2008
 	depends on ADK_TARGET_ARCH_MIPS
 
 # mips64
@@ -694,6 +697,7 @@ config ADK_TARGET_CPU_MIPS64_MIPS64
 	select ADK_LINUX_64
 	select ADK_TARGET_WITH_NPTL
 	select ADK_TARGET_WITH_MMU
+	select ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
 	depends on ADK_TARGET_ARCH_MIPS64
 
 config ADK_TARGET_CPU_MIPS64_MIPS64R2
@@ -701,6 +705,7 @@ config ADK_TARGET_CPU_MIPS64_MIPS64R2
 	select ADK_LINUX_64
 	select ADK_TARGET_WITH_NPTL
 	select ADK_TARGET_WITH_MMU
+	select ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
 	depends on ADK_TARGET_ARCH_MIPS64
 
 config ADK_TARGET_CPU_MIPS64_MIPS64R6
@@ -708,6 +713,7 @@ config ADK_TARGET_CPU_MIPS64_MIPS64R6
 	select ADK_LINUX_64
 	select ADK_TARGET_WITH_NPTL
 	select ADK_TARGET_WITH_MMU
+	select ADK_TARGET_ARCH_MIPS_WITH_NAN_2008
 	depends on ADK_TARGET_ARCH_MIPS64
 
 config ADK_TARGET_CPU_MIPS64_LOONGSON2F

+ 7 - 1
target/mips/uclibc-ng.config

@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.10 C Library Configuration
+# uClibc-ng 1.0.17 C Library Configuration
 #
 # TARGET_alpha is not set
 # TARGET_arc is not set
@@ -9,7 +9,9 @@
 # TARGET_bfin is not set
 # TARGET_c6x is not set
 # TARGET_cris is not set
+# TARGET_frv is not set
 # TARGET_h8300 is not set
+# TARGET_hppa is not set
 # TARGET_i386 is not set
 # TARGET_ia64 is not set
 # TARGET_lm32 is not set
@@ -17,6 +19,7 @@
 # TARGET_metag is not set
 # TARGET_microblaze is not set
 TARGET_mips=y
+# TARGET_nds32 is not set
 # TARGET_nios2 is not set
 # TARGET_or1k is not set
 # TARGET_powerpc is not set
@@ -33,6 +36,9 @@ FORCE_OPTIONS_FOR_ARCH=y
 CONFIG_MIPS_O32_ABI=y
 # CONFIG_MIPS_N32_ABI is not set
 # CONFIG_MIPS_N64_ABI is not set
+CONFIG_MIPS_NAN_LEGACY=y
+# CONFIG_MIPS_NAN_2008 is not set
+UCLIBC_USE_MIPS_PREFETCH=y
 TARGET_SUBARCH=""
 
 #

+ 7 - 1
target/mips64/uclibc-ng.config

@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.10 C Library Configuration
+# uClibc-ng 1.0.17 C Library Configuration
 #
 # TARGET_alpha is not set
 # TARGET_arc is not set
@@ -9,7 +9,9 @@
 # TARGET_bfin is not set
 # TARGET_c6x is not set
 # TARGET_cris is not set
+# TARGET_frv is not set
 # TARGET_h8300 is not set
+# TARGET_hppa is not set
 # TARGET_i386 is not set
 # TARGET_ia64 is not set
 # TARGET_lm32 is not set
@@ -17,6 +19,7 @@
 # TARGET_metag is not set
 # TARGET_microblaze is not set
 TARGET_mips=y
+# TARGET_nds32 is not set
 # TARGET_nios2 is not set
 # TARGET_or1k is not set
 # TARGET_powerpc is not set
@@ -33,6 +36,9 @@ FORCE_OPTIONS_FOR_ARCH=y
 # CONFIG_MIPS_O32_ABI is not set
 # CONFIG_MIPS_N32_ABI is not set
 CONFIG_MIPS_N64_ABI=y
+CONFIG_MIPS_NAN_LEGACY=y
+# CONFIG_MIPS_NAN_2008 is not set
+UCLIBC_USE_MIPS_PREFETCH=y
 TARGET_SUBARCH=""
 
 #

+ 4 - 0
toolchain/gcc/Makefile

@@ -115,6 +115,10 @@ ifneq ($(ADK_TARGET_INSTRUCTION_SET),)
 GCC_CONFOPTS+=		--with-mode=$(ADK_TARGET_INSTRUCTION_SET)
 endif
 
+ifneq ($(ADK_TARGET_NAN_MODE),)
+GCC_CONFOPTS+=		--with-nan=$(ADK_TARGET_NAN_MODE)
+endif
+
 # .symver is broken for Blackfin, simple C++ apps fail to link
 ifeq ($(ADK_TARGET_ARCH_BFIN),y)
 GCC_CONFOPTS+=		--disable-symvers

+ 11 - 0
toolchain/uclibc-ng/Makefile

@@ -244,6 +244,7 @@ ifeq ($(ADK_TARGET_CPU_X86_I686),y)
 endif
 endif
 
+# m68k
 ifeq ($(ADK_TARGET_ARCH_M68K),y)
 ifeq ($(ADK_TARGET_WITHOUT_MMU),y)
 ifeq ($(ADK_TARGET_BINFMT_FLAT_ONE)$(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y)
@@ -252,6 +253,16 @@ endif
 endif
 endif
 
+# mips/mips64 NaN
+ifeq ($(ADK_TARGET_ARCH_MIPS_WITH_NAN_2008),y)
+	$(SED) 's/.*\(CONFIG_MIPS_NAN_LEGACY\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(CONFIG_MIPS_NAN_2008\).*/\1=y/' ${WRKBUILD}/.config
+endif
+ifeq ($(ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY),y)
+	$(SED) 's/.*\(CONFIG_MIPS_NAN_2008\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(CONFIG_MIPS_NAN_LEGACY\).*/\1=y/' ${WRKBUILD}/.config
+endif
+
 # mips64 abi
 ifeq ($(ADK_TARGET_ARCH_MIPS64),y)
 ifeq ($(ADK_TARGET_ABI_N64),y)