mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-21 13:47:48 +00:00
23aef79883
Signed-off-by: Alexey Neyman <stilor@att.net>
323 lines
7.7 KiB
Plaintext
323 lines
7.7 KiB
Plaintext
# Compiler options
|
|
#
|
|
## default y
|
|
## select CC_SUPPORT_CXX if !LIBC_none
|
|
## select CC_SUPPORT_FORTRAN
|
|
## select CC_SUPPORT_JAVA
|
|
## select CC_SUPPORT_ADA
|
|
## select CC_SUPPORT_OBJC
|
|
## select CC_SUPPORT_OBJCXX
|
|
##
|
|
## help gcc is the full-blown GNU compiler. This is what most people will choose.
|
|
## help
|
|
## help gcc supports many languages, a powerful code parser, optimised binary
|
|
## help output, and lots of other features.
|
|
|
|
config CC_GCC_CUSTOM
|
|
bool
|
|
prompt "Custom gcc"
|
|
depends on EXPERIMENTAL
|
|
select CC_GCC_latest
|
|
help
|
|
The choosen gcc version shall be not downloaded. Instead use
|
|
a custom location to get the source.
|
|
|
|
if CC_GCC_CUSTOM
|
|
|
|
config CC_GCC_CUSTOM_LOCATION
|
|
string
|
|
prompt "Full path to custom gcc source"
|
|
help
|
|
Enter the path to the directory or tarball of your source for gcc.
|
|
|
|
If the path is a tarball, it should extract to: <name>-<version>/
|
|
where the name is this component, gcc, and the version is set
|
|
below in the custom version string.
|
|
|
|
config CC_GCC_CUSTOM_VERSION
|
|
string
|
|
prompt "Custom GCC Version"
|
|
help
|
|
Enter the version number for your custom gcc.
|
|
|
|
config CC_GCC_VERSION
|
|
string
|
|
default CC_GCC_CUSTOM_VERSION
|
|
|
|
endif #CC_GCC_CUSTOM
|
|
|
|
if ! CC_GCC_CUSTOM
|
|
|
|
config CC_GCC_SHOW_LINARO
|
|
bool
|
|
prompt "Show Linaro versions"
|
|
help
|
|
Linaro is maintaining some advanced/more stable/experimental versions
|
|
of gcc, especially for the ARM architecture.
|
|
|
|
Those versions have not been blessed by the gcc comunity (nor have they
|
|
been cursed either!), but they look to be pretty much stable, and even
|
|
more stable than the upstream versions. YMMV...
|
|
|
|
If you do not know what this Linaro stuff is, then simply say 'n' here,
|
|
and rest in peace. OTOH, if you know what you are doing, you will be
|
|
able to use and enjoy :-) the Linaro versions by saying 'y' here.
|
|
|
|
Linaro: http://www.linaro.org/
|
|
|
|
choice
|
|
bool
|
|
prompt "gcc version"
|
|
|
|
# Don't remove next line
|
|
# CT_INSERT_VERSION_BELOW
|
|
|
|
config CC_GCC_V_6_3_0
|
|
bool
|
|
prompt "6.3.0"
|
|
select CC_GCC_6
|
|
|
|
config CC_GCC_V_linaro_6_2
|
|
bool
|
|
prompt "linaro-6.2-2016.11"
|
|
depends on CC_GCC_SHOW_LINARO
|
|
select CC_GCC_6
|
|
|
|
config CC_GCC_V_5_4_0
|
|
bool
|
|
prompt "5.4.0"
|
|
select CC_GCC_5
|
|
|
|
config CC_GCC_V_linaro_5_3
|
|
bool
|
|
prompt "linaro-5.3-2016.05 (OBSOLETE)"
|
|
depends on CC_GCC_SHOW_LINARO
|
|
depends on OBSOLETE
|
|
select CC_GCC_5
|
|
|
|
config CC_GCC_V_linaro_4_9
|
|
bool
|
|
prompt "linaro-4.9-2016.02 (OBSOLETE)"
|
|
depends on CC_GCC_SHOW_LINARO
|
|
depends on OBSOLETE
|
|
select CC_GCC_4_9
|
|
|
|
config CC_GCC_V_4_9_4
|
|
bool
|
|
prompt "4.9.4 (OBSOLETE)"
|
|
depends on OBSOLETE
|
|
select CC_GCC_4_9
|
|
|
|
config CC_GCC_V_linaro_4_8
|
|
bool
|
|
prompt "linaro-4.8-2015.06 (OBSOLETE)"
|
|
depends on CC_GCC_SHOW_LINARO
|
|
depends on OBSOLETE
|
|
select CC_GCC_4_8
|
|
|
|
config CC_GCC_V_4_8_5
|
|
bool
|
|
prompt "4.8.5 (OBSOLETE)"
|
|
select CC_GCC_4_8
|
|
depends on OBSOLETE
|
|
|
|
endchoice
|
|
|
|
endif # ! CC_GCC_CUSTOM
|
|
|
|
config CC_GCC_4_8
|
|
bool
|
|
select CC_GCC_4_8_or_later
|
|
select CC_GCC_USE_GMP_MPFR
|
|
select CC_GCC_USE_MPC
|
|
select CC_GCC_HAS_GRAPHITE
|
|
select CC_GCC_HAS_LTO
|
|
select CC_GCC_HAS_PKGVERSION_BUGURL
|
|
select CC_GCC_HAS_BUILD_ID
|
|
select CC_GCC_HAS_LNK_HASH_STYLE
|
|
select CC_GCC_HAS_LIBQUADMATH
|
|
select CC_GCC_HAS_LIBSANITIZER
|
|
select CC_SUPPORT_GOLANG
|
|
|
|
config CC_GCC_4_8_or_later
|
|
bool
|
|
|
|
config CC_GCC_4_9
|
|
bool
|
|
select CC_GCC_4_9_or_later
|
|
select CC_GCC_USE_GMP_MPFR
|
|
select CC_GCC_USE_MPC
|
|
select CC_GCC_HAS_GRAPHITE
|
|
select CC_GCC_HAS_LTO
|
|
select CC_GCC_HAS_PKGVERSION_BUGURL
|
|
select CC_GCC_HAS_BUILD_ID
|
|
select CC_GCC_HAS_LNK_HASH_STYLE
|
|
select CC_GCC_HAS_LIBQUADMATH
|
|
select CC_GCC_HAS_LIBSANITIZER
|
|
select CC_SUPPORT_GOLANG
|
|
|
|
config CC_GCC_4_9_or_later
|
|
bool
|
|
select CC_GCC_4_8_or_later
|
|
|
|
config CC_GCC_5
|
|
bool
|
|
select CC_GCC_5_or_later
|
|
select CC_GCC_USE_GMP_MPFR
|
|
select CC_GCC_USE_MPC
|
|
select CC_GCC_HAS_GRAPHITE
|
|
select CC_GCC_HAS_LTO
|
|
select CC_GCC_HAS_PKGVERSION_BUGURL
|
|
select CC_GCC_HAS_BUILD_ID
|
|
select CC_GCC_HAS_LNK_HASH_STYLE
|
|
select CC_GCC_HAS_LIBQUADMATH
|
|
select CC_GCC_HAS_LIBSANITIZER
|
|
select CC_GCC_HAS_LIBMPX
|
|
select CC_SUPPORT_GOLANG
|
|
|
|
config CC_GCC_5_or_later
|
|
bool
|
|
select CC_GCC_4_9_or_later
|
|
|
|
config CC_GCC_6
|
|
bool
|
|
select CC_GCC_6_or_later
|
|
select CC_GCC_USE_GMP_MPFR
|
|
select CC_GCC_USE_MPC
|
|
select CC_GCC_HAS_GRAPHITE
|
|
select CC_GCC_HAS_LTO
|
|
select CC_GCC_HAS_PKGVERSION_BUGURL
|
|
select CC_GCC_HAS_BUILD_ID
|
|
select CC_GCC_HAS_LNK_HASH_STYLE
|
|
select CC_GCC_HAS_LIBQUADMATH
|
|
select CC_GCC_HAS_LIBSANITIZER
|
|
select CC_GCC_HAS_LIBMPX
|
|
select CC_SUPPORT_GOLANG
|
|
|
|
config CC_GCC_6_or_later
|
|
bool
|
|
select CC_GCC_5_or_later
|
|
|
|
config CC_GCC_latest
|
|
bool
|
|
select CC_GCC_6_or_later
|
|
select CC_GCC_USE_GMP_MPFR
|
|
select CC_GCC_USE_MPC
|
|
select CC_GCC_HAS_GRAPHITE
|
|
select CC_GCC_HAS_LTO
|
|
select CC_GCC_HAS_PKGVERSION_BUGURL
|
|
select CC_GCC_HAS_BUILD_ID
|
|
select CC_GCC_HAS_LNK_HASH_STYLE
|
|
select CC_GCC_HAS_LIBQUADMATH
|
|
select CC_GCC_HAS_LIBSANITIZER
|
|
|
|
config CC_GCC_HAS_GRAPHITE
|
|
bool
|
|
|
|
# For graphite: gcc needs cloog and isl
|
|
# In >= gcc-5.x, cloog is no longer needed, but isl is.
|
|
# Prompt in config/cc/gcc.in.2
|
|
config CC_GCC_USE_GRAPHITE
|
|
bool
|
|
default y
|
|
depends on CC_GCC_HAS_GRAPHITE
|
|
select CLOOG_NEEDED if !CC_GCC_5_or_later
|
|
select ISL_NEEDED
|
|
help
|
|
Enable the GRAPHITE loop optimsations.
|
|
|
|
On some systems (eg. Cygwin), CLooG and ISL (required to enable
|
|
GRAPHITE) may not build properly (yet), so you'll have to say 'N'
|
|
here (or help debug the issues)
|
|
|
|
TODO: Is this still true on Cygwin?
|
|
|
|
# The way LTO works is a bit twisted.
|
|
# See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
|
|
# Basically:
|
|
# - if binutils has plugins: LTO is handled by ld/gold by loading
|
|
# the plugin when linking
|
|
# - if binutils does not have plugins: LTO is handled by collect2
|
|
# In any case, LTO support does not depend on plugins, but takes
|
|
# advantage of it
|
|
config CC_GCC_HAS_LTO
|
|
bool
|
|
|
|
# Prompt in config/cc/gcc.in.2
|
|
config CC_GCC_USE_LTO
|
|
bool
|
|
default y
|
|
depends on CC_GCC_HAS_LTO
|
|
help
|
|
Enable the Link Time Optimisations.
|
|
|
|
config CC_GCC_HAS_PKGVERSION_BUGURL
|
|
bool
|
|
|
|
config CC_GCC_HAS_BUILD_ID
|
|
bool
|
|
|
|
config CC_GCC_HAS_LNK_HASH_STYLE
|
|
bool
|
|
|
|
# Only enable gcc's support for plugins if binutils has it as well
|
|
# They are useful only when doing LTO, but it does no harm enabling
|
|
# them even without LTO.
|
|
config CC_GCC_ENABLE_PLUGINS
|
|
bool
|
|
depends on BINUTILS_PLUGINS
|
|
depends on ! STATIC_TOOLCHAIN
|
|
default y
|
|
|
|
# If binutils installs gold, enable support for gold in gcc
|
|
config CC_GCC_GOLD
|
|
bool
|
|
depends on BINUTILS_GOLD_INSTALLED
|
|
default y
|
|
|
|
config CC_GCC_USE_GMP_MPFR
|
|
bool
|
|
select GMP_NEEDED
|
|
select MPFR_NEEDED
|
|
|
|
config CC_GCC_USE_MPC
|
|
bool
|
|
select MPC_NEEDED
|
|
|
|
config CC_GCC_HAS_LIBQUADMATH
|
|
bool
|
|
|
|
config CC_GCC_HAS_LIBSANITIZER
|
|
bool
|
|
|
|
config CC_GCC_HAS_LIBMPX
|
|
bool
|
|
|
|
if ! CC_GCC_CUSTOM
|
|
|
|
config CC_GCC_VERSION
|
|
string
|
|
# Don't remove next line
|
|
# CT_INSERT_VERSION_STRING_BELOW
|
|
default "6.3.0" if CC_GCC_V_6_3_0
|
|
default "linaro-6.2-2016.11" if CC_GCC_V_linaro_6_2
|
|
default "5.4.0" if CC_GCC_V_5_4_0
|
|
default "linaro-5.3-2016.05" if CC_GCC_V_linaro_5_3
|
|
default "linaro-4.9-2016.02" if CC_GCC_V_linaro_4_9
|
|
default "4.9.4" if CC_GCC_V_4_9_4
|
|
default "linaro-4.8-2015.06" if CC_GCC_V_linaro_4_8
|
|
default "4.8.5" if CC_GCC_V_4_8_5
|
|
|
|
endif # ! CC_GCC_CUSTOM
|
|
|
|
config CC_LANG_JAVA_USE_ECJ
|
|
bool
|
|
default y
|
|
depends on CC_LANG_JAVA
|
|
|
|
# Fortran always requires GMP+MPFR, whatever the gcc version
|
|
config CC_LANG_FORTRAN
|
|
select CC_GCC_USE_GMP_MPFR
|
|
|
|
source "config/cc/gcc.in.2"
|