From mboxrd@z Thu Jan 1 00:00:00 1970 From: Romain Naour Date: Sat, 7 Oct 2017 11:59:57 +0200 Subject: [Buildroot] [PATCH 1/8] arch: introduce minimal required gcc version In-Reply-To: <8de5375c8ca0110ebd5baaec946fed002cc7eb80.1504431850.git.yann.morin.1998@free.fr> References: <8de5375c8ca0110ebd5baaec946fed002cc7eb80.1504431850.git.yann.morin.1998@free.fr> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Yann, All, Le 03/09/2017 ? 11:44, Yann E. MORIN a ?crit?: > Some CPU variants require that a recent-enough gcc be selected. For > example, ARM's cortex-a35 requires gcc-5, while cortex-a73 requires > gcc-7. Same goes for other architectures, of course. > > Currently, we hard-code every such conditions in the gcc version choice, > as well as in the individual external toolchains. > > However, as we add even more CPU variants, the conditions are getting > more and more complex to write and maintain. > > Introduce new symbols, that architectures can select if they have a > specific requirement on the gcc version. gcc and external toolchains > can then properly depend on those symbols. > > The burden of maintaining the requirements on the gcc version now falls > down to the architeture, instead of being split up in gcc and all the > external toolchains. > > As the oldest gcc version to handle, we can either choose gcc-4.9, as > the odlest version we support in our internal toolchain, or choose > gcc-4.8, as the oldest external toolchain we support (except for the > custom ones, but they'll be handled specifically in upcoming changes). > We choose to go back up to gcc-4.8. > > Signed-off-by: "Yann E. MORIN" > Cc: Thomas Petazzoni > --- > arch/Config.in | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/arch/Config.in b/arch/Config.in > index c10bf16809..607da36c1d 100644 > --- a/arch/Config.in > +++ b/arch/Config.in > @@ -261,6 +261,27 @@ config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT > bool > default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT > > +# The following symbols are selected by the individual > +# Config.in.$ARCH files I believe something is missing from this patch. Best regards, Romain > +config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8 > + bool > + > +config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 > + bool > + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8 > + > +config BR2_ARCH_NEEDS_GCC_AT_LEAST_5 > + bool > + select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 > + > +config BR2_ARCH_NEEDS_GCC_AT_LEAST_6 > + bool > + select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 > + > +config BR2_ARCH_NEEDS_GCC_AT_LEAST_7 > + bool > + select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 > + > # The following string values are defined by the individual > # Config.in.$ARCH files > config BR2_ARCH >