From: Vincent Fazio <vfazio@gmail.com>
To: buildroot@buildroot.org
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>,
Romain Naour <romain.naour@gmail.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Vincent Fazio <vfazio@gmail.com>
Subject: [Buildroot] [PATCH 1/1] toolchain/toolchain-external: add BR2_ARCH_NEEDS_GCC_AT_LEAST_X guards
Date: Sat, 12 Aug 2023 23:47:50 -0500 [thread overview]
Message-ID: <20230813044750.5567-1-vfazio@gmail.com> (raw)
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>
---
.../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
next reply other threads:[~2023-08-13 4:48 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-13 4:47 Vincent Fazio [this message]
2023-08-13 16:07 ` [Buildroot] [PATCH 1/1] toolchain/toolchain-external: add BR2_ARCH_NEEDS_GCC_AT_LEAST_X guards Yann E. MORIN
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=20230813044750.5567-1-vfazio@gmail.com \
--to=vfazio@gmail.com \
--cc=buildroot@buildroot.org \
--cc=giulio.benetti@benettiengineering.com \
--cc=romain.naour@gmail.com \
--cc=thomas.petazzoni@bootlin.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