소스 검색

package/gcc: fix fortran support

Fortran depends on libquadmath when available, make the buildroot
toolchain option depends on this new hidden symbol,

[Vincent: only do "HOST_GCC_FINAL_USR_LIBS += libquadmath" for i386 and
x86_64, otherwise it will fail saying "libquadmath.a: file not found"]

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Samuel Martin 9 년 전
부모
커밋
5077bdd939
2개의 변경된 파일11개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      package/gcc/Config.in.host
  2. 4 0
      package/gcc/gcc-final/gcc-final.mk

+ 7 - 0
package/gcc/Config.in.host

@@ -118,8 +118,15 @@ config BR2_TOOLCHAIN_BUILDROOT_CXX
 	  C++ language and you want C++ libraries to be installed on
 	  C++ language and you want C++ libraries to be installed on
 	  your target system.
 	  your target system.
 
 
+comment "Fortran support needs a toolchain w/ wchar"
+	depends on BR2_TOOLCHAIN_HAS_LIBQUADMATH
+	depends on !BR2_USE_WCHAR # libquadmath
+
 config BR2_TOOLCHAIN_BUILDROOT_FORTRAN
 config BR2_TOOLCHAIN_BUILDROOT_FORTRAN
 	bool "Enable Fortran support"
 	bool "Enable Fortran support"
+	# on architecture building libquadmath, wchar is required
+	depends on !BR2_TOOLCHAIN_HAS_LIBQUADMATH || \
+		(BR2_TOOLCHAIN_HAS_LIBQUADMATH && BR2_USE_WCHAR)
 	help
 	help
 	  Enable this option if you want your toolchain to support the
 	  Enable this option if you want your toolchain to support the
 	  Fortran language and you want Fortran libraries to be
 	  Fortran language and you want Fortran libraries to be

+ 4 - 0
package/gcc/gcc-final/gcc-final.mk

@@ -163,6 +163,10 @@ endif
 
 
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT_FORTRAN),y)
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT_FORTRAN),y)
 HOST_GCC_FINAL_USR_LIBS += libgfortran
 HOST_GCC_FINAL_USR_LIBS += libgfortran
+# fortran needs quadmath on x86 and x86_64
+ifeq ($(BR2_TOOLCHAIN_HAS_LIBQUADMATH),y)
+HOST_GCC_FINAL_USR_LIBS += libquadmath
+endif
 endif
 endif
 
 
 ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
 ifeq ($(BR2_GCC_ENABLE_OPENMP),y)