toolchain-external: support gcc < 4.3
authorArnout Vandecappelle <arnout@mind.be>
Wed, 23 Nov 2016 23:40:34 +0000 (00:40 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 25 Nov 2016 21:59:10 +0000 (22:59 +0100)
We currently support gcc as old as 4.3. However, Buildroot works
perfectly well with even older gcc versions (tested with 4.1). So we
can add an option BR2_TOOLCHAIN_EXTERNAL_GCC_OLD to support that. The
help text of this option is written with plenty of discouragement.

We use _OLD and not something like _PRE_4_3, because at some point we
will likely remove the 4.3 option and what would then require a name
change.

We don't set any _AT_LEAST option in this case because it's no use -
there is no lower bound on the version in this case. We therefore leave
BR2_TOOLCHAIN_GCC_AT_LEAST empty (the implicit default). When it is
empty, we don't do a version check at all in check_gcc_version
(previously we errored out when it was empty).

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/helpers.mk
toolchain/toolchain-external/toolchain-external-custom/Config.in.options

index 3991bc1cf1e36840ca7f34db8bb9948574a7086c..72e7292353882f96a754c3d9312e616e191f726f 100644 (file)
@@ -145,8 +145,7 @@ check_kernel_headers_version = \
 check_gcc_version = \
        expected_version="$(strip $2)" ; \
        if [ -z "$${expected_version}" ]; then \
-               printf "Internal error, gcc version unknown (no GCC_AT_LEAST_X_Y selected)\n"; \
-               exit 1 ; \
+               exit 0 ; \
        fi; \
        real_version=`$(1) --version | sed -r -e '1!d; s/^[^)]+\) ([^[:space:]]+).*/\1/;'` ; \
        if [[ ! "$${real_version}" =~ ^$${expected_version}\. ]] ; then \
index cdc25559fa02f72aa3d787f1cb8630d4825f35e7..5ff2491e19c13cb74efca43e68f566d44c132378 100644 (file)
@@ -59,6 +59,17 @@ config BR2_TOOLCHAIN_EXTERNAL_GCC_4_3
        bool "4.3.x"
        select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
 
+config BR2_TOOLCHAIN_EXTERNAL_GCC_OLD
+       bool "older"
+       help
+         Use this option if your GCC version is older than any of the
+         above.
+
+         Note that the Buildroot community doesn't do any testing with
+         such old toolchains. Some packages may fail to build in
+         surprising ways, or the generated root filesystem may not
+         work at all. Use such old toolchains at your own risk.
+
 endchoice
 
 choice