diff mbox

powerpc: Blacklist GCC 5.4 6.1 and 6.2

Message ID 20170210053115.20565-1-cyrilbur@gmail.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Cyril Bur Feb. 10, 2017, 5:31 a.m. UTC
A bug in the -02 optimisation of GCC 5.4 6.1 and 6.2 causes
setup_command_line() to not pass the correct first argument to strcpy
and therefore not actually copy the command_line.

A workaround patch was proposed: http://patchwork.ozlabs.org/patch/673130/
some discussion ensued.

A GCC bug was raised: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71709
The bug has been fixed in 7.0 and backported to GCC 5 and GCC 6.

At the time of writing GCC 5.4 is the most recent and is affected. GCC
6.3 contains the backported fix, has been tested and appears safe to
use.

Heavy-lifting-by: Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>
Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
---
 arch/powerpc/Makefile | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Christophe Leroy Feb. 10, 2017, 7:48 a.m. UTC | #1
Le 10/02/2017 à 06:31, Cyril Bur a écrit :
> A bug in the -02 optimisation of GCC 5.4 6.1 and 6.2 causes
> setup_command_line() to not pass the correct first argument to strcpy
> and therefore not actually copy the command_line.
>
> A workaround patch was proposed: http://patchwork.ozlabs.org/patch/673130/
> some discussion ensued.
>
> A GCC bug was raised: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71709
> The bug has been fixed in 7.0 and backported to GCC 5 and GCC 6.
>
> At the time of writing GCC 5.4 is the most recent and is affected. GCC
> 6.3 contains the backported fix, has been tested and appears safe to
> use.
>
> Heavy-lifting-by: Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>
> Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
> ---
>  arch/powerpc/Makefile | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 31286fa7873c..a4b886694391 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -414,6 +414,15 @@ checkbin:
>  		echo -n '*** Please use a different binutils version.' ; \
>  		false ; \
>  	fi
> +	@if test "$(cc-version)" = "0504" \
> +		|| test "$(cc-version)" = "0601" \
> +		|| test "$(cc-version)" = "0602" ; then \
> +		echo -n '*** GCC-5.4 6.1 6.2 have a bad -O2 optimisation ' ; \
> +		echo 'which will cause lost commandline options (at least).' ; \
> +		echo '*** Please use a different GCC version.' ; \
> +		false ; \
> +	fi
> +

According to the GCC bug report, this bug applies to powerpc64le
Why force all targets to not use those versions of GCC ?

Christophe
Cyril Bur Feb. 13, 2017, 12:23 a.m. UTC | #2
On Fri, 2017-02-10 at 08:48 +0100, Christophe LEROY wrote:
> 
> Le 10/02/2017 à 06:31, Cyril Bur a écrit :
> > A bug in the -02 optimisation of GCC 5.4 6.1 and 6.2 causes
> > setup_command_line() to not pass the correct first argument to strcpy
> > and therefore not actually copy the command_line.
> > 
> > A workaround patch was proposed: http://patchwork.ozlabs.org/patch/673130/
> > some discussion ensued.
> > 
> > A GCC bug was raised: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71709
> > The bug has been fixed in 7.0 and backported to GCC 5 and GCC 6.
> > 
> > At the time of writing GCC 5.4 is the most recent and is affected. GCC
> > 6.3 contains the backported fix, has been tested and appears safe to
> > use.
> > 
> > Heavy-lifting-by: Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>
> > Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
> > ---
> >  arch/powerpc/Makefile | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> > 
> > diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> > index 31286fa7873c..a4b886694391 100644
> > --- a/arch/powerpc/Makefile
> > +++ b/arch/powerpc/Makefile
> > @@ -414,6 +414,15 @@ checkbin:
> >  		echo -n '*** Please use a different binutils version.' ; \
> >  		false ; \
> >  	fi
> > +	@if test "$(cc-version)" = "0504" \
> > +		|| test "$(cc-version)" = "0601" \
> > +		|| test "$(cc-version)" = "0602" ; then \
> > +		echo -n '*** GCC-5.4 6.1 6.2 have a bad -O2 optimisation ' ; \
> > +		echo 'which will cause lost commandline options (at least).' ; \
> > +		echo '*** Please use a different GCC version.' ; \
> > +		false ; \
> > +	fi
> > +
> 
> According to the GCC bug report, this bug applies to powerpc64le
> Why force all targets to not use those versions of GCC ?
> 

True, I'll double check on BE, these days BE does suffer from, "oops I
didn't check that". If it is only LE, I'll add another condition.

Thanks,

Cyril

> Christophe
diff mbox

Patch

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 31286fa7873c..a4b886694391 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -414,6 +414,15 @@  checkbin:
 		echo -n '*** Please use a different binutils version.' ; \
 		false ; \
 	fi
+	@if test "$(cc-version)" = "0504" \
+		|| test "$(cc-version)" = "0601" \
+		|| test "$(cc-version)" = "0602" ; then \
+		echo -n '*** GCC-5.4 6.1 6.2 have a bad -O2 optimisation ' ; \
+		echo 'which will cause lost commandline options (at least).' ; \
+		echo '*** Please use a different GCC version.' ; \
+		false ; \
+	fi
+
 
 
 CLEAN_FILES += $(TOUT)