diff options
-rw-r--r-- | config/cc/gcc.in | 119 | ||||
-rw-r--r-- | config/cc/gcc.in.2 | 29 | ||||
-rw-r--r-- | config/companion_libs.in | 6 | ||||
-rw-r--r-- | config/libc/newlib.in.2 | 1 | ||||
-rw-r--r-- | scripts/build/cc/100-gcc.sh | 82 | ||||
-rw-r--r-- | scripts/build/companion_libs/220-ncurses.sh | 15 |
6 files changed, 72 insertions, 180 deletions
diff --git a/config/cc/gcc.in b/config/cc/gcc.in index c1996e91..e2fb8dba 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -7,6 +7,7 @@ ## select CC_SUPPORT_ADA ## select CC_SUPPORT_OBJC ## select CC_SUPPORT_OBJCXX +## select CC_SUPPORT_GOLANG ## ## help gcc is the full-blown GNU compiler. This is what most people will choose. ## help @@ -128,16 +129,6 @@ 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 @@ -145,16 +136,6 @@ config CC_GCC_4_8_or_later 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 @@ -163,17 +144,7 @@ config CC_GCC_4_9_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 @@ -182,17 +153,7 @@ config CC_GCC_5_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 @@ -201,64 +162,7 @@ config CC_GCC_6_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 + select CC_GCC_HAS_LIBMPX # 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 @@ -275,21 +179,6 @@ config CC_GCC_GOLD 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 @@ -315,8 +204,4 @@ config CC_LANG_JAVA_USE_ECJ 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" diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2 index aad488b4..638bfe93 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -96,8 +96,22 @@ config CC_GCC_SYSTEM_ZLIB comment "Optimisation features" # Defined in config/cc/gcc.in +# 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 - prompt "Enable GRAPHITE loop optimisations" + bool "Enable GRAPHITE loop optimisations" + default y + 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 @@ -107,11 +121,12 @@ config CC_GCC_USE_GRAPHITE # - 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 -# Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped -# the dependency. -# Defined in config/cc/gcc.in config CC_GCC_USE_LTO - prompt "Enable LTO" + bool "Enable LTO" + default y + depends on ! STATIC_TOOLCHAIN + help + Enable the Link Time Optimisations. #----------------------------------------------------------------------------- comment "Settings for libraries running on target" @@ -163,7 +178,6 @@ config CC_GCC_LIBSSP config CC_GCC_LIBQUADMATH bool prompt "Compile libquadmath" - depends on CC_GCC_HAS_LIBQUADMATH help libquadmath is a library which provides quad-precision mathematical functions on targets supporting the __float128 datatype. See: @@ -174,7 +188,6 @@ config CC_GCC_LIBQUADMATH config CC_GCC_LIBSANITIZER bool prompt "Compile libsanitizer" - depends on CC_GCC_HAS_LIBSANITIZER depends on THREADS_NATIVE depends on ! LIBC_uClibc && ! LIBC_musl # Currently lacks required headers (like netrom.h) help @@ -258,7 +271,6 @@ config CC_GCC_LDBL_128 config CC_GCC_BUILD_ID bool prompt "Enable build-id" - depends on CC_GCC_HAS_BUILD_ID help Tells GCC to pass --build-id option to the linker for all final links (links performed without the -r or --relocatable option), @@ -271,7 +283,6 @@ config CC_GCC_BUILD_ID choice CC_GCC_LNK_HASH_STYLE_CHOICE bool prompt "linker hash style" - depends on CC_GCC_HAS_LNK_HASH_STYLE depends on BINUTILS_HAS_HASH_STYLE config CC_GCC_LNK_HASH_STYLE_DEFAULT diff --git a/config/companion_libs.in b/config/companion_libs.in index 02f2ecb2..fae49ec0 100644 --- a/config/companion_libs.in +++ b/config/companion_libs.in @@ -19,12 +19,12 @@ config GETTEXT_NEEDED select COMPLIBS_NEEDED config GMP_NEEDED - bool + def_bool y select GMP select COMPLIBS_NEEDED config MPFR_NEEDED - bool + def_bool y select MPFR select COMPLIBS_NEEDED @@ -39,7 +39,7 @@ config CLOOG_NEEDED select COMPLIBS_NEEDED config MPC_NEEDED - bool + def_bool y select MPC select COMPLIBS_NEEDED diff --git a/config/libc/newlib.in.2 b/config/libc/newlib.in.2 index 927cce89..96bd22bf 100644 --- a/config/libc/newlib.in.2 +++ b/config/libc/newlib.in.2 @@ -140,6 +140,7 @@ config LIBC_NEWLIB_ENABLE_TARGET_OPTSPACE config LIBC_NEWLIB_LTO bool prompt "Enable Link Time Optimization" + depends on CC_GCC_USE_LTO help Builds the libraries with -flto to enable more aggressive link time optimization. You will need to add -flto-partition=one to your diff --git a/scripts/build/cc/100-gcc.sh b/scripts/build/cc/100-gcc.sh index 6d5a6af2..48f51220 100644 --- a/scripts/build/cc/100-gcc.sh +++ b/scripts/build/cc/100-gcc.sh @@ -411,10 +411,9 @@ do_gcc_core_backend() { fi done - if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then - extra_config+=("--with-pkgversion=${CT_PKGVERSION}") - [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}") - fi + extra_config+=("--with-pkgversion=${CT_PKGVERSION}") + [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}") + if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then extra_config+=("--enable-__cxa_atexit") else @@ -435,14 +434,12 @@ do_gcc_core_backend() { else extra_config+=(--disable-libssp) fi - if [ "${CT_CC_GCC_HAS_LIBQUADMATH}" = "y" ]; then - if [ "${CT_CC_GCC_LIBQUADMATH}" = "y" ]; then - extra_config+=(--enable-libquadmath) - extra_config+=(--enable-libquadmath-support) - else - extra_config+=(--disable-libquadmath) - extra_config+=(--disable-libquadmath-support) - fi + if [ "${CT_CC_GCC_LIBQUADMATH}" = "y" ]; then + extra_config+=(--enable-libquadmath) + extra_config+=(--enable-libquadmath-support) + else + extra_config+=(--disable-libquadmath) + extra_config+=(--disable-libquadmath-support) fi core_LDFLAGS+=("${ldflags}") @@ -479,13 +476,9 @@ do_gcc_core_backend() { core_LDFLAGS+=("-lm") fi - if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then - extra_config+=("--with-gmp=${complibs}") - extra_config+=("--with-mpfr=${complibs}") - fi - if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then - extra_config+=("--with-mpc=${complibs}") - fi + extra_config+=("--with-gmp=${complibs}") + extra_config+=("--with-mpfr=${complibs}") + extra_config+=("--with-mpc=${complibs}") if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then if [ "${CT_ISL}" = "y" ]; then extra_config+=("--with-isl=${complibs}") @@ -493,13 +486,13 @@ do_gcc_core_backend() { if [ "${CT_CLOOG}" = "y" ]; then extra_config+=("--with-cloog=${complibs}") fi - elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then + else extra_config+=("--with-isl=no") extra_config+=("--with-cloog=no") fi if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then extra_config+=("--enable-lto") - elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then + else extra_config+=("--disable-lto") fi @@ -893,10 +886,9 @@ do_gcc_backend() { done [ "${CT_SHARED_LIBS}" = "y" ] || extra_config+=("--disable-shared") - if [ "${CT_CC_GCC_HAS_PKGVERSION_BUGURL}" = "y" ]; then - extra_config+=("--with-pkgversion=${CT_PKGVERSION}") - [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}") - fi + extra_config+=("--with-pkgversion=${CT_PKGVERSION}") + [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}") + case "${CT_CC_GCC_SJLJ_EXCEPTIONS}" in y) extra_config+=("--enable-sjlj-exceptions");; m) ;; @@ -930,22 +922,18 @@ do_gcc_backend() { else extra_config+=(--disable-libssp) fi - if [ "${CT_CC_GCC_HAS_LIBQUADMATH}" = "y" ]; then - if [ "${CT_CC_GCC_LIBQUADMATH}" = "y" ]; then - extra_config+=(--enable-libquadmath) - extra_config+=(--enable-libquadmath-support) - else - extra_config+=(--disable-libquadmath) - extra_config+=(--disable-libquadmath-support) - fi + if [ "${CT_CC_GCC_LIBQUADMATH}" = "y" ]; then + extra_config+=(--enable-libquadmath) + extra_config+=(--enable-libquadmath-support) + else + extra_config+=(--disable-libquadmath) + extra_config+=(--disable-libquadmath-support) fi - if [ "${CT_CC_GCC_HAS_LIBSANITIZER}" = "y" ]; then - if [ "${CT_CC_GCC_LIBSANITIZER}" = "y" ]; then - extra_config+=(--enable-libsanitizer) - else - extra_config+=(--disable-libsanitizer) - fi + if [ "${CT_CC_GCC_LIBSANITIZER}" = "y" ]; then + extra_config+=(--enable-libsanitizer) + else + extra_config+=(--disable-libsanitizer) fi if [ "${CT_CC_GCC_HAS_LIBMPX}" = "y" ]; then @@ -990,13 +978,9 @@ do_gcc_backend() { final_LDFLAGS+=("-lm") fi - if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then - extra_config+=("--with-gmp=${complibs}") - extra_config+=("--with-mpfr=${complibs}") - fi - if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then - extra_config+=("--with-mpc=${complibs}") - fi + extra_config+=("--with-gmp=${complibs}") + extra_config+=("--with-mpfr=${complibs}") + extra_config+=("--with-mpc=${complibs}") if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then if [ "${CT_ISL}" = "y" ]; then extra_config+=("--with-isl=${complibs}") @@ -1004,13 +988,13 @@ do_gcc_backend() { if [ "${CT_CLOOG}" = "y" ]; then extra_config+=("--with-cloog=${complibs}") fi - elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then + else extra_config+=("--with-isl=no") extra_config+=("--with-cloog=no") fi if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then extra_config+=("--enable-lto") - elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then + else extra_config+=("--disable-lto") fi @@ -1058,6 +1042,8 @@ do_gcc_backend() { if [ "${CT_CC_GCC_ENABLE_PLUGINS}" = "y" ]; then extra_config+=( --enable-plugin ) + else + extra_config+=( --disable-plugin ) fi if [ "${CT_CC_GCC_GOLD}" = "y" ]; then extra_config+=( --enable-gold ) diff --git a/scripts/build/companion_libs/220-ncurses.sh b/scripts/build/companion_libs/220-ncurses.sh index 962e8ad7..573523b4 100644 --- a/scripts/build/companion_libs/220-ncurses.sh +++ b/scripts/build/companion_libs/220-ncurses.sh @@ -39,7 +39,10 @@ do_ncurses_for_build() { case "${CT_TOOLCHAIN_TYPE}" in native|cross) if [ "${CT_NCURSES_HOST_DISABLE_DB}" = "y" ]; then - opts+=( "--disable-database" "--with-fallbacks=${CT_NCURSES_HOST_FALLBACKS}" ) + opts+=( "--disable-database" ) + fi + if [ -n "${CT_NCURSES_HOST_FALLBACKS}" ]; then + opts+=( "--with-fallbacks=${CT_NCURSES_HOST_FALLBACKS}" ) fi opts+=( "${CT_NCURSES_HOST_CONFIG_ARGS[@]}" ) ;; @@ -73,7 +76,10 @@ do_ncurses_for_host() { "--without-cxx-binding" \ "--without-ada" ) if [ "${CT_NCURSES_HOST_DISABLE_DB}" = "y" ]; then - opts+=( "--disable-database" "--with-fallbacks=${CT_NCURSES_HOST_FALLBACKS}" ) + opts+=( "--disable-database" ) + fi + if [ -n "${CT_NCURSES_HOST_FALLBACKS}" ]; then + opts+=( "--with-fallbacks=${CT_NCURSES_HOST_FALLBACKS}" ) fi opts+=( "${CT_NCURSES_HOST_CONFIG_ARGS[@]}" ) do_ncurses_backend host="${CT_HOST}" \ @@ -96,7 +102,10 @@ do_ncurses_for_target() { [ "${CT_CC_LANG_CXX}" = "y" ] || opts+=("--without-cxx" "--without-cxx-binding") [ "${CT_CC_LANG_ADA}" = "y" ] || opts+=("--without-ada") if [ "${CT_NCURSES_TARGET_DISABLE_DB}" = "y" ]; then - opts+=( "--disable-database" "--with-fallbacks=${CT_NCURSES_TARGET_FALLBACKS}" ) + opts+=( "--disable-database" ) + fi + if [ -n "${CT_NCURSES_TARGET_FALLBACKS}" ]; then + opts+=( "--with-fallbacks=${CT_NCURSES_TARGET_FALLBACKS}" ) fi opts+=( "${CT_NCURSES_TARGET_CONFIG_ARGS[@]}" ) case "${CT_TARGET}" in |