2fda0dd7d4
This combination causes a compilation failure of the host-gcc-final
recipe like this one:
/br/output/host/usr/mips-buildroot-linux-gnu/bin/ld:
.libs/gload.o: relocation R_MIPS_HI16 against `__gnu_local_gp' can not
be used when making a shared object; recompile with -fPIC
The problem is the file 'libatomic/gload.c' is compiled without -fPIC
when using binutils-2.25. All gcc (with libatomic) versions below 4.9.3
are affected by this issue.
Here is a summary of affected/unaffected versions in Buildroot:
4.7.x: unaffected (doesn't have libatomic)
4.8.x: affected
4.9.x: unaffected (we have 4.9.3 which is fixed)
5.1.x: unaffected
The fix can be found here:
57f5c0954f
However, given the following reasons...
- Upstream gcc 4.8 branch is closed.
- The fix is very hard to backport from 4.9 to 4.8.
- This stuff is insanely sensitive and not working at all could be
better than looking like it works but not quite.
...I think the best choice is to disable that combination in Buildroot.
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
163 lines
4.9 KiB
Plaintext
163 lines
4.9 KiB
Plaintext
comment "GCC Options"
|
|
|
|
config BR2_GCC_NEEDS_MPC
|
|
bool
|
|
|
|
config BR2_GCC_SUPPORTS_GRAPHITE
|
|
bool
|
|
|
|
choice
|
|
prompt "GCC compiler Version"
|
|
default BR2_GCC_VERSION_4_8_ARC if BR2_arc
|
|
default BR2_GCC_VERSION_4_9_X
|
|
help
|
|
Select the version of gcc you wish to use.
|
|
|
|
config BR2_GCC_VERSION_4_5_X
|
|
bool "gcc 4.5.x"
|
|
depends on BR2_DEPRECATED_SINCE_2015_05
|
|
# Broken or unsupported architectures
|
|
depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc \
|
|
&& !BR2_powerpc64le && !BR2_nios2
|
|
# Broken or unsupported ARM cores
|
|
depends on !BR2_cortex_a7 && !BR2_cortex_a12 && \
|
|
!BR2_cortex_a15 && !BR2_fa526 && !BR2_pj4
|
|
# Broken or unsupported PPC cores
|
|
depends on !BR2_powerpc_e5500 && !BR2_powerpc_e6500 && \
|
|
!BR2_powerpc_power8
|
|
# SPARC -mcpu=leon3 appeared in gcc 4.8.x
|
|
depends on !BR2_sparc_leon3
|
|
# Broken or unsupported X86 cores
|
|
depends on !BR2_x86_corei7 && !BR2_x86_jaguar && !BR2_x86_steamroller
|
|
# ARM EABIhf support appeared in gcc 4.6
|
|
depends on !BR2_ARM_EABIHF
|
|
# musl patches only for gcc 4.7+
|
|
depends on !BR2_TOOLCHAIN_BUILDROOT_MUSL
|
|
select BR2_GCC_NEEDS_MPC
|
|
|
|
config BR2_GCC_VERSION_4_7_X
|
|
bool "gcc 4.7.x"
|
|
# Broken or unsupported architectures
|
|
depends on !BR2_microblaze && !BR2_aarch64 && !BR2_arc \
|
|
&& !BR2_powerpc64le && !BR2_nios2
|
|
# Broken or unsupported ARM cores
|
|
depends on !BR2_cortex_a12 && !BR2_pj4
|
|
# Broken or unsupported PPC cores
|
|
depends on !BR2_powerpc_e5500 && !BR2_powerpc_e6500 && \
|
|
!BR2_powerpc_power8
|
|
# SPARC -mcpu=leon3 appeared in gcc 4.8.x
|
|
depends on !BR2_sparc_leon3
|
|
# Broken or unsupported x86 cores
|
|
depends on !BR2_x86_jaguar && !BR2_x86_steamroller
|
|
select BR2_GCC_NEEDS_MPC
|
|
|
|
config BR2_GCC_VERSION_4_8_X
|
|
bool "gcc 4.8.x"
|
|
# Broken or unsupported architectures
|
|
depends on !BR2_microblaze && !BR2_arc \
|
|
&& !BR2_powerpc64le && !BR2_nios2
|
|
# Broken or unsupported ARM cores
|
|
depends on !BR2_cortex_a12
|
|
# Broken or unsupported PPC cores
|
|
depends on !BR2_powerpc_power8
|
|
# gcc-4.8.x + binutils-2.25 is broken for MIPS
|
|
depends on !((BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el) && BR2_BINUTILS_VERSION_2_25)
|
|
select BR2_GCC_NEEDS_MPC
|
|
select BR2_GCC_SUPPORTS_GRAPHITE
|
|
|
|
config BR2_GCC_VERSION_4_8_ARC
|
|
bool "gcc 4.8-arc"
|
|
# Only supported architecture
|
|
depends on BR2_arc
|
|
select BR2_GCC_NEEDS_MPC
|
|
|
|
config BR2_GCC_VERSION_4_9_X
|
|
bool "gcc 4.9.x"
|
|
# Broken or unsupported architectures
|
|
depends on !BR2_arc
|
|
# PR60102 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60102
|
|
select BR2_GCC_NEEDS_MPC
|
|
select BR2_GCC_SUPPORTS_GRAPHITE
|
|
|
|
config BR2_GCC_VERSION_5_1_X
|
|
bool "gcc 5.1.x"
|
|
# Broken or unsupported architectures
|
|
depends on !BR2_arc
|
|
select BR2_GCC_NEEDS_MPC
|
|
select BR2_GCC_SUPPORTS_GRAPHITE
|
|
|
|
endchoice
|
|
|
|
config BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE
|
|
bool
|
|
default y
|
|
|
|
config BR2_GCC_VERSION
|
|
string
|
|
default "4.5.4" if BR2_GCC_VERSION_4_5_X
|
|
default "4.7.4" if BR2_GCC_VERSION_4_7_X
|
|
default "4.8.5" if BR2_GCC_VERSION_4_8_X
|
|
default "4.9.3" if BR2_GCC_VERSION_4_9_X
|
|
default "5.1.0" if BR2_GCC_VERSION_5_1_X
|
|
default "arc-2015.06-rc1" if BR2_GCC_VERSION_4_8_ARC
|
|
|
|
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.
|
|
|
|
config BR2_GCC_ENABLE_TLS
|
|
bool "Enable compiler tls support" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
|
|
default y
|
|
depends on BR2_PTHREADS_NATIVE || BR2_TOOLCHAIN_BUILDROOT_EGLIBC || BR2_TOOLCHAIN_BUILDROOT_GLIBC
|
|
help
|
|
Enable the compiler to generate code for accessing
|
|
thread local storage variables
|
|
|
|
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_GCC_VERSION_4_9_X
|
|
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_GCC_SUPPORTS_GRAPHITE
|
|
help
|
|
This option enables the graphite optimizations in the
|
|
compiler.
|