Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Vincent Fazio <vfazio@gmail.com>
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>,
	Romain Naour <romain.naour@gmail.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 1/1] toolchain/toolchain-external: add BR2_ARCH_NEEDS_GCC_AT_LEAST_X guards
Date: Sun, 13 Aug 2023 18:07:52 +0200	[thread overview]
Message-ID: <20230813160752.GZ421096@scaer> (raw)
In-Reply-To: <20230813044750.5567-1-vfazio@gmail.com>

Vincent, All,

On 2023-08-12 23:47 -0500, Vincent Fazio spake thusly:
> Previously, it was possible to select an external toolchain that did not
> support the GCC arch tuning the user had selected. This is problematic
> because it can lead to confusing error messages during builds [0].
> 
> Now, external toolchain selections will be filtered to only those that
> support the required GCC version specified by the target arch tuning.
> 
> Note: this patch does not touch the Bootlin toolchain config file as it
> is generated by a script.
> 
> Additional note: there is "soft" support for toolchains prior to GCC 4.8
> but there are no accompanying BR2_ARCH_NEEDS_GCC_AT_LEAST_X symbols.
> Instead of adding those, just use BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8 which
> is the minimum GCC version with claimed support [1].
> 
> [0]: https://lists.buildroot.org/pipermail/buildroot/2023-August/671877.html
> [1]: https://buildroot.org/downloads/manual/manual.html#requirement-mandatory
> 
> Signed-off-by: Vincent Fazio <vfazio@gmail.com>

Semantically, this is a fix, so Thomas and I agreed to apply it to
master.

Make it so: applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  .../toolchain-external-arm-aarch64-be/Config.in  |  1 +
>  .../toolchain-external-arm-aarch64/Config.in     |  1 +
>  .../toolchain-external-arm-arm/Config.in         |  1 +
>  .../toolchain-external-custom/Config.in.options  | 16 ++++++++++++++++
>  .../Config.in                                    |  1 +
>  .../toolchain-external-linaro-aarch64/Config.in  |  1 +
>  .../toolchain-external-linaro-arm/Config.in      |  1 +
>  .../toolchain-external-linaro-armeb/Config.in    |  1 +
>  .../toolchain-external-synopsys-arc/Config.in    |  1 +
>  9 files changed, 24 insertions(+)
> 
> diff --git a/toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in b/toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in
> index 62e5ea8667..466b1587c3 100644
> --- a/toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-arm-aarch64-be/Config.in
> @@ -2,6 +2,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64_BE
>  	bool "Arm AArch64 BE 12.2.rel1"
>  	depends on BR2_aarch64_be
>  	depends on BR2_HOSTARCH = "x86_64"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_13
>  	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
>  	select BR2_TOOLCHAIN_HAS_SSP
>  	select BR2_INSTALL_LIBSTDCPP
> diff --git a/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in b/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in
> index 0c2e64192d..fc62b759e5 100644
> --- a/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in
> @@ -2,6 +2,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64
>  	bool "Arm AArch64 12.2.rel1"
>  	depends on BR2_aarch64
>  	depends on BR2_HOSTARCH = "x86_64"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_13
>  	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
>  	select BR2_TOOLCHAIN_HAS_SSP
>  	select BR2_INSTALL_LIBSTDCPP
> diff --git a/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in b/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in
> index 4aab41693d..9b314795cb 100644
> --- a/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in
> @@ -9,6 +9,7 @@ config BR2_TOOLCHAIN_EXTERNAL_ARM_ARM
>  	depends on BR2_ARM_CPU_HAS_NEON
>  	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "aarch64"
>  	depends on BR2_ARM_EABIHF
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_13
>  	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
>  	select BR2_TOOLCHAIN_HAS_SSP
>  	select BR2_INSTALL_LIBSTDCPP
> diff --git a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
> index d82c9b8a41..0f4f5eef2e 100644
> --- a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
> +++ b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
> @@ -52,66 +52,82 @@ config BR2_TOOLCHAIN_EXTERNAL_GCC_13
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_12
>  	bool "12.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_13
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_12
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_11
>  	bool "11.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_12
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_11
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_10
>  	bool "10.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_11
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_10
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_9
>  	bool "9.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_10
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_9
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_8
>  	bool "8.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_9
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_8
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_7
>  	bool "7.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_7
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_6
>  	bool "6.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_7
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_6
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_5
>  	bool "5.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_6
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_5
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_4_9
>  	bool "4.9.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_5
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_4_8
>  	bool "4.8.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_4_7
>  	bool "4.7.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_4_6
>  	bool "4.6.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_4_5
>  	bool "4.5.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_4_4
>  	bool "4.4.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_4_3
>  	bool "4.3.x"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
>  	select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
>  
>  config BR2_TOOLCHAIN_EXTERNAL_GCC_OLD
>  	bool "older"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
>  	help
>  	  Use this option if your GCC version is older than any of the
>  	  above.
> diff --git a/toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in b/toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in
> index 53d5dfd8f2..295a8987f1 100644
> --- a/toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-linaro-aarch64-be/Config.in
> @@ -2,6 +2,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64_BE
>  	bool "Linaro AArch64 BE 2018.05"
>  	depends on BR2_aarch64_be
>  	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
>  	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
>  	select BR2_TOOLCHAIN_HAS_SSP
>  	select BR2_INSTALL_LIBSTDCPP
> diff --git a/toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in b/toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in
> index c9b84b1d30..1b0ec7cd9f 100644
> --- a/toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in
> @@ -2,6 +2,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
>  	bool "Linaro AArch64 2018.05"
>  	depends on BR2_aarch64
>  	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
>  	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
>  	select BR2_TOOLCHAIN_HAS_SSP
>  	select BR2_INSTALL_LIBSTDCPP
> diff --git a/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in b/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in
> index 015e92f17c..8b3b4c844e 100644
> --- a/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in
> @@ -8,6 +8,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
>  	depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A
>  	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
>  	depends on BR2_ARM_EABIHF
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
>  	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
>  	select BR2_TOOLCHAIN_HAS_SSP
>  	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
> diff --git a/toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in b/toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in
> index b338a72bff..b143ee5e24 100644
> --- a/toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in
> @@ -8,6 +8,7 @@ config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
>  	depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A
>  	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
>  	depends on BR2_ARM_EABIHF
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
>  	select BR2_TOOLCHAIN_EXTERNAL_GLIBC
>  	select BR2_TOOLCHAIN_HAS_SSP
>  	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
> diff --git a/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in b/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
> index c3483f331c..985e7b1710 100644
> --- a/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
> +++ b/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
> @@ -2,6 +2,7 @@ config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
>  	bool "Synopsys ARC 2019.09 toolchain"
>  	depends on BR2_arc
>  	depends on BR2_HOSTARCH = "x86_64"
> +	depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_10
>  	select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
>  	select BR2_INSTALL_LIBSTDCPP
>  	select BR2_ENABLE_LOCALE
> -- 
> 2.25.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

      reply	other threads:[~2023-08-13 16:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-13  4:47 [Buildroot] [PATCH 1/1] toolchain/toolchain-external: add BR2_ARCH_NEEDS_GCC_AT_LEAST_X guards Vincent Fazio
2023-08-13 16:07 ` Yann E. MORIN [this message]

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=20230813160752.GZ421096@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@buildroot.org \
    --cc=giulio.benetti@benettiengineering.com \
    --cc=romain.naour@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vfazio@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox