On Mon, 2017-02-13 at 09:44 -0600, Segher Boessenkool wrote: > Hi Cyril, > > On Mon, Feb 13, 2017 at 02:35:36PM +1100, Cyril Bur wrote: > > 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. > > There is no such thing as an "-O2 optimisation".
Right, perhaps I should have phrased it as "One of the -O2 level optimisations 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, -O1 does not have this problem." > > > 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. > > 6.3 is (of course) the newer release; 5.4 is a maintenance release of > a compiler that is a year older. Yes. I think the point I was trying to make is that since they backported the fix to 5.x and 6.x then I expect that 5.5 will have the fix but since it doesn't exist yet, I can't be sure. I'll add something to that effect. > > > +# - gcc-5.4, 6.1, 6.2 don't copy the command_line around correctly > > + echo -n '*** GCC-5.4 6.1 6.2 have a bad -O2 optimisation ' ; \ > > + echo 'which will cause lost command_line options (at least).' ; > > \ > > Maybe something more like > > "GCC 5.4, 6.1, and 6.2 have a bug that results in a kernel that does > not boot. Please use GCC 6.3 or later.". "that may not boot" is more accurate, if it can boot without a command_line param it might just do so. > > Please mention the GCC PR # somewhere in the code, too? > Sure. Thanks, Cyril > > Segher