2013-06-30 21:28:59 +02:00
|
|
|
comment "GCC Options"
|
|
|
|
|
|
|
|
config BR2_GCC_NEEDS_MPC
|
|
|
|
bool
|
|
|
|
|
2014-05-19 21:48:13 +02:00
|
|
|
config BR2_GCC_SUPPORTS_GRAPHITE
|
|
|
|
bool
|
|
|
|
|
2013-06-30 21:28:59 +02:00
|
|
|
choice
|
|
|
|
prompt "GCC compiler Version"
|
2013-07-18 23:47:52 +02:00
|
|
|
default BR2_GCC_VERSION_4_8_ARC if BR2_arc
|
2015-06-14 16:33:29 +02:00
|
|
|
default BR2_GCC_VERSION_4_9_X
|
2013-06-30 21:28:59 +02:00
|
|
|
help
|
|
|
|
Select the version of gcc you wish to use.
|
|
|
|
|
|
|
|
config BR2_GCC_VERSION_4_7_X
|
|
|
|
bool "gcc 4.7.x"
|
2016-02-24 19:00:39 +01:00
|
|
|
depends on BR2_DEPRECATED_SINCE_2016_05
|
2014-09-22 19:32:21 +02:00
|
|
|
# Broken or unsupported architectures
|
|
|
|
depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc \
|
2015-03-17 23:44:17 +01:00
|
|
|
&& !BR2_powerpc64le && !BR2_nios2
|
2014-09-22 19:32:21 +02:00
|
|
|
# Broken or unsupported ARM cores
|
2016-02-21 14:12:10 +01:00
|
|
|
depends on !BR2_cortex_a12 && !BR2_pj4 && !BR2_cortex_a17
|
2014-09-22 19:32:21 +02:00
|
|
|
# Broken or unsupported PPC cores
|
2014-11-18 00:14:52 +01:00
|
|
|
depends on !BR2_powerpc_e5500 && !BR2_powerpc_e6500 && \
|
|
|
|
!BR2_powerpc_power8
|
2014-12-19 19:33:27 +01:00
|
|
|
# SPARC -mcpu=leon3 appeared in gcc 4.8.x
|
2014-10-30 09:29:35 +01:00
|
|
|
depends on !BR2_sparc_leon3
|
2014-09-22 19:32:21 +02:00
|
|
|
# Broken or unsupported x86 cores
|
2015-03-03 16:52:30 +01:00
|
|
|
depends on !BR2_x86_jaguar && !BR2_x86_steamroller
|
2015-10-12 12:08:06 +02:00
|
|
|
# Unsupported for MIPS R6
|
|
|
|
depends on !BR2_mips_32r6 && !BR2_mips_64r6
|
2014-09-22 19:32:21 +02:00
|
|
|
select BR2_GCC_NEEDS_MPC
|
2015-08-04 20:00:34 +02:00
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
|
2013-06-30 21:28:59 +02:00
|
|
|
|
|
|
|
config BR2_GCC_VERSION_4_8_X
|
2014-09-22 19:32:21 +02:00
|
|
|
bool "gcc 4.8.x"
|
|
|
|
# Broken or unsupported architectures
|
2015-02-14 10:23:11 +01:00
|
|
|
depends on !BR2_microblaze && !BR2_arc \
|
2015-03-17 23:44:17 +01:00
|
|
|
&& !BR2_powerpc64le && !BR2_nios2
|
2014-09-22 19:32:21 +02:00
|
|
|
# Broken or unsupported ARM cores
|
2016-02-21 14:12:10 +01:00
|
|
|
depends on !BR2_cortex_a12 && !BR2_cortex_a17
|
2014-09-22 19:32:21 +02:00
|
|
|
# Broken or unsupported PPC cores
|
2014-11-17 23:12:33 +01:00
|
|
|
depends on !BR2_powerpc_power8
|
2015-07-02 17:19:08 +02:00
|
|
|
# gcc-4.8.x + binutils-2.25 is broken for MIPS
|
2015-07-28 15:48:21 +02:00
|
|
|
depends on !((BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el) && BR2_BINUTILS_VERSION_2_25_X)
|
2015-10-12 12:08:06 +02:00
|
|
|
# Unsupported for MIPS R6
|
|
|
|
depends on !BR2_mips_32r6 && !BR2_mips_64r6
|
2013-06-30 21:28:59 +02:00
|
|
|
select BR2_GCC_NEEDS_MPC
|
2014-05-19 21:48:13 +02:00
|
|
|
select BR2_GCC_SUPPORTS_GRAPHITE
|
2015-08-04 20:00:34 +02:00
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
2013-06-30 21:28:59 +02:00
|
|
|
|
2013-07-18 23:47:52 +02:00
|
|
|
config BR2_GCC_VERSION_4_8_ARC
|
2014-09-22 19:32:21 +02:00
|
|
|
bool "gcc 4.8-arc"
|
|
|
|
# Only supported architecture
|
2013-07-18 23:47:52 +02:00
|
|
|
depends on BR2_arc
|
|
|
|
select BR2_GCC_NEEDS_MPC
|
2015-08-04 20:00:34 +02:00
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
|
|
|
|
2013-07-18 23:47:52 +02:00
|
|
|
|
2014-04-24 03:00:30 +02:00
|
|
|
config BR2_GCC_VERSION_4_9_X
|
2014-09-22 19:32:21 +02:00
|
|
|
bool "gcc 4.9.x"
|
|
|
|
# Broken or unsupported architectures
|
2015-03-17 23:44:17 +01:00
|
|
|
depends on !BR2_arc
|
2016-02-21 14:12:10 +01:00
|
|
|
# Broken or unsupported ARM cores
|
|
|
|
depends on !BR2_cortex_a17
|
2015-10-12 12:08:06 +02:00
|
|
|
# Unsupported for MIPS R6
|
|
|
|
depends on !BR2_mips_32r6 && !BR2_mips_64r6
|
2014-07-18 13:10:41 +02:00
|
|
|
# PR60102 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60102
|
2014-04-24 03:00:30 +02:00
|
|
|
select BR2_GCC_NEEDS_MPC
|
2014-05-19 21:48:13 +02:00
|
|
|
select BR2_GCC_SUPPORTS_GRAPHITE
|
2015-08-04 20:00:34 +02:00
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
|
2014-04-24 03:00:30 +02:00
|
|
|
|
2015-07-17 16:31:13 +02:00
|
|
|
config BR2_GCC_VERSION_5_X
|
|
|
|
bool "gcc 5.x"
|
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
|
|
|
# Broken or unsupported architectures
|
|
|
|
depends on !BR2_arc
|
|
|
|
select BR2_GCC_NEEDS_MPC
|
|
|
|
select BR2_GCC_SUPPORTS_GRAPHITE
|
2015-08-04 20:00:34 +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
|
|
|
|
2016-04-27 15:54:03 +02:00
|
|
|
config BR2_GCC_VERSION_6_X
|
|
|
|
bool "gcc 6.x"
|
|
|
|
# Broken or unsupported architectures
|
|
|
|
depends on !BR2_arc
|
|
|
|
select BR2_GCC_NEEDS_MPC
|
|
|
|
select BR2_GCC_SUPPORTS_GRAPHITE
|
|
|
|
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
|
|
|
|
|
2013-06-30 21:28:59 +02:00
|
|
|
endchoice
|
|
|
|
|
|
|
|
config BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE
|
|
|
|
bool
|
2015-02-14 10:23:11 +01:00
|
|
|
default y
|
2013-06-30 21:28:59 +02:00
|
|
|
|
|
|
|
config BR2_GCC_VERSION
|
|
|
|
string
|
2014-06-12 23:00:50 +02:00
|
|
|
default "4.7.4" if BR2_GCC_VERSION_4_7_X
|
2015-06-24 09:20:43 +02:00
|
|
|
default "4.8.5" if BR2_GCC_VERSION_4_8_X
|
2015-06-27 13:33:31 +02:00
|
|
|
default "4.9.3" if BR2_GCC_VERSION_4_9_X
|
2016-06-07 03:21:48 +02:00
|
|
|
default "5.4.0" if BR2_GCC_VERSION_5_X
|
2016-04-27 15:54:03 +02:00
|
|
|
default "6.1.0" if BR2_GCC_VERSION_6_X
|
2016-06-29 18:22:55 +02:00
|
|
|
default "arc-2016.09-eng005" if BR2_GCC_VERSION_4_8_ARC
|
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.
|
|
|
|
|
2015-05-09 19:40:54 +02:00
|
|
|
config BR2_TOOLCHAIN_BUILDROOT_FORTRAN
|
|
|
|
bool "Enable Fortran support"
|
|
|
|
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.
|
|
|
|
|
2013-06-30 21:28:59 +02:00
|
|
|
config BR2_GCC_ENABLE_TLS
|
2013-06-30 21:29:12 +02:00
|
|
|
bool "Enable compiler tls support" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
2013-06-30 21:28:59 +02:00
|
|
|
default y
|
2016-05-17 00:13:00 +02:00
|
|
|
depends on BR2_PTHREADS_NATIVE || BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
2013-06-30 21:28:59 +02:00
|
|
|
help
|
|
|
|
Enable the compiler to generate code for accessing
|
|
|
|
thread local storage variables
|
|
|
|
|
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
|
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"
|
|
|
|
depends on BR2_GCC_SUPPORTS_GRAPHITE
|
|
|
|
help
|
|
|
|
This option enables the graphite optimizations in the
|
|
|
|
compiler.
|