2013-06-30 21:28:59 +02:00
|
|
|
comment "GCC Options"
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "GCC compiler Version"
|
2016-08-11 15:25:38 +02:00
|
|
|
default BR2_GCC_VERSION_ARC if BR2_arc
|
2017-01-25 07:35:07 +01:00
|
|
|
default BR2_GCC_VERSION_OR1K if BR2_or1k
|
2018-05-29 23:52:57 +02:00
|
|
|
default BR2_GCC_VERSION_7_X
|
2013-06-30 21:28:59 +02:00
|
|
|
help
|
|
|
|
Select the version of gcc you wish to use.
|
|
|
|
|
2017-04-22 19:17:47 +02:00
|
|
|
config BR2_GCC_VERSION_ARC
|
2018-11-08 12:32:07 +01:00
|
|
|
bool "gcc arc (8.x)"
|
2017-04-22 19:17:47 +02:00
|
|
|
# Only supported architecture
|
|
|
|
depends on BR2_arc
|
2018-11-08 12:32:07 +01:00
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
2015-08-04 20:00:34 +02:00
|
|
|
|
2017-04-22 19:17:47 +02:00
|
|
|
config BR2_GCC_VERSION_OR1K
|
|
|
|
bool "gcc or1k (5.x)"
|
|
|
|
# Only supported architecture
|
|
|
|
depends on BR2_or1k
|
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
2017-01-25 07:35:07 +01:00
|
|
|
|
2017-04-22 19:17:47 +02:00
|
|
|
config BR2_GCC_VERSION_4_9_X
|
|
|
|
bool "gcc 4.9.x"
|
2017-09-03 11:44:28 +02:00
|
|
|
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
2017-04-22 19:17:47 +02:00
|
|
|
# Broken or unsupported architectures
|
2017-09-03 11:44:34 +02:00
|
|
|
depends on !BR2_arc
|
|
|
|
depends on !BR2_or1k
|
|
|
|
# musl on microblaze, ppc64 and mips64 unsupported
|
2017-04-22 19:17:47 +02:00
|
|
|
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))
|
2019-03-12 23:35:25 +01:00
|
|
|
# glibc >= 2.29 needs gcc >= 5 on all architectures.
|
|
|
|
depends on !BR2_TOOLCHAIN_USES_GLIBC
|
2017-04-22 19:17:47 +02:00
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
2014-04-24 03:00:30 +02:00
|
|
|
|
2017-04-22 19:17:47 +02:00
|
|
|
config BR2_GCC_VERSION_5_X
|
|
|
|
bool "gcc 5.x"
|
2017-09-03 11:44:28 +02:00
|
|
|
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
2017-04-22 19:17:47 +02:00
|
|
|
# Broken or unsupported architectures
|
2017-09-03 11:44:34 +02:00
|
|
|
depends on !BR2_arc
|
|
|
|
depends on !BR2_or1k
|
|
|
|
# musl on ppc64 and mips64 unsupported
|
2017-04-22 19:17:47 +02:00
|
|
|
depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_powerpc64 || BR2_powerpc64le))
|
|
|
|
depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_mips64 || BR2_mips64el))
|
2017-09-23 23:24:03 +02:00
|
|
|
# glibc >= 2.26 needs gcc >= 6.2
|
|
|
|
depends on !(BR2_TOOLCHAIN_USES_GLIBC && BR2_powerpc64le)
|
2017-04-22 19:17:47 +02:00
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
gcc: add support for gcc 5.1
This commit adds support for gcc 5.1 in Buildroot. In terms of gcc
patches, compared to gcc 4.9.x:
* Kept as is, sometimes after minor adjusments:
100-uclibc-conf.patch
301-missing-execinfo_h.patch
810-arm-softfloat-libgcc.patch
830-arm_unbreak_armv4t.patch
840-microblaze-enable-dwarf-eh-support.patch
850-libstdcxx-uclibc-c99.patch
860-cilk-wchar.patch
* Dropped:
110-pr64896.patch
111-pr65730.patch
* Split in multiple parts:
900-musl-support.patch
The patches from Crosstool-NG for muls support are used instead of
one single patch.
* Renamed:
910-gcc-poison-system-directories.patch to
200-gcc-poison-system-directories.patch
920-libgcc-remove-unistd-header.patch to
201-libgcc-remove-unistd-header.patch
Since the 9xx part of the series is now used by the various musl
related patches.
We have tested the following configurations, with a minimal Busybox
system:
* ARM, uClibc-ng
* ARM, glibc
* ARM, musl
* x86, uClibc-ng and uClibc 0.9.33.2
* x86, glibc
* x86, musl
All of the configurations built fine. All the configurations boot fine
in Qemu, except x86/uClibc (either ng or 0.9.33.2), it segfaults when
running init:
devtmpfs: mounted
Freeing unused kernel memory: 300K (c1389000 - c13d4000)
init[1]: segfault at 0 ip b77708c1 sp bfa9bb0c error 4 in ld-uClibc-0.9.33.2.so[b776c000+6000]
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
We'll give some time for the uClibc developers to fix the problem
before taking other measures in Buildroot to exclude gcc 5.1 from a
x86/uClibc configuration.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-06-14 16:33:28 +02:00
|
|
|
|
2017-04-22 19:17:47 +02:00
|
|
|
config BR2_GCC_VERSION_6_X
|
|
|
|
bool "gcc 6.x"
|
2017-09-03 11:44:28 +02:00
|
|
|
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
2017-04-22 19:17:47 +02:00
|
|
|
# Broken or unsupported architectures
|
|
|
|
depends on !BR2_arc
|
|
|
|
depends on !BR2_or1k
|
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
2016-04-27 15:54:03 +02:00
|
|
|
|
2017-05-23 22:24:39 +02:00
|
|
|
config BR2_GCC_VERSION_7_X
|
|
|
|
bool "gcc 7.x"
|
2018-05-29 23:52:55 +02:00
|
|
|
depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
2017-05-23 22:24:39 +02:00
|
|
|
# Broken or unsupported architectures
|
|
|
|
depends on !BR2_or1k
|
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
|
|
|
|
2018-05-29 23:52:55 +02:00
|
|
|
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
|
|
|
|
|
2013-06-30 21:28:59 +02:00
|
|
|
endchoice
|
|
|
|
|
2018-10-21 13:54:14 +02:00
|
|
|
# libcilkrts was introduced in gcc 4.9 (oldest gcc version we
|
|
|
|
# support), and removed in gcc 8.x
|
|
|
|
config BR2_GCC_SUPPORTS_LIBCILKRTS
|
|
|
|
bool
|
|
|
|
default y if !BR2_TOOLCHAIN_GCC_AT_LEAST_8
|
|
|
|
|
2013-06-30 21:28:59 +02:00
|
|
|
config BR2_GCC_VERSION
|
|
|
|
string
|
2016-08-03 23:48:24 +02:00
|
|
|
default "4.9.4" if BR2_GCC_VERSION_4_9_X
|
2017-10-15 23:57:35 +02:00
|
|
|
default "5.5.0" if BR2_GCC_VERSION_5_X
|
2018-12-08 16:37:35 +01:00
|
|
|
default "6.5.0" if BR2_GCC_VERSION_6_X
|
2018-12-08 16:37:34 +01:00
|
|
|
default "7.4.0" if BR2_GCC_VERSION_7_X
|
2019-02-24 17:05:29 +01:00
|
|
|
default "8.3.0" if BR2_GCC_VERSION_8_X
|
2019-05-12 20:11:19 +02:00
|
|
|
default "arc-2019.03-rc1" if BR2_GCC_VERSION_ARC
|
2018-02-03 21:18:21 +01:00
|
|
|
default "or1k-musl-5.4.0-20170218" if BR2_GCC_VERSION_OR1K
|
2013-06-30 21:28:59 +02:00
|
|
|
|
|
|
|
config BR2_EXTRA_GCC_CONFIG_OPTIONS
|
|
|
|
string "Additional gcc options"
|
|
|
|
default ""
|
|
|
|
help
|
gcc: use BR2_EXTRA_GCC_CONFIG_OPTIONS in gcc-initial and gcc-intermediate
When refactoring the internal toolchain backend logic, the code was
changed to pass the custom configure options given through
BR2_EXTRA_GCC_CONFIG_OPTIONS only for the gcc final pass, with the
idea that we're only interested by user customization for the final
compiler.
However, the beaglebone_defconfig was passing --with-float=hard
--with-fpu=vfpv3-d16 as BR2_EXTRA_GCC_CONFIG_OPTIONS, and since the
refactoring, it was causing build failures of the beaglebone_defconfig
(with messages saying that Busybox is built to use VFP arguments, but
libc/libm are not). This is due to the fact that the gcc intermediate,
which is used to build the C library, wasn't built to generate hard
float, while the final compiler was generating hard float.
So, we get back to the original situation where the options in
BR2_EXTRA_GCC_CONFIG_OPTIONS are passed to all of the compiler
passes. Of course, the specific case of hard float will be fixed by
following patches in this area, but the idea still remains: the three
gcc should have the same options, if those options affected the ABI of
the generated code.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-07-14 00:27:24 +02:00
|
|
|
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.
|
2013-06-30 21:28:59 +02:00
|
|
|
|
2013-09-02 18:06:32 +02:00
|
|
|
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.
|
|
|
|
|
2016-07-03 15:47:39 +02:00
|
|
|
comment "Fortran support needs a toolchain w/ wchar"
|
|
|
|
depends on BR2_TOOLCHAIN_HAS_LIBQUADMATH
|
|
|
|
depends on !BR2_USE_WCHAR # libquadmath
|
|
|
|
|
2015-05-09 19:40:54 +02:00
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_FORTRAN
|
|
|
|
bool "Enable Fortran support"
|
2016-07-03 15:47:39 +02:00
|
|
|
# on architecture building libquadmath, wchar is required
|
|
|
|
depends on !BR2_TOOLCHAIN_HAS_LIBQUADMATH || \
|
|
|
|
(BR2_TOOLCHAIN_HAS_LIBQUADMATH && BR2_USE_WCHAR)
|
2016-07-03 15:47:42 +02:00
|
|
|
select BR2_TOOLCHAIN_HAS_FORTRAN
|
2015-05-09 19:40:54 +02:00
|
|
|
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.
|
|
|
|
|
2015-03-06 13:34:06 +01:00
|
|
|
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.
|
|
|
|
|
2013-06-30 21:28:59 +02:00
|
|
|
config BR2_GCC_ENABLE_OPENMP
|
|
|
|
bool "Enable compiler OpenMP support"
|
2015-02-14 10:23:11 +01:00
|
|
|
depends on !BR2_PTHREADS_NONE && !BR2_arc && !BR2_microblaze
|
2019-03-26 13:30:45 +01:00
|
|
|
select BR2_TOOLCHAIN_HAS_OPENMP
|
2013-06-30 21:28:59 +02:00
|
|
|
help
|
|
|
|
Enable OpenMP support for the compiler
|
2013-09-02 18:06:38 +02:00
|
|
|
|
|
|
|
config BR2_GCC_ENABLE_LIBMUDFLAP
|
|
|
|
bool "Enable libmudflap support"
|
|
|
|
# There are architectures, or specific configurations for
|
|
|
|
# which mudflap is not supported.
|
2015-03-17 23:44:17 +01:00
|
|
|
depends on !BR2_ARM_INSTRUCTIONS_THUMB && !BR2_powerpc_SPE
|
2016-06-04 18:45:56 +02:00
|
|
|
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
2013-09-02 18:06:38 +02:00
|
|
|
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.
|
2014-05-19 21:48:13 +02:00
|
|
|
|
|
|
|
config BR2_GCC_ENABLE_GRAPHITE
|
|
|
|
bool "Enable graphite support"
|
2017-08-02 01:43:00 +02:00
|
|
|
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
2014-05-19 21:48:13 +02:00
|
|
|
help
|
|
|
|
This option enables the graphite optimizations in the
|
|
|
|
compiler.
|
2017-08-02 01:43:00 +02:00
|
|
|
|
|
|
|
comment "graphite support needs gcc >= 5.x"
|
|
|
|
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5
|