diff mbox series

[OpenWrt-Devel] build: make GCC version 6+ minimal host build requirement

Message ID 20191112081625.27695-1-ynezz@true.cz
State Changes Requested
Delegated to: Petr Štetiar
Headers show
Series [OpenWrt-Devel] build: make GCC version 6+ minimal host build requirement | expand

Commit Message

Petr Štetiar Nov. 12, 2019, 8:16 a.m. UTC
Currently minimal GNU supported GCC version is 7 (from May 2, 2017), buildbots
are using default GCC version 6 on Debian 9 (old stable), current Debian
stable 10 has GCC version 8.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
---

While adding CI support in C based projects, I've started adding -Wextra as
well, which seems to work just fine for gcc6+, but it's apparently causing
issues with older GCCs like for example gcc 4.8.5[1] on CentOS 7.

Although it's certainly possible to fix those issues and make gcc 4 usable, I
think, that it's not worth the additional effort and resources anymore.

1. https://github.com/openwrt/openwrt/commit/4ba8f7b1ef1e4c0607185a41c06b51928c625d8b

 README                  |  2 +-
 include/prereq-build.mk | 18 ++++--------------
 2 files changed, 5 insertions(+), 15 deletions(-)

Comments

Paul Spooren Nov. 12, 2019, 8:22 a.m. UTC | #1
Looks good to me, I ran into this issue before and would appreciate 
moving forward to 6.

