kumquat-buildroot/package/gcc/Config.in.host
Romain Naour 1380f4c9a6 package/gcc: glibc >= 2.27 needs gcc >= 5 on aarch64
With the following defconfig:
BR2_aarch64=y
BR2_BINUTILS_VERSION_2_28_X=y
BR2_GCC_VERSION_4_9_X=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y

The build fail with this error:
In file included from ../sysdeps/ieee754/flt-32/math_config.h:23:0,
                 from ../sysdeps/ieee754/flt-32/e_expf.c:29:
../sysdeps/aarch64/fpu/math_private.h: In function 'roundtoint':
../sysdeps/aarch64/fpu/math_private.h:311:3: error: implicit declaration of function 'vrndn_f64' [-Werror=implicit-function-declaration]
   return vget_lane_f64 (vrndn_f64 (vld1_f64 (&x)), 0);
   ^
cc1: all warnings being treated as errors

vrndn_f64 function has been introduced in glibc code since version 2.27 [1].
So we can't build a glibc based toolchain with gcc 4.9 anymore.

Add a new dependency in the toolchain infra to avoid selecting
glibc toolchain using gcc 4.9.

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=72aa623345ada1276ed89dbc00fdff9639cb8eaf

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-09-16 21:16:01 +02:00

158 lines
4.8 KiB
Plaintext

comment "GCC Options"
choice
prompt "GCC compiler Version"
default BR2_GCC_VERSION_ARC if BR2_arc
default BR2_GCC_VERSION_OR1K if BR2_or1k
default BR2_GCC_VERSION_7_X
help
Select the version of gcc you wish to use.
config BR2_GCC_VERSION_ARC
bool "gcc arc (7.x)"
# Only supported architecture
depends on BR2_arc
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
config BR2_GCC_VERSION_OR1K
bool "gcc or1k (5.x)"
# Only supported architecture
depends on BR2_or1k
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
config BR2_GCC_VERSION_4_9_X
bool "gcc 4.9.x"
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_5
# Broken or unsupported architectures
depends on !BR2_arc
depends on !BR2_or1k
# musl on microblaze, ppc64 and mips64 unsupported
depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_microblazeel || BR2_microblazebe))
depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_powerpc64 || BR2_powerpc64le))
depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_mips64 || BR2_mips64el))
# glibc >= 2.26 needs gcc >= 6.2
depends on !(BR2_TOOLCHAIN_USES_GLIBC && BR2_powerpc64le)
# glibc >= 2.27 needs gcc >= 5
depends on !(BR2_TOOLCHAIN_USES_GLIBC && (BR2_aarch64 || BR2_aarch64_be))
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
config BR2_GCC_VERSION_5_X
bool "gcc 5.x"
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_6
# Broken or unsupported architectures
depends on !BR2_arc
depends on !BR2_or1k
# musl on ppc64 and mips64 unsupported
depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_powerpc64 || BR2_powerpc64le))
depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_mips64 || BR2_mips64el))
# glibc >= 2.26 needs gcc >= 6.2
depends on !(BR2_TOOLCHAIN_USES_GLIBC && BR2_powerpc64le)
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
config BR2_GCC_VERSION_6_X
bool "gcc 6.x"
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7
# Broken or unsupported architectures
depends on !BR2_arc
depends on !BR2_or1k
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
config BR2_GCC_VERSION_7_X
bool "gcc 7.x"
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
# Broken or unsupported architectures
depends on !BR2_or1k
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
config BR2_GCC_VERSION_8_X
bool "gcc 8.x"
# Broken or unsupported architectures
depends on !BR2_or1k
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
endchoice
config BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE
bool
default y
config BR2_GCC_VERSION
string
default "4.9.4" if BR2_GCC_VERSION_4_9_X
default "5.5.0" if BR2_GCC_VERSION_5_X
default "6.4.0" if BR2_GCC_VERSION_6_X
default "7.3.0" if BR2_GCC_VERSION_7_X
default "8.2.0" if BR2_GCC_VERSION_8_X
default "arc-2018.03" if BR2_GCC_VERSION_ARC
default "or1k-musl-5.4.0-20170218" if BR2_GCC_VERSION_OR1K
config BR2_EXTRA_GCC_CONFIG_OPTIONS
string "Additional gcc options"
default ""
help
Any additional gcc configure options you may want to
include. Those options are applied for all of the gcc
initial, gcc intermediate and gcc final passes.
config BR2_TOOLCHAIN_BUILDROOT_CXX
bool "Enable C++ support"
select BR2_INSTALL_LIBSTDCPP
help
Enable this option if you want your toolchain to support the
C++ language and you want C++ libraries to be installed on
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
bool "Enable Fortran support"
# on architecture building libquadmath, wchar is required
depends on !BR2_TOOLCHAIN_HAS_LIBQUADMATH || \
(BR2_TOOLCHAIN_HAS_LIBQUADMATH && BR2_USE_WCHAR)
select BR2_TOOLCHAIN_HAS_FORTRAN
help
Enable this option if you want your toolchain to support the
Fortran language and you want Fortran libraries to be
installed on your target system.
config BR2_GCC_ENABLE_LTO
bool "Enable compiler link-time-optimization support"
select BR2_BINUTILS_ENABLE_LTO
help
This option enables link-time optimization (LTO) support in
gcc.
config BR2_GCC_ENABLE_OPENMP
bool "Enable compiler OpenMP support"
depends on !BR2_PTHREADS_NONE && !BR2_arc && !BR2_microblaze
help
Enable OpenMP support for the compiler
config BR2_GCC_ENABLE_LIBMUDFLAP
bool "Enable libmudflap support"
# There are architectures, or specific configurations for
# which mudflap is not supported.
depends on !BR2_ARM_INSTRUCTIONS_THUMB && !BR2_powerpc_SPE
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
help
libmudflap is a gcc library used for the mudflap pointer
debugging functionality. It is only needed if you intend to
use the -fmudflap gcc flag.
See http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging and
the help of the gcc -fmudflap option for more details.
If you're unsure, leave this option disabled.
config BR2_GCC_ENABLE_GRAPHITE
bool "Enable graphite support"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
help
This option enables the graphite optimizations in the
compiler.
comment "graphite support needs gcc >= 5.x"
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5