All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/8] arch: introduce minimal required gcc version
Date: Sun,  3 Sep 2017 11:44:27 +0200	[thread overview]
Message-ID: <8de5375c8ca0110ebd5baaec946fed002cc7eb80.1504431850.git.yann.morin.1998@free.fr> (raw)
In-Reply-To: <cover.1504431850.git.yann.morin.1998@free.fr>

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" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 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
+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
-- 
2.11.0

  reply	other threads:[~2017-09-03  9:44 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-03  9:22 [Buildroot] [PATCH 0/5 v2] arch: not all have support in the internal backend Yann E. MORIN
2017-09-03  9:22 ` [Buildroot] [PATCH 1/5 v2] arch: add option to disable internal toolchain backend Yann E. MORIN
2017-09-03  9:22 ` [Buildroot] [PATCH 2/5 v2] arch/csky: internal backend not suitable Yann E. MORIN
2017-09-03  9:22 ` [Buildroot] [PATCH 3/5 v2] arch/mips: internal backend not suitable for some cores Yann E. MORIN
2017-09-03  9:22 ` [Buildroot] [PATCH 4/5 v2] arch/bfin: " Yann E. MORIN
2017-09-03  9:22 ` [Buildroot] [PATCH 5/5 v2] arc/bfin: remove 60x cores Yann E. MORIN
2017-09-03  9:44 ` [Buildroot] [PATCH 0/8] arch: some require a minimal gcc version Yann E. MORIN
2017-09-03  9:44   ` Yann E. MORIN [this message]
2017-10-07  9:59     ` [Buildroot] [PATCH 1/8] arch: introduce minimal required " Romain Naour
2017-10-07 10:26       ` Yann E. MORIN
2017-09-03  9:44   ` [Buildroot] [PATCH 2/8] package/gcc: hide versions too old for the current arch Yann E. MORIN
2017-09-03  9:44   ` [Buildroot] [PATCH 3/8] toolchain/external-custom: " Yann E. MORIN
2017-10-07  9:27     ` Romain Naour
2017-10-07 12:27       ` Yann E. MORIN
2017-09-03  9:44   ` [Buildroot] [PATCH 4/8] toolchain/external: " Yann E. MORIN
2017-10-07  9:57     ` Romain Naour
2017-10-07 12:15       ` Yann E. MORIN
2017-10-07 19:55         ` Romain Naour
2017-09-03  9:44   ` [Buildroot] [PATCH 5/8] arch/bfin: needs gcc >= 6 Yann E. MORIN
2017-09-03  9:44   ` [Buildroot] [PATCH 6/8] arch/mips: some variants need different gcc versions Yann E. MORIN
2017-09-03  9:44   ` [Buildroot] [PATCH 7/8] arch/arm: " Yann E. MORIN
2017-09-03  9:44   ` [Buildroot] [PATCH 8/8] package/gcc: slight cleanup and reorg in remaining arch depends Yann E. MORIN
2017-09-03  9:53   ` [Buildroot] [PATCH 0/3] arch: fix MIPS NaN and floating-point handling Yann E. MORIN
2017-09-03  9:53     ` [Buildroot] [PATCH 1/3] arch/mips: inverse the NaN logic Yann E. MORIN
2017-10-07 10:18       ` Romain Naour
2017-10-07 12:22         ` Yann E. MORIN
2017-10-07 18:43           ` Romain Naour
2017-09-03  9:53     ` [Buildroot] [PATCH 2/3] arch/mips: inverse the mfpxx logic Yann E. MORIN
2017-09-03  9:53     ` [Buildroot] [PATCH 3/3] toolchain/buildroot: glibc requires header >= 4.5 with NaN-2008 Yann E. MORIN
2017-09-03 13:17     ` [Buildroot] [pull request] arch/arm: add some new armv8a cores Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 1/9] arch/arm: re-order cores choice Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 2/9] arch/arm: simplify hiding non 64-bit cores Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 3/9] arch/arm: armv8 is really armv8a Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 4/9] arch/arm: do not allow soft-float for armv8a Yann E. MORIN
2017-09-04 17:21         ` Yann E. MORIN
2017-11-24 22:08           ` Thomas Petazzoni
2017-11-25 17:10             ` Arnout Vandecappelle
2017-11-26 11:12               ` Yann E. MORIN
2017-11-26 11:18                 ` Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 5/9] arch/arm: add cortex-A32 Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 6/9] arch/arm: add some armv8a cortex variants Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 7/9] arch/arm: add some non-cortex armv8a cores Yann E. MORIN
2017-09-03 14:04         ` Thomas Petazzoni
2017-09-03 15:16           ` Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 8/9] arch/arm: add armv8.1a cores Yann E. MORIN
2017-09-03 13:17       ` [Buildroot] [PATCH 9/9] [DON'T COMMIT] tests for all new arm cores Yann E. MORIN
2017-09-03 13:24       ` [Buildroot] [pull request] arch/arm: add some new armv8a cores Yann E. MORIN
2017-11-24 22:32       ` Thomas Petazzoni
2017-11-24 21:58     ` [Buildroot] [PATCH 0/3] arch: fix MIPS NaN and floating-point handling Thomas Petazzoni
2017-11-24 21:23   ` [Buildroot] [PATCH 0/8] arch: some require a minimal gcc version Thomas Petazzoni
2017-10-02 19:47 ` [Buildroot] [PATCH 0/5 v2] arch: not all have support in the internal backend Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8de5375c8ca0110ebd5baaec946fed002cc7eb80.1504431850.git.yann.morin.1998@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.