On 11/11/19 10:16 PM, Petr Štetiar wrote:
> Currently minimal GNU supported GCC version is 7 (from May 2, 2017), buildbots
> are using default GCC version 6 on Debian 9 (old stable), current Debian
> stable 10 has GCC version 8.
>
> Signed-off-by: Petr Štetiar <ynezz@true.cz>
> ---
>
> While adding CI support in C based projects, I've started adding -Wextra as
> well, which seems to work just fine for gcc6+, but it's apparently causing
> issues with older GCCs like for example gcc 4.8.5[1] on CentOS 7.
>
> Although it's certainly possible to fix those issues and make gcc 4 usable, I
> think, that it's not worth the additional effort and resources anymore.
>
> 1. https://github.com/openwrt/openwrt/commit/4ba8f7b1ef1e4c0607185a41c06b51928c625d8b
>
>   README                  |  2 +-
>   include/prereq-build.mk | 18 ++++--------------
>   2 files changed, 5 insertions(+), 15 deletions(-)
>
> diff --git a/README b/README
> index c867c1fa4da8..6d11dd1188ff 100644
> --- a/README
> +++ b/README
> @@ -11,7 +11,7 @@ To build your own firmware you need a Linux, BSD or MacOSX system (case
>   sensitive filesystem required). Cygwin is unsupported because of the lack
>   of a case sensitive file system.
>   
> -You need gcc, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
> +You need gcc6+, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
>   unzip, gawk, getopt, subversion, libz-dev and libc headers installed.
>   
>   1. Run "./scripts/feeds update -a" to obtain all the latest package definitions
> diff --git a/include/prereq-build.mk b/include/prereq-build.mk
> index 4c5991005634..58cbc0678fa1 100644
> --- a/include/prereq-build.mk
> +++ b/include/prereq-build.mk
> @@ -27,12 +27,7 @@ $(eval $(call TestHostCommand,proper-umask, \
>   	umask | grep -xE 0?0[012][012]))
>   
>   $(eval $(call SetupHostCommand,gcc, \
> -	Please install the GNU C Compiler (gcc) 4.8 or later, \
> -	$(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -	gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -	gcc48 --version | grep gcc, \
> -	gcc49 --version | grep gcc, \
> -	gcc5 --version | grep gcc, \
> +	Please install the GNU C Compiler (gcc) 6 or later, \
>   	gcc6 --version | grep gcc, \
>   	gcc7 --version | grep gcc, \
>   	gcc8 --version | grep gcc, \
> @@ -40,18 +35,13 @@ $(eval $(call SetupHostCommand,gcc, \
>   	gcc --version | grep -E 'Apple.(LLVM|clang)' ))
>   
>   $(eval $(call TestHostCommand,working-gcc, \
> -	\nPlease reinstall the GNU C Compiler (4.8 or later) - \
> +	\nPlease reinstall the GNU C Compiler (6 or later) - \
>   	it appears to be broken, \
>   	echo 'int main(int argc, char **argv) { return 0; }' | \
>   		gcc -x c -o $(TMP_DIR)/a.out -))
>   
>   $(eval $(call SetupHostCommand,g++, \
> -	Please install the GNU C++ Compiler (g++) 4.8 or later, \
> -	$(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -	g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -	g++48 --version | grep g++, \
> -	g++49 --version | grep g++, \
> -	g++5 --version | grep g++, \
> +	Please install the GNU C++ Compiler (g++) 6 or later, \
>   	g++6 --version | grep g++, \
>   	g++7 --version | grep g++, \
>   	g++8 --version | grep g++, \
> @@ -59,7 +49,7 @@ $(eval $(call SetupHostCommand,g++, \
>   	g++ --version | grep -E 'Apple.(LLVM|clang)' ))
>   
>   $(eval $(call TestHostCommand,working-g++, \
> -	\nPlease reinstall the GNU C++ Compiler (4.8 or later) - \
> +	\nPlease reinstall the GNU C++ Compiler (6 or later) - \
>   	it appears to be broken, \
>   	echo 'int main(int argc, char **argv) { return 0; }' | \
>   		g++ -x c++ -o $(TMP_DIR)/a.out - -lstdc++ && \
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Yousong Zhou Nov. 12, 2019, 8:26 a.m. UTC | #2
On Tue, 12 Nov 2019 at 16:16, Petr Štetiar <ynezz@true.cz> wrote:
>
> Currently minimal GNU supported GCC version is 7 (from May 2, 2017), buildbots
> are using default GCC version 6 on Debian 9 (old stable), current Debian
> stable 10 has GCC version 8.
>
> Signed-off-by: Petr Štetiar <ynezz@true.cz>
> ---
>
> While adding CI support in C based projects, I've started adding -Wextra as
> well, which seems to work just fine for gcc6+, but it's apparently causing
> issues with older GCCs like for example gcc 4.8.5[1] on CentOS 7.
>
> Although it's certainly possible to fix those issues and make gcc 4 usable, I
> think, that it's not worth the additional effort and resources anymore.
>
> 1. https://github.com/openwrt/openwrt/commit/4ba8f7b1ef1e4c0607185a41c06b51928c625d8b

NAK from me ;(

Not quite sure how much benefit enforcing -Wextra can bring to the
whole code base.  Excluding support for vanilla CentOS7 will certainly
cause inconvenience for large numbers of users.  That is probably more
so to serious industrial users.

                yousong

>
>  README                  |  2 +-
>  include/prereq-build.mk | 18 ++++--------------
>  2 files changed, 5 insertions(+), 15 deletions(-)
>
> diff --git a/README b/README
> index c867c1fa4da8..6d11dd1188ff 100644
> --- a/README
> +++ b/README
> @@ -11,7 +11,7 @@ To build your own firmware you need a Linux, BSD or MacOSX system (case
>  sensitive filesystem required). Cygwin is unsupported because of the lack
>  of a case sensitive file system.
>
> -You need gcc, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
> +You need gcc6+, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
>  unzip, gawk, getopt, subversion, libz-dev and libc headers installed.
>
>  1. Run "./scripts/feeds update -a" to obtain all the latest package definitions
> diff --git a/include/prereq-build.mk b/include/prereq-build.mk
> index 4c5991005634..58cbc0678fa1 100644
> --- a/include/prereq-build.mk
> +++ b/include/prereq-build.mk
> @@ -27,12 +27,7 @@ $(eval $(call TestHostCommand,proper-umask, \
>         umask | grep -xE 0?0[012][012]))
>
>  $(eval $(call SetupHostCommand,gcc, \
> -       Please install the GNU C Compiler (gcc) 4.8 or later, \
> -       $(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -       gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -       gcc48 --version | grep gcc, \
> -       gcc49 --version | grep gcc, \
> -       gcc5 --version | grep gcc, \
> +       Please install the GNU C Compiler (gcc) 6 or later, \
>         gcc6 --version | grep gcc, \
>         gcc7 --version | grep gcc, \
>         gcc8 --version | grep gcc, \
> @@ -40,18 +35,13 @@ $(eval $(call SetupHostCommand,gcc, \
>         gcc --version | grep -E 'Apple.(LLVM|clang)' ))
>
>  $(eval $(call TestHostCommand,working-gcc, \
> -       \nPlease reinstall the GNU C Compiler (4.8 or later) - \
> +       \nPlease reinstall the GNU C Compiler (6 or later) - \
>         it appears to be broken, \
>         echo 'int main(int argc, char **argv) { return 0; }' | \
>                 gcc -x c -o $(TMP_DIR)/a.out -))
>
>  $(eval $(call SetupHostCommand,g++, \
> -       Please install the GNU C++ Compiler (g++) 4.8 or later, \
> -       $(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -       g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -       g++48 --version | grep g++, \
> -       g++49 --version | grep g++, \
> -       g++5 --version | grep g++, \
> +       Please install the GNU C++ Compiler (g++) 6 or later, \
>         g++6 --version | grep g++, \
>         g++7 --version | grep g++, \
>         g++8 --version | grep g++, \
> @@ -59,7 +49,7 @@ $(eval $(call SetupHostCommand,g++, \
>         g++ --version | grep -E 'Apple.(LLVM|clang)' ))
>
>  $(eval $(call TestHostCommand,working-g++, \
> -       \nPlease reinstall the GNU C++ Compiler (4.8 or later) - \
> +       \nPlease reinstall the GNU C++ Compiler (6 or later) - \
>         it appears to be broken, \
>         echo 'int main(int argc, char **argv) { return 0; }' | \
>                 g++ -x c++ -o $(TMP_DIR)/a.out - -lstdc++ && \
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Petr Štetiar Nov. 12, 2019, 9:12 a.m. UTC | #3
Yousong Zhou <yszhou4tech@gmail.com> [2019-11-12 16:26:14]:

Hi,

> Not quite sure how much benefit enforcing -Wextra can bring to the
> whole code base.

I'm adding -Wextra for some time already to any C project I touch, nobody has
objected against it so far. I'm adding it because I think, that the latest
compilers are producing usable warnings, less false positives and that it
should be one of the standard hardening options for any network facing
project. I see -Wextra just as another pair of review eyes for me, even if
it's provided by the machine.

It's just older GCC versions making -Wextra PITA, so if we decide to keep
support for gcc-4.8+, then it would probably make sense to enable -Wextra for
gcc6+.

> Excluding support for vanilla CentOS7 will certainly cause inconvenience for
> large numbers of users. 

Well, I don't see anything bad about sunsetting of old tools. This is master,
so next OpenWrt release somewhere in the 2020, so probably not a big deal,
right? They're going to install python3 anyway as well.

> That is probably more so to serious industrial users.

If I'm able to install gcc-4.8 on my latest stable Debian, then I assume, that
it should be relatively straight forward to install some decent GCC version on
<your-stable-distro> as well.

If we decide to keep gcc-4.8 support, wouldn't it make sense to use gcc-4.8 on
buildbots as well? You know, in order to catch similar issues during QA
process.

I can certainly add gcc-4.8, gcc-4.9, gcc-5 to the CI compiler mix (currently
has gcc-7, gcc-8, gcc-9 and clang-9 compilers), but this is going to result in
the 6 additional compile/run tests (3 * release/debug), so it makes me wonder
if it's really worth the resources/efforts.

-- ynezz
Yousong Zhou Nov. 12, 2019, 10:37 a.m. UTC | #4
On Tue, 12 Nov 2019 at 17:12, Petr Štetiar <ynezz@true.cz> wrote:
>
> Yousong Zhou <yszhou4tech@gmail.com> [2019-11-12 16:26:14]:
>
> Hi,
>
> > Not quite sure how much benefit enforcing -Wextra can bring to the
> > whole code base.
>
> I'm adding -Wextra for some time already to any C project I touch, nobody has
> objected against it so far. I'm adding it because I think, that the latest
> compilers are producing usable warnings, less false positives and that it
> should be one of the standard hardening options for any network facing
> project. I see -Wextra just as another pair of review eyes for me, even if
> it's provided by the machine.

I agree, especially when it comes to quality assurance.

>
> It's just older GCC versions making -Wextra PITA, so if we decide to keep
> support for gcc-4.8+, then it would probably make sense to enable -Wextra for
> gcc6+.

This is not bad.  Only feeding those options to toolchains with decent
support of them, with less confusing false positives.  Users with
better toolchains will notice them and users with old toolchains still
benefit from it.

>
> > Excluding support for vanilla CentOS7 will certainly cause inconvenience for
> > large numbers of users.
>
> Well, I don't see anything bad about sunsetting of old tools. This is master,
> so next OpenWrt release somewhere in the 2020, so probably not a big deal,
> right? They're going to install python3 anyway as well.
>
> > That is probably more so to serious industrial users.
>
> If I'm able to install gcc-4.8 on my latest stable Debian, then I assume, that
> it should be relatively straight forward to install some decent GCC version on
> <your-stable-distro> as well.

How old to be old that is a question to ask.  In the specific case of
rhel7/centos7, I suppose it is still widely deployed and used.  It is
supposed to have at least 10 years support backed by redhat.  Its
"retirement" is supposed to be at year 2024 with extended life-cycle
support not yet decided.

Nah, I cannot speak for/represent rhel/centos community.  I have never
owned a red hat.

Python3 has been around for more than 10 years and it's no surprise
that it should be readily available.  Even the eol centos6 could have
it with epel enabled.  With centos7, I am not aware of any official
ways to install newer versions of software, only bugfixes.  I tried
for a few times with packages provided by SoftwareCollections.org, but
it's definitely not "straightforward" enough in my opinion.

>
> If we decide to keep gcc-4.8 support, wouldn't it make sense to use gcc-4.8 on
> buildbots as well? You know, in order to catch similar issues during QA
> process.
>
> I can certainly add gcc-4.8, gcc-4.9, gcc-5 to the CI compiler mix (currently
> has gcc-7, gcc-8, gcc-9 and clang-9 compilers), but this is going to result in
> the 6 additional compile/run tests (3 * release/debug), so it makes me wonder
> if it's really worth the resources/efforts.
>
> -- ynezz

I think we agree that whatever the decision is at the end, it's just
trade-off.  My concern is that closing doors for support of gcc 4.8 is
being too rigid.  Note that we are talking about host build with host
toolchain whose input we control and whose product only runs on the
host itself at build times.

Regards,
                yousong
Petr Štetiar Nov. 12, 2019, 5:31 p.m. UTC | #5
Yousong Zhou <yszhou4tech@gmail.com> [2019-11-12 18:37:21]:

> I tried for a few times with packages provided by SoftwareCollections.org,
> but it's definitely not "straightforward" enough in my opinion.

I tried to install developer toolset version 8 in CentOS 7 Docker container in
order to triage the same compile failure happening with GCC 8.3[1] and it
simply worked as advertised, I was able to use GCC 8.3 on CentOS 7 just fine.

> Note that we are talking about host build with host toolchain whose input we
> control and whose product only runs on the host itself at build times.

Note that fwtool is just a tip of the iceberg, reminder, that we're still
supporting archaic compiler versions. Just imagine tools/firmware-utils with
-Wextra as the next step...

1. https://github.com/openwrt/openwrt/commit/4ba8f7b1ef1e4c0607185a41c06b51928c625d8b#commitcomment-35914043

-- ynezz
Etienne Champetier Nov. 12, 2019, 7:10 p.m. UTC | #6
Hi Petr,

Le mar. 12 nov. 2019 à 00:16, Petr Štetiar <ynezz@true.cz> a écrit :
>
> Currently minimal GNU supported GCC version is 7 (from May 2, 2017), buildbots
> are using default GCC version 6 on Debian 9 (old stable), current Debian
> stable 10 has GCC version 8.
>
> Signed-off-by: Petr Štetiar <ynezz@true.cz>
> ---
>
> While adding CI support in C based projects, I've started adding -Wextra as
> well, which seems to work just fine for gcc6+, but it's apparently causing
> issues with older GCCs like for example gcc 4.8.5[1] on CentOS 7.
>
> Although it's certainly possible to fix those issues and make gcc 4 usable, I
> think, that it's not worth the additional effort and resources anymore.
>
> 1. https://github.com/openwrt/openwrt/commit/4ba8f7b1ef1e4c0607185a41c06b51928c625d8b
>
>  README                  |  2 +-
>  include/prereq-build.mk | 18 ++++--------------
>  2 files changed, 5 insertions(+), 15 deletions(-)
>
> diff --git a/README b/README
> index c867c1fa4da8..6d11dd1188ff 100644
> --- a/README
> +++ b/README
> @@ -11,7 +11,7 @@ To build your own firmware you need a Linux, BSD or MacOSX system (case
>  sensitive filesystem required). Cygwin is unsupported because of the lack
>  of a case sensitive file system.
>
> -You need gcc, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
> +You need gcc6+, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
>  unzip, gawk, getopt, subversion, libz-dev and libc headers installed.
>
>  1. Run "./scripts/feeds update -a" to obtain all the latest package definitions
> diff --git a/include/prereq-build.mk b/include/prereq-build.mk
> index 4c5991005634..58cbc0678fa1 100644
> --- a/include/prereq-build.mk
> +++ b/include/prereq-build.mk
> @@ -27,12 +27,7 @@ $(eval $(call TestHostCommand,proper-umask, \
>         umask | grep -xE 0?0[012][012]))
>
>  $(eval $(call SetupHostCommand,gcc, \
> -       Please install the GNU C Compiler (gcc) 4.8 or later, \
> -       $(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -       gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -       gcc48 --version | grep gcc, \
> -       gcc49 --version | grep gcc, \
> -       gcc5 --version | grep gcc, \
> +       Please install the GNU C Compiler (gcc) 6 or later, \
>         gcc6 --version | grep gcc, \
>         gcc7 --version | grep gcc, \
>         gcc8 --version | grep gcc, \

Don't we also want to reverse the order to choose the newest compiler first ?
Also on Fedora 31, in the path I only have gcc, not gcc9, what I match is:
$ gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)'
9
not the other rules, so this patch breaks at least Fedora 31

Etienne

> @@ -40,18 +35,13 @@ $(eval $(call SetupHostCommand,gcc, \
>         gcc --version | grep -E 'Apple.(LLVM|clang)' ))
>
>  $(eval $(call TestHostCommand,working-gcc, \
> -       \nPlease reinstall the GNU C Compiler (4.8 or later) - \
> +       \nPlease reinstall the GNU C Compiler (6 or later) - \
>         it appears to be broken, \
>         echo 'int main(int argc, char **argv) { return 0; }' | \
>                 gcc -x c -o $(TMP_DIR)/a.out -))
>
>  $(eval $(call SetupHostCommand,g++, \
> -       Please install the GNU C++ Compiler (g++) 4.8 or later, \
> -       $(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -       g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
> -       g++48 --version | grep g++, \
> -       g++49 --version | grep g++, \
> -       g++5 --version | grep g++, \
> +       Please install the GNU C++ Compiler (g++) 6 or later, \
>         g++6 --version | grep g++, \
>         g++7 --version | grep g++, \
>         g++8 --version | grep g++, \
> @@ -59,7 +49,7 @@ $(eval $(call SetupHostCommand,g++, \
>         g++ --version | grep -E 'Apple.(LLVM|clang)' ))
>
>  $(eval $(call TestHostCommand,working-g++, \
> -       \nPlease reinstall the GNU C++ Compiler (4.8 or later) - \
> +       \nPlease reinstall the GNU C++ Compiler (6 or later) - \
>         it appears to be broken, \
>         echo 'int main(int argc, char **argv) { return 0; }' | \
>                 g++ -x c++ -o $(TMP_DIR)/a.out - -lstdc++ && \
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
diff mbox series

Patch

diff --git a/README b/README
index c867c1fa4da8..6d11dd1188ff 100644
--- a/README
+++ b/README
@@ -11,7 +11,7 @@  To build your own firmware you need a Linux, BSD or MacOSX system (case
 sensitive filesystem required). Cygwin is unsupported because of the lack
 of a case sensitive file system.
 
-You need gcc, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
+You need gcc6+, binutils, bzip2, flex, python3.5+, perl, make, find, grep, diff,
 unzip, gawk, getopt, subversion, libz-dev and libc headers installed.
 
 1. Run "./scripts/feeds update -a" to obtain all the latest package definitions
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index 4c5991005634..58cbc0678fa1 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -27,12 +27,7 @@  $(eval $(call TestHostCommand,proper-umask, \
 	umask | grep -xE 0?0[012][012]))
 
 $(eval $(call SetupHostCommand,gcc, \
-	Please install the GNU C Compiler (gcc) 4.8 or later, \
-	$(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
-	gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
-	gcc48 --version | grep gcc, \
-	gcc49 --version | grep gcc, \
-	gcc5 --version | grep gcc, \
+	Please install the GNU C Compiler (gcc) 6 or later, \
 	gcc6 --version | grep gcc, \
 	gcc7 --version | grep gcc, \
 	gcc8 --version | grep gcc, \
@@ -40,18 +35,13 @@  $(eval $(call SetupHostCommand,gcc, \
 	gcc --version | grep -E 'Apple.(LLVM|clang)' ))
 
 $(eval $(call TestHostCommand,working-gcc, \
-	\nPlease reinstall the GNU C Compiler (4.8 or later) - \
+	\nPlease reinstall the GNU C Compiler (6 or later) - \
 	it appears to be broken, \
 	echo 'int main(int argc, char **argv) { return 0; }' | \
 		gcc -x c -o $(TMP_DIR)/a.out -))
 
 $(eval $(call SetupHostCommand,g++, \
-	Please install the GNU C++ Compiler (g++) 4.8 or later, \
-	$(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
-	g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
-	g++48 --version | grep g++, \
-	g++49 --version | grep g++, \
-	g++5 --version | grep g++, \
+	Please install the GNU C++ Compiler (g++) 6 or later, \
 	g++6 --version | grep g++, \
 	g++7 --version | grep g++, \
 	g++8 --version | grep g++, \
@@ -59,7 +49,7 @@  $(eval $(call SetupHostCommand,g++, \
 	g++ --version | grep -E 'Apple.(LLVM|clang)' ))
 
 $(eval $(call TestHostCommand,working-g++, \
-	\nPlease reinstall the GNU C++ Compiler (4.8 or later) - \
+	\nPlease reinstall the GNU C++ Compiler (6 or later) - \
 	it appears to be broken, \
 	echo 'int main(int argc, char **argv) { return 0; }' | \
 		g++ -x c++ -o $(TMP_DIR)/a.out - -lstdc++ && \