From 2a89c32193658d2fde1240908a0e367899a41212 Mon Sep 17 00:00:00 2001 From: Bryan Hundven <bryanhundven@gmail.com> Date: Sat, 21 Nov 2015 02:10:50 -0800 Subject: [PATCH] gcc: Remove gcc <= 4.7.x As per #222, in crosstool-NG >= 1.23.0, we will only support: [upstream supported gcc versions] - 1 As of this writing, these versions are: * 5.2.0 * 4.9.3 * 4.8.5 (the -1, since development on 4.8.x is now closed) I plan to keep 4.8.5 around because of some architectures having issues with over-optimization or just faulty optimization in the 4.9.x and possibly newer versions. I also cleaned up a requirement for glibc to depend on >= gcc-4.6.x for >= glibc-2.20, but since the lowest gcc we support after this change is >= 4.8.5, this condition can go away. Patches for older gcc versions are removed in the next commit. This closes #222 Signed-off-by: Bryan Hundven <bryanhundven@gmail.com> --- config/cc/gcc.in | 144 +----------------------------------- config/cc/gcc.in.2 | 7 +- config/global/paths.in | 1 - config/libc/glibc.in | 10 +-- scripts/build/cc/100-gcc.sh | 27 ++----- 5 files changed, 13 insertions(+), 176 deletions(-) diff --git a/config/cc/gcc.in b/config/cc/gcc.in index e67e4354..bbc46bc4 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -64,60 +64,6 @@ config CC_GCC_V_4_8_5 prompt "4.8.5" select CC_GCC_4_8 -config CC_GCC_V_linaro_4_7 - bool - prompt "linaro-4.7-2014.06" - depends on CC_GCC_SHOW_LINARO - select CC_GCC_4_7 - -config CC_GCC_V_4_7_4 - bool - prompt "4.7.4" - select CC_GCC_4_7 - -config CC_GCC_V_linaro_4_6 - bool - prompt "linaro-4.6-2013.05" - depends on CC_GCC_SHOW_LINARO - select CC_GCC_4_6 - -config CC_GCC_V_4_6_4 - bool - prompt "4.6.4" - select CC_GCC_4_6 - -config CC_GCC_V_linaro_4_5 - bool - prompt "linaro-4.5-2012.03" - depends on CC_GCC_SHOW_LINARO - select CC_GCC_4_5 - -config CC_GCC_V_4_5_4 - bool - prompt "4.5.4" - select CC_GCC_4_5 - -config CC_GCC_V_linaro_4_4 - bool - prompt "linaro-4.4-2011.02-0" - depends on CC_GCC_SHOW_LINARO - select CC_GCC_4_4 - -config CC_GCC_V_4_4_7 - bool - prompt "4.4.7" - select CC_GCC_4_4 - -config CC_GCC_V_4_3_6 - bool - prompt "4.3.6" - select CC_GCC_4_3 - -config CC_GCC_V_4_2_4 - bool - prompt "4.2.4" - select CC_GCC_4_2 - endchoice config CC_GCC_CUSTOM @@ -140,79 +86,6 @@ config CC_GCC_CUSTOM_LOCATION endif #CC_GCC_CUSTOM -config CC_GCC_4_2 - bool - select CC_GCC_4_2_or_later - -config CC_GCC_4_2_or_later - bool - -config CC_GCC_4_3 - bool - select CC_GCC_4_3_or_later - select CC_GCC_USE_GMP_MPFR - select CC_GCC_HAS_PKGVERSION_BUGURL - -config CC_GCC_4_3_or_later - bool - select CC_GCC_4_2_or_later - -config CC_GCC_4_4 - bool - select CC_GCC_4_4_or_later - select CC_GCC_USE_GMP_MPFR - select CC_GCC_HAS_GRAPHITE - select CC_GCC_HAS_PKGVERSION_BUGURL - -config CC_GCC_4_4_or_later - bool - select CC_GCC_4_3_or_later - -config CC_GCC_4_5 - bool - select CC_GCC_4_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 - -config CC_GCC_4_5_or_later - bool - select CC_GCC_4_4_or_later - -config CC_GCC_4_6 - bool - select CC_GCC_4_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_LIBQUADMATH - -config CC_GCC_4_6_or_later - bool - select CC_GCC_4_5_or_later - -config CC_GCC_4_7 - bool - select CC_GCC_4_7_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 - -config CC_GCC_4_7_or_later - bool - select CC_GCC_4_6_or_later - config CC_GCC_4_8 bool select CC_GCC_4_8_or_later @@ -229,7 +102,6 @@ config CC_GCC_4_8 config CC_GCC_4_8_or_later bool - select CC_GCC_4_7_or_later config CC_GCC_4_9 bool @@ -291,8 +163,7 @@ config CC_GCC_USE_GRAPHITE default y depends on CC_GCC_HAS_GRAPHITE select CLOOG_NEEDED if !CC_GCC_5_or_later - select PPL_NEEDED if !CC_GCC_4_8_or_later - select ISL_NEEDED if CC_GCC_4_8_or_later + select ISL_NEEDED help Enable the GRAPHITE loop optimsations. @@ -316,7 +187,7 @@ config CC_GCC_USE_LTO bool default y depends on CC_GCC_HAS_LTO - select CC_GCC_USE_LIBELF if CC_GCC_4_5 + select CC_GCC_USE_LIBELF help Enable the Link Time Optimisations. @@ -372,22 +243,11 @@ config CC_GCC_VERSION default "4.9.3" if CC_GCC_V_4_9_3 default "linaro-4.8-2015.06" if CC_GCC_V_linaro_4_8 default "4.8.5" if CC_GCC_V_4_8_5 - default "linaro-4.7-2014.06" if CC_GCC_V_linaro_4_7 - default "4.7.4" if CC_GCC_V_4_7_4 - default "linaro-4.6-2013.05" if CC_GCC_V_linaro_4_6 - default "4.6.4" if CC_GCC_V_4_6_4 - default "linaro-4.5-2012.03" if CC_GCC_V_linaro_4_5 - default "4.5.4" if CC_GCC_V_4_5_4 - default "linaro-4.4-2011.02-0" if CC_GCC_V_linaro_4_4 - default "4.4.7" if CC_GCC_V_4_4_7 - default "4.3.6" if CC_GCC_V_4_3_6 - default "4.2.4" if CC_GCC_V_4_2_4 config CC_LANG_JAVA_USE_ECJ bool default y depends on CC_LANG_JAVA - depends on CC_GCC_4_3_or_later # Fortran always requires GMP+MPFR, whatever the gcc version config CC_LANG_FORTRAN diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2 index 577bf42e..b947668c 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -59,13 +59,13 @@ config CC_GCC_TARGET_FINAL tricks are not done and the compiler is build with all/install. config STATIC_TOOLCHAIN - select CC_GCC_STATIC_LIBSTDCXX if CC_GCC_4_4_or_later + bool + select CC_GCC_STATIC_LIBSTDCXX config CC_GCC_STATIC_LIBSTDCXX bool prompt "Link libstdc++ statically into the gcc binary" default y - depends on CC_GCC_4_4_or_later select WANTS_STATIC_LINK help Newer gcc versions use the PPL library which is C++ code. Statically @@ -142,7 +142,7 @@ config CC_GCC_LIBGOMP Interface (API) for multi-platform shared-memory parallel programming in C/C++ and Fortran". See: http://gcc.gnu.org/onlinedocs/libgomp/ - + The default is 'N'. Say 'Y' if you need it, and report success/failure. config CC_GCC_LIBSSP @@ -229,7 +229,6 @@ config CC_GCC_LDBL_128 tristate prompt "Enable 128-bit long doubles" default m - depends on CC_GCC_4_2_or_later help Saying 'Y' will force gcc to use 128-bit wide long doubles Saying 'N' will force gcc to use 64-bit wide long doubles diff --git a/config/global/paths.in b/config/global/paths.in index f3059b9c..96319fac 100644 --- a/config/global/paths.in +++ b/config/global/paths.in @@ -130,7 +130,6 @@ config STRIP_HOST_TOOLCHAIN_EXECUTABLES config STRIP_TARGET_TOOLCHAIN_EXECUTABLES bool prompt "Strip target toolchain executables" - depends on CC_GCC_4_6_or_later help It means using install-strip target for GCC 4.6 or later. An install-strip make target is provided that installs stripped diff --git a/config/libc/glibc.in b/config/libc/glibc.in index 71df5011..c2ba7b91 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -38,12 +38,12 @@ choice config LIBC_GLIBC_V_2_22 bool prompt "2.22" - select LIBC_GLIBC_2_21_or_later + select LIBC_GLIBC_2_20_or_later config LIBC_GLIBC_V_2_21 bool prompt "2.21" - select LIBC_GLIBC_2_21_or_later + select LIBC_GLIBC_2_20_or_later config LIBC_GLIBC_LINARO_V_2_20 bool @@ -141,12 +141,6 @@ config LIBC_GLIBC_CUSTOM endchoice -# glibc 2.21 depends on gcc >= 4.6 -config LIBC_GLIBC_2_21_or_later - bool - depends on CC_GCC_4_6_or_later - select LIBC_GLIBC_2_20_or_later - config LIBC_GLIBC_2_20_or_later bool select LIBC_GLIBC_2_17_or_later diff --git a/scripts/build/cc/100-gcc.sh b/scripts/build/cc/100-gcc.sh index 6ed9e9cd..ea7d2224 100644 --- a/scripts/build/cc/100-gcc.sh +++ b/scripts/build/cc/100-gcc.sh @@ -148,9 +148,7 @@ do_gcc_core_pass_2() { ;; *) core_opts+=( "mode=static" ) - if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then - core_opts+=( "build_libgcc=yes" ) - fi + core_opts+=( "build_libgcc=yes" ) ;; esac @@ -486,16 +484,8 @@ do_gcc_core_backend() { CT_DoExecLog ALL ${make} ${JOBSFLAGS} -C libbacktrace fi - # Starting with GCC 4.3, libgcc.mk is no longer built, - # and libgcc.mvars is used instead. - - if [ "${CT_CC_GCC_4_3_or_later}" = "y" ]; then - libgcc_rule="libgcc.mvars" - core_targets=( gcc target-libgcc ) - else - libgcc_rule="libgcc.mk" - core_targets=( gcc ) - fi + libgcc_rule="libgcc.mvars" + core_targets=( gcc target-libgcc ) # On bare metal and canadian build the host-compiler is used when # actually the build-system compiler is required. Choose the correct @@ -731,10 +721,8 @@ do_gcc_backend() { if [ -n "${CT_CC_GCC_ENABLE_CXX_FLAGS}" ]; then extra_config+=("--enable-cxx-flags=${CT_CC_GCC_ENABLE_CXX_FLAGS}") fi - if [ "${CT_CC_GCC_4_8_or_later}" = "y" ]; then - if [ "${CT_THREADS}" = "none" ]; then - extra_config+=(--disable-libatomic) - fi + if [ "${CT_THREADS}" = "none" ]; then + extra_config+=(--disable-libatomic) fi if [ "${CT_CC_GCC_LIBMUDFLAP}" = "y" ]; then extra_config+=(--enable-libmudflap) @@ -842,10 +830,7 @@ do_gcc_backend() { if [ "${CT_THREADS}" = "none" ]; then extra_config+=("--disable-threads") - if [ "${CT_CC_GCC_4_2_or_later}" = y ]; then - CT_Test "Disabling libgomp for no-thread gcc>=4.2" "${CT_CC_GCC_LIBGOMP}" = "Y" - extra_config+=("--disable-libgomp") - fi + extra_config+=("--disable-libgomp") else if [ "${CT_THREADS}" = "win32" ]; then extra_config+=("--enable-threads=win32")