7542a59601
When building a toolchain with upstream gcc 9.x the build fail due to several issues. Note: The upstream Binutils support csky target since release 2.32 but the support was never enabled in the Buildroot packaging. So the latest version (2.33.1) was tested here. [upstream gcc 9.x w/ glibc csky fork with binutils csky for or binutils 2.33.1] In file included from <command-line>: ./../include/libc-symbols.h:534:26: error: '__EI___errno_location' specifies less restrictive attributes than its target '__errno_location': 'const', 'nothrow' [-Werror=missing-attributes] 534 | extern __typeof (name) __EI_##name \ [upstream gcc 9.x w/ glibc 2.30 w/ binutils csky fork] /tmp/ccThLRhb.s: Assembler messages: /tmp/ccThLRhb.s:10: Error: invalid or unsupported encoding in .cfi_personality /tmp/ccThLRhb.s:11: Error: invalid or unsupported encoding in .cfi_lsda [upstream gcc 9.x w/ glibc 2.30 w/ binutils 2.33.1] build/elf/librtld.os: in function `__sync_fetch_and_add_2': libgcc/config/csky/linux-atomic.c:116: undefined reference to `__kernel_cmpxchg' Currenlty, only the toolchain using binutils, gcc, glibc fork produce a working toolchain. So disable gcc 9.x for csky. Signed-off-by: Romain Naour <romain.naour@smile.fr> Cc: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Guo Ren <guoren@kernel.org> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
158 lines
4.8 KiB
Plaintext
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_CSKY if BR2_csky
|
|
default BR2_GCC_VERSION_8_X
|
|
help
|
|
Select the version of gcc you wish to use.
|
|
|
|
config BR2_GCC_VERSION_ARC
|
|
bool "gcc arc (9.x)"
|
|
# Only supported architecture
|
|
depends on BR2_arc
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
|
|
config BR2_GCC_VERSION_CSKY
|
|
bool "gcc csky"
|
|
# Only supported architecture
|
|
depends on BR2_csky
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
|
|
|
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.30 needs gcc >= 6.2 on all architectures.
|
|
depends on !BR2_TOOLCHAIN_USES_GLIBC
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
|
|
|
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"
|
|
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
|
# Broken or unsupported architectures
|
|
depends on !BR2_or1k
|
|
# powerpc spe support has been deprecated since gcc 8.x.
|
|
# https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
|
|
depends on !BR2_powerpc_SPE
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
|
|
|
config BR2_GCC_VERSION_9_X
|
|
bool "gcc 9.x"
|
|
# or1k needs binutils >= 2.32
|
|
depends on !(BR2_or1k && BR2_BINUTILS_VERSION_2_31_X)
|
|
# powerpc spe support has been deprecated since gcc 8.x.
|
|
# https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html
|
|
depends on !BR2_powerpc_SPE
|
|
# C-SKY sk610 needs abiv1, which is not supported in
|
|
# upstream gcc. C-SKY gcc upstream support not tested
|
|
# with upstream binutils and glibc.
|
|
depends on !BR2_csky
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
|
|
endchoice
|
|
|
|
# libcilkrts was introduced in gcc 4.9 and removed in gcc 8.x
|
|
config BR2_GCC_SUPPORTS_LIBCILKRTS
|
|
bool
|
|
default y if !BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
|
|
|
config BR2_GCC_SUPPORTS_DLANG
|
|
bool
|
|
default y if BR2_aarch64
|
|
default y if BR2_arm
|
|
default y if BR2_i386
|
|
default y if BR2_mips || BR2_mipsel
|
|
default y if BR2_mips64 || BR2_mips64el
|
|
default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
|
|
default y if BR2_x86_64
|
|
default y if BR2_riscv && !BR2_RISCV_64
|
|
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
depends on BR2_TOOLCHAIN_USES_GLIBC
|
|
|
|
config BR2_GCC_VERSION
|
|
string
|
|
default "5.5.0" if BR2_GCC_VERSION_5_X
|
|
default "7.5.0" if BR2_GCC_VERSION_7_X
|
|
default "8.3.0" if BR2_GCC_VERSION_8_X
|
|
default "9.2.0" if BR2_GCC_VERSION_9_X
|
|
default "arc-2019.09-release" if BR2_GCC_VERSION_ARC
|
|
default "48152afb96c59733d5bc79e3399bb7b3d4b44266" if BR2_GCC_VERSION_CSKY
|
|
|
|
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_TOOLCHAIN_BUILDROOT_DLANG
|
|
bool "Enable D language support"
|
|
depends on BR2_GCC_SUPPORTS_DLANG
|
|
select BR2_TOOLCHAIN_HAS_DLANG
|
|
help
|
|
Enable this option if you want your toolchain to support the
|
|
D language and you want D 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
|
|
select BR2_TOOLCHAIN_HAS_OPENMP
|
|
help
|
|
Enable OpenMP support for the compiler
|
|
|
|
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
